609 lines
21 KiB
Plaintext
609 lines
21 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"id": "b7ca7102-5fd9-481f-90cd-3ba60e288649",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"# $ pip install sentinelhub\n",
|
|
"# pip install gdal\n",
|
|
"\n",
|
|
"import os\n",
|
|
"import datetime\n",
|
|
"import numpy as np\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"from pathlib import Path\n",
|
|
"from osgeo import gdal\n",
|
|
"\n",
|
|
"from sentinelhub import MimeType, CRS, BBox, SentinelHubRequest, SentinelHubDownloadClient, \\\n",
|
|
" DataCollection, bbox_to_dimensions, DownloadRequest, SHConfig, BBoxSplitter, read_data\n",
|
|
"\n",
|
|
"config = SHConfig()\n",
|
|
"\n",
|
|
"import time"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"id": "330c967c-2742-4a7a-9a61-28bfdaf8eeca",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"#pip install pipreqs"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"id": "49f8496a-a267-4b74-9500-a168e031ed68",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"#import pipreqs\n",
|
|
"#pipreqs Resilience BV/4002 CMD App - General/4002 CMD Team/4002 TechnicalData/04 WP2 technical/python/Chemba_download.ipynb"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"id": "5491a840-779c-4f0c-8164-c3de738b3298",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"config.sh_client_id = '1a72d811-4f0e-4447-8282-df09608cff44'\n",
|
|
"config.sh_client_secret = 'FcBlRL29i9ZmTzhmKTv1etSMFs5PxSos'"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"id": "eb1fb662-0e25-4ca9-8317-c6953290842b",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"collection_id = 'c691479f-358c-46b1-b0f0-e12b70a9856c'\n",
|
|
"byoc = DataCollection.define_byoc(\n",
|
|
" collection_id,\n",
|
|
" name='planet_data2',\n",
|
|
" is_timeless=True)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"id": "244b5752-4f02-4347-9278-f6a0a46b88f4",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"\"\"\"\n",
|
|
"Utilities used by example notebooks\n",
|
|
"\"\"\"\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"import numpy as np\n",
|
|
"\n",
|
|
"\n",
|
|
"#def plot_image(image, factor=1.0, clip_range=None, **kwargs):\n",
|
|
"# \"\"\"\n",
|
|
"# Utility function for plotting RGB images.\n",
|
|
"# \"\"\"\n",
|
|
"# fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(15, 15))\n",
|
|
"# if clip_range is not None:\n",
|
|
"# ax.imshow(np.clip(image * factor, *clip_range), **kwargs)\n",
|
|
"# else:\n",
|
|
"## ax.imshow(image * factor, **kwargs)\n",
|
|
" # ax.set_xticks([])\n",
|
|
" # ax.set_yticks([]) \n",
|
|
"\n",
|
|
"\n",
|
|
"#evalscript_true_color = \"\"\"\n",
|
|
"# //VERSION=3\n",
|
|
"#\n",
|
|
"# function setup() {\n",
|
|
"# return {\n",
|
|
"# input: [{\n",
|
|
"# bands: [\"B1\", \"B2\", \"B3\", \"B4\", \"UDM\"]\n",
|
|
"# }],\n",
|
|
"# output: {\n",
|
|
"# bands: 5,\n",
|
|
"# nodataValue: NA\n",
|
|
"# }\n",
|
|
"# };\n",
|
|
"# }\n",
|
|
"#\n",
|
|
"# function evaluatePixel(sample) {\n",
|
|
"# return [2.5 * sample.B1 / 10000, 2.5 * sample.B2 / 10000, 2.5 * sample.B3 / 10000, 2.5 * sample.B4 / 10000, sample.UDM];\n",
|
|
"# }\n",
|
|
"#\"\"\"\n",
|
|
"\n",
|
|
"evalscript_true_color = \"\"\"\n",
|
|
" //VERSION=3\n",
|
|
"\n",
|
|
" function setup() {\n",
|
|
" return {\n",
|
|
" input: [{\n",
|
|
" bands: [\"Red\", \"Green\", \"Blue\", \"NIR\", \"UDM\"]\n",
|
|
" }],\n",
|
|
" output: {\n",
|
|
" bands: 2 \n",
|
|
" //sampleType: \"FLOAT32\"\n",
|
|
" }\n",
|
|
" };\n",
|
|
" }\n",
|
|
"\n",
|
|
" function evaluatePixel(sample) {\n",
|
|
" // Scale the bands\n",
|
|
" //var scaledBlue = [2.5 * sample.Blue / 10000];\n",
|
|
" var scaledGreen = [2.5 * sample.Green / 10000];\n",
|
|
" //var scaledRed = [2.5 * sample.Red / 10000];\n",
|
|
" var scaledNIR = [2.5 * sample.NIR / 10000];\n",
|
|
" \n",
|
|
" // Calculate the CI (Chlorophyll Index) using the scaled values\n",
|
|
" // var CI = [scaledNIR / scaledGreen - 1] ;\n",
|
|
"\n",
|
|
"// Output the scaled bands and CI\n",
|
|
" if (sample.UDM == 0) { \n",
|
|
" return [\n",
|
|
" //scaledRed,\n",
|
|
" scaledGreen,\n",
|
|
" // scaledBlue,\n",
|
|
" scaledNIR\n",
|
|
" // sample.UDM,\n",
|
|
" // CI,\n",
|
|
" ]\n",
|
|
" } else {\n",
|
|
" return [NaN, NaN]}\n",
|
|
" \n",
|
|
" }\n",
|
|
"\"\"\"\n",
|
|
"\n",
|
|
"#def get_true_color_request(time_interval):\n",
|
|
"# return SentinelHubRequest(\n",
|
|
"# evalscript=evalscript_true_color,\n",
|
|
"# input_data=[\n",
|
|
"# SentinelHubRequest.input_data(\n",
|
|
" # data_collection=DataCollection.planet_data2,\n",
|
|
"# time_interval=time_interval\n",
|
|
"# )\n",
|
|
"# ],\n",
|
|
"# responses=[\n",
|
|
"# SentinelHubRequest.output_response('default', MimeType.TIFF)\n",
|
|
"# ],\n",
|
|
"# bbox=chemba_bbox,\n",
|
|
"# size=chemba_size,\n",
|
|
"# config=config,\n",
|
|
"# data_folder='chemba_single_images/'+date,\n",
|
|
"#\n",
|
|
"# )\n",
|
|
"\n",
|
|
"BASE_PATH = Path('../laravel_app/storage/app') / os.getenv('PROJECT_DIR','chemba') \n",
|
|
"BASE_PATH_SINGLE_IMAGES = Path(BASE_PATH / 'single_images')\n",
|
|
"def get_true_color_request_day_east(time_interval):\n",
|
|
" return SentinelHubRequest(\n",
|
|
" evalscript=evalscript_true_color,\n",
|
|
" input_data=[\n",
|
|
" SentinelHubRequest.input_data(\n",
|
|
" data_collection=DataCollection.planet_data2,\n",
|
|
" time_interval=(time_interval, time_interval)\n",
|
|
" )\n",
|
|
" ],\n",
|
|
" responses=[\n",
|
|
" SentinelHubRequest.output_response('default', MimeType.TIFF)\n",
|
|
" ],\n",
|
|
" bbox=chemba_bbox_east,\n",
|
|
" size=chemba_size_east,\n",
|
|
" config=config,\n",
|
|
" data_folder=str(BASE_PATH_SINGLE_IMAGES / time_interval),\n",
|
|
"\n",
|
|
" )\n",
|
|
"\n",
|
|
"def get_true_color_request_day_west(time_interval):\n",
|
|
" return SentinelHubRequest(\n",
|
|
" evalscript=evalscript_true_color,\n",
|
|
" input_data=[\n",
|
|
" SentinelHubRequest.input_data(\n",
|
|
" data_collection=DataCollection.planet_data2,\n",
|
|
" time_interval=(time_interval, time_interval)\n",
|
|
" )\n",
|
|
" ],\n",
|
|
" responses=[\n",
|
|
" SentinelHubRequest.output_response('default', MimeType.TIFF)\n",
|
|
" ],\n",
|
|
" bbox=chemba_bbox_west,\n",
|
|
" size=chemba_size_west,\n",
|
|
" config=config,\n",
|
|
" data_folder=str(BASE_PATH_SINGLE_IMAGES / time_interval),\n",
|
|
"\n",
|
|
" )\n",
|
|
"\n",
|
|
"#def get_true_color_request_week(time_interval):\n",
|
|
"# return SentinelHubRequest(\n",
|
|
"# evalscript=evalscript_true_color,\n",
|
|
"# input_data=[\n",
|
|
"# SentinelHubRequest.input_data(\n",
|
|
"# data_collection=DataCollection.planet_data2,\n",
|
|
"# time_interval=time_interval\n",
|
|
"# )\n",
|
|
"# ],\n",
|
|
"# responses=[\n",
|
|
"# SentinelHubRequest.output_response('default', MimeType.TIFF)\n",
|
|
"# ],\n",
|
|
"# bbox=chemba_bbox,\n",
|
|
"# size=chemba_size,\n",
|
|
"# config=config,\n",
|
|
"# data_folder='chemba_weekly_img/'+date,\n",
|
|
"#\n",
|
|
" # )"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"id": "5abb2cc0-5e2f-46cd-9676-3093d07b0624",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"\n",
|
|
"#end = datetime.date.today() - datetime.timedelta(days=1)\n",
|
|
"#start = end - datetime.timedelta(days=6)\n",
|
|
"\n",
|
|
"#end = datetime.date(2022, 7, 1)\n",
|
|
"#start = datetime.date(2022, 7, 21)\n",
|
|
"\n",
|
|
"#n_chunks = start - end\n",
|
|
"#n_chunks.days\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"id": "a4937240-27f9-44c3-ad9c-cec6f2ffe4c8",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"#end = datetime.date(2022, 8, 4) \n",
|
|
"#start = datetime.date(2023, 3, 1)\n",
|
|
"#days_needed = 6#\n",
|
|
"\n",
|
|
"#end = datetime.date.today() - datetime.timedelta(days=days_needed - 1)\n",
|
|
"#start = end - datetime.timedelta(days=1)\n",
|
|
"\n",
|
|
"\n",
|
|
"#n_chunks = days_needed + 1\n",
|
|
"#tdelta = datetime.timedelta(days=1)\n",
|
|
"#edges = [(start + i*tdelta).isoformat() for i in range(n_chunks)]\n",
|
|
"#slots = [(edges[i], edges[i]) for i in range(len(edges))]\n",
|
|
"#slots = [(edges[i]) for i in range(len(edges))]\n",
|
|
"\n",
|
|
"#date = start.strftime(\"%Y-%m-%d\")\n",
|
|
"\n",
|
|
"#print('Monthly time windows:\\n')\n",
|
|
"#for slot in slots:\n",
|
|
"# print(slot)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"id": "848dc773-70d6-4ae6-b05c-d6ebfb41624d",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Monthly time windows:\n",
|
|
"\n",
|
|
"2024-02-03\n",
|
|
"2024-02-04\n",
|
|
"2024-02-05\n",
|
|
"2024-02-06\n",
|
|
"2024-02-07\n",
|
|
"2024-02-08\n",
|
|
"2024-02-09\n",
|
|
"2024-02-10\n",
|
|
"2024-02-11\n",
|
|
"2024-02-12\n",
|
|
"2024-02-13\n",
|
|
"2024-02-14\n",
|
|
"2024-02-15\n",
|
|
"2024-02-16\n",
|
|
"2024-02-17\n",
|
|
"2024-02-18\n",
|
|
"2024-02-19\n",
|
|
"2024-02-20\n",
|
|
"2024-02-21\n",
|
|
"2024-02-22\n",
|
|
"2024-02-23\n",
|
|
"2024-02-24\n",
|
|
"2024-02-25\n",
|
|
"2024-02-26\n",
|
|
"2024-02-27\n",
|
|
"2024-02-28\n",
|
|
"2024-02-29\n",
|
|
"2024-03-01\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"import datetime\n",
|
|
"\n",
|
|
"days_needed = int(os.environ.get(\"DAYS\", 28))\n",
|
|
" # Adjust the number of days needed\n",
|
|
" \n",
|
|
"date_str = os.environ.get(\"DATE\")\n",
|
|
"if date_str:\n",
|
|
" # Parse de datumstring naar een datetime.date object\n",
|
|
" end = datetime.datetime.strptime(date_str, \"%Y-%m-%d\").date()\n",
|
|
"else:\n",
|
|
" # Gebruik de huidige datum als fallback\n",
|
|
" end = datetime.date.today() \n",
|
|
"\n",
|
|
"\n",
|
|
"#end = datetime.datetime(2023, 11, 10)\n",
|
|
"#start = datetime.datetime(2023, 10, 19)\n",
|
|
"start = end - datetime.timedelta(days=days_needed - 1)\n",
|
|
"\n",
|
|
"slots = [(start + datetime.timedelta(days=i)).strftime('%Y-%m-%d') for i in range(days_needed)]\n",
|
|
"\n",
|
|
"print('Monthly time windows:\\n')\n",
|
|
"for slot in slots:\n",
|
|
" print(slot)\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "0c18e312-8421-47d7-84f9-ed7d5e47e7ee",
|
|
"metadata": {},
|
|
"source": [
|
|
"### Download images\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"id": "2335139b-dfb1-4371-ae2c-c2b9c8cbf10c",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"chemba_east = [34.8830, -17.3516, 34.9380, -17.2917]\n",
|
|
"resolution = 3\n",
|
|
"chemba_bbox_east = BBox(bbox=chemba_east, crs=CRS.WGS84)\n",
|
|
"chemba_size_east = bbox_to_dimensions(chemba_bbox_east, resolution=resolution)\n",
|
|
"\n",
|
|
"chemba_west = [34.9460, -17.3500, 34.9839, -17.3110]\n",
|
|
"chemba_bbox_west = BBox(bbox=chemba_west, crs=CRS.WGS84)\n",
|
|
"chemba_size_west = bbox_to_dimensions(chemba_bbox_west, resolution=resolution) "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"id": "77513576-2fed-4d17-a665-d11267b42390",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"def download_function(slot):\n",
|
|
" ### Chemba east side\n",
|
|
" # create a list of requests \n",
|
|
" list_of_requests = [get_true_color_request_day_east(slot)]\n",
|
|
" list_of_requests = [request.download_list[0] for request in list_of_requests]\n",
|
|
"\n",
|
|
" # download data chemba east with multiple threads\n",
|
|
" data = SentinelHubDownloadClient(config=config).download(list_of_requests, max_threads=15)\n",
|
|
" print(f' East downloaded ' +slot)\n",
|
|
"\n",
|
|
" ### Chemba west side\n",
|
|
" # create a list of requests\n",
|
|
" list_of_requests = [get_true_color_request_day_west(slot)]\n",
|
|
" list_of_requests = [request.download_list[0] for request in list_of_requests]\n",
|
|
"\n",
|
|
" # download data chemba west with multiple threads\n",
|
|
" data = SentinelHubDownloadClient(config=config).download(list_of_requests, max_threads=15)\n",
|
|
" print(f' West downloaded ' +slot)\n",
|
|
" \n",
|
|
" time.sleep(.5)\n",
|
|
"\n",
|
|
"def merge_files(slot):\n",
|
|
" \n",
|
|
" # List the downloaded Tiffs in the different subfolders with pathlib (native library)\n",
|
|
" file_list = [f\"{x}/response.tiff\" for x in Path(BASE_PATH_SINGLE_IMAGES / slot).iterdir()]\n",
|
|
" print(file_list)\n",
|
|
"\n",
|
|
" folder_for_merged_tifs = str(BASE_PATH / 'merged_tif' / f\"{slot}.tif\")\n",
|
|
" folder_for_virtual_raster = str(BASE_PATH / 'merged_virtual' / f\"merged{slot}.vrt\")\n",
|
|
"\n",
|
|
" # Create a virtual raster\n",
|
|
" vrt_all = gdal.BuildVRT(folder_for_virtual_raster, file_list)\n",
|
|
" vrt_all = gdal.BuildVRT(folder_for_virtual_raster, file_list)\n",
|
|
"\n",
|
|
" # Convert to JPEG\n",
|
|
" gdal.Translate(folder_for_merged_tifs,folder_for_virtual_raster)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"id": "d5830b6e-da0a-416f-867e-cbca4bd434f5",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
" East downloaded 2024-02-03\n",
|
|
" West downloaded 2024-02-03\n",
|
|
" East downloaded 2024-02-04\n",
|
|
" West downloaded 2024-02-04\n",
|
|
" East downloaded 2024-02-05\n",
|
|
" West downloaded 2024-02-05\n",
|
|
" East downloaded 2024-02-06\n",
|
|
" West downloaded 2024-02-06\n",
|
|
" East downloaded 2024-02-07\n",
|
|
" West downloaded 2024-02-07\n",
|
|
" East downloaded 2024-02-08\n",
|
|
" West downloaded 2024-02-08\n",
|
|
" East downloaded 2024-02-09\n",
|
|
" West downloaded 2024-02-09\n",
|
|
" East downloaded 2024-02-10\n",
|
|
" West downloaded 2024-02-10\n",
|
|
" East downloaded 2024-02-11\n",
|
|
" West downloaded 2024-02-11\n",
|
|
" East downloaded 2024-02-12\n",
|
|
" West downloaded 2024-02-12\n",
|
|
" East downloaded 2024-02-13\n",
|
|
" West downloaded 2024-02-13\n",
|
|
" East downloaded 2024-02-14\n",
|
|
" West downloaded 2024-02-14\n",
|
|
" East downloaded 2024-02-15\n",
|
|
" West downloaded 2024-02-15\n",
|
|
" East downloaded 2024-02-16\n",
|
|
" West downloaded 2024-02-16\n",
|
|
" East downloaded 2024-02-17\n",
|
|
" West downloaded 2024-02-17\n",
|
|
" East downloaded 2024-02-18\n",
|
|
" West downloaded 2024-02-18\n",
|
|
" East downloaded 2024-02-19\n",
|
|
" West downloaded 2024-02-19\n",
|
|
" East downloaded 2024-02-20\n",
|
|
" West downloaded 2024-02-20\n",
|
|
" East downloaded 2024-02-21\n",
|
|
" West downloaded 2024-02-21\n",
|
|
" East downloaded 2024-02-22\n",
|
|
" West downloaded 2024-02-22\n",
|
|
" East downloaded 2024-02-23\n",
|
|
" West downloaded 2024-02-23\n",
|
|
" East downloaded 2024-02-24\n",
|
|
" West downloaded 2024-02-24\n",
|
|
" East downloaded 2024-02-25\n",
|
|
" West downloaded 2024-02-25\n",
|
|
" East downloaded 2024-02-26\n",
|
|
" West downloaded 2024-02-26\n",
|
|
" East downloaded 2024-02-27\n",
|
|
" West downloaded 2024-02-27\n",
|
|
" East downloaded 2024-02-28\n",
|
|
" West downloaded 2024-02-28\n",
|
|
" East downloaded 2024-02-29\n",
|
|
" West downloaded 2024-02-29\n",
|
|
" East downloaded 2024-03-01\n",
|
|
" West downloaded 2024-03-01\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"for slot in slots:\n",
|
|
" download_function(slot)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"id": "68db3c15-6f94-432e-b315-c329e4251b21",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-03\\\\ad6499018e56b5e1924aa019ccfc6419/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-03\\\\d402cfafa9a6ae7d7d658652bf0efc8b/response.tiff']\n"
|
|
]
|
|
},
|
|
{
|
|
"ename": "ValueError",
|
|
"evalue": "Received a NULL pointer.",
|
|
"output_type": "error",
|
|
"traceback": [
|
|
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
|
"\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)",
|
|
"Cell \u001b[1;32mIn [13], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m slot \u001b[38;5;129;01min\u001b[39;00m slots:\n\u001b[1;32m----> 2\u001b[0m \u001b[43mmerge_files\u001b[49m\u001b[43m(\u001b[49m\u001b[43mslot\u001b[49m\u001b[43m)\u001b[49m\n",
|
|
"Cell \u001b[1;32mIn [11], line 36\u001b[0m, in \u001b[0;36mmerge_files\u001b[1;34m(slot)\u001b[0m\n\u001b[0;32m 33\u001b[0m vrt_all \u001b[38;5;241m=\u001b[39m gdal\u001b[38;5;241m.\u001b[39mBuildVRT(folder_for_virtual_raster, file_list)\n\u001b[0;32m 35\u001b[0m \u001b[38;5;66;03m# Convert to JPEG\u001b[39;00m\n\u001b[1;32m---> 36\u001b[0m \u001b[43mgdal\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mTranslate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfolder_for_merged_tifs\u001b[49m\u001b[43m,\u001b[49m\u001b[43mfolder_for_virtual_raster\u001b[49m\u001b[43m)\u001b[49m\n",
|
|
"File \u001b[1;32m~\\anaconda3\\lib\\site-packages\\osgeo\\gdal.py:491\u001b[0m, in \u001b[0;36mTranslate\u001b[1;34m(destName, srcDS, **kwargs)\u001b[0m\n\u001b[0;32m 488\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(srcDS, \u001b[38;5;28mstr\u001b[39m):\n\u001b[0;32m 489\u001b[0m srcDS \u001b[38;5;241m=\u001b[39m Open(srcDS)\n\u001b[1;32m--> 491\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mTranslateInternal\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdestName\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msrcDS\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mopts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcallback\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcallback_data\u001b[49m\u001b[43m)\u001b[49m\n",
|
|
"File \u001b[1;32m~\\anaconda3\\lib\\site-packages\\osgeo\\gdal.py:4674\u001b[0m, in \u001b[0;36mTranslateInternal\u001b[1;34m(*args)\u001b[0m\n\u001b[0;32m 4672\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mTranslateInternal\u001b[39m(\u001b[38;5;241m*\u001b[39margs):\n\u001b[0;32m 4673\u001b[0m \u001b[38;5;124;03m\"\"\"TranslateInternal(char const * dest, Dataset dataset, GDALTranslateOptions translateOptions, GDALProgressFunc callback=0, void * callback_data=None) -> Dataset\"\"\"\u001b[39;00m\n\u001b[1;32m-> 4674\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_gdal\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mTranslateInternal\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\n",
|
|
"\u001b[1;31mValueError\u001b[0m: Received a NULL pointer."
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"for slot in slots:\n",
|
|
" merge_files(slot)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "cb3fa856-a550-4899-844a-e69209bba3ad",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"\n",
|
|
"import shutil\n",
|
|
" \n",
|
|
"# List of folder names\n",
|
|
"\n",
|
|
"folders_to_empty = [BASE_PATH / 'merged_virtual', BASE_PATH_SINGLE_IMAGES]\n",
|
|
" \n",
|
|
"# Function to empty folders\n",
|
|
"\n",
|
|
"def empty_folders(folders):\n",
|
|
"\n",
|
|
" for folder in folders:\n",
|
|
"\n",
|
|
" try:\n",
|
|
"\n",
|
|
" for filename in os.listdir(folder):\n",
|
|
"\n",
|
|
" file_path = os.path.join(folder, filename)\n",
|
|
"\n",
|
|
" try:\n",
|
|
"\n",
|
|
" if os.path.isfile(file_path):\n",
|
|
"\n",
|
|
" os.unlink(file_path)\n",
|
|
"\n",
|
|
" elif os.path.isdir(file_path):\n",
|
|
"\n",
|
|
" shutil.rmtree(file_path)\n",
|
|
"\n",
|
|
" except Exception as e:\n",
|
|
"\n",
|
|
" print(f\"Error: {e}\")\n",
|
|
"\n",
|
|
" print(f\"Emptied folder: {folder}\")\n",
|
|
"\n",
|
|
" except OSError as e:\n",
|
|
"\n",
|
|
" print(f\"Error: {e}\")\n",
|
|
" \n",
|
|
"# Call the function to empty folders\n",
|
|
"\n",
|
|
"empty_folders(folders_to_empty)"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3 (ipykernel)",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.9.13"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|