622 lines
26 KiB
Plaintext
622 lines
26 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"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-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",
|
|
"2024-03-02\n",
|
|
"2024-03-03\n",
|
|
"2024-03-04\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-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",
|
|
" East downloaded 2024-03-02\n",
|
|
" West downloaded 2024-03-02\n",
|
|
" East downloaded 2024-03-03\n",
|
|
" West downloaded 2024-03-03\n",
|
|
" East downloaded 2024-03-04\n",
|
|
" West downloaded 2024-03-04\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"for slot in slots:\n",
|
|
" download_function(slot)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"id": "68db3c15-6f94-432e-b315-c329e4251b21",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-06\\\\2cb2971fef19fb55e127e60ec59b400f/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-06\\\\ea7fbec090549628be3a22a314aa6a80/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-07\\\\404537649ccd9d80105af5eddbc67ae3/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-07\\\\656e1f90cbeaebdd0beb773ea9c632b5/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-08\\\\78af404d33e4a7a8a7c63dd7266e9940/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-08\\\\a58815b1793822e2be090555991c070f/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-09\\\\b5f8af8311ec9839c6837bd702ff704f/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-09\\\\e80afe76517b3b227f9145b0b5441d47/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-10\\\\4280add6cbff9b32b7e56203840be60c/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-10\\\\6a3cb421bfe72d6f1e83e0a4d6a35b74/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-11\\\\ce6d23ba70336ceb47b36b7ac54a5fa6/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-11\\\\d6255d2b8f966beece2ee91f86eb1376/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-12\\\\6df3e48f4e103d1f984e6f331bd20d36/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-12\\\\db8bab81aa54f14b78ce40d9bd484b67/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-13\\\\c1a0dadbea9723a10511f9e8ad55484f/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-13\\\\ceeb939ee7bc791dbcacadd68ae43963/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-14\\\\05fab2afd14dde5956b68064eabb5584/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-14\\\\3cf514cf1796cb7ffdb74fd2cd1fa557/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-15\\\\25bca4ee6801370a109efd9928b6bad2/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-15\\\\77c29bad384c037085362a8b4e97b823/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-16\\\\385d81eb553a3b080e1c840199b7d8ad/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-16\\\\f5a9ca774ee072d83ec449b47fb11398/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-17\\\\5326b5d776ba3310e5be7ca523c2832d/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-17\\\\6002c8b4be4344e1a427993a1c8f07ee/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-18\\\\0fbdec0a57e4d0b7d4f4f4e375559007/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-18\\\\a3a6cbc00e10f12fd51bdea81aea0927/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-19\\\\0e07cff0d010befc4b61b2bcc1505e14/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-19\\\\77ebfbc4b72521a8ee8ed0644694a4d8/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-20\\\\954b99cae830de20b481c1c095fa8fec/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-20\\\\de49a1ae7fc7cce6bbb51307b51421a7/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-21\\\\22aac7ab7fe69e51dc2234c0a9ef2b78/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-21\\\\c703f5c937fe7d31c01e5dc0e1f1b3c6/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-22\\\\4cc6c6c928fbe9261b235a1a2bd82988/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-22\\\\6eee415cdc80617dbcbe376854d7c638/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-23\\\\a71078194fb9344dfa8d1254b34a8972/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-23\\\\f4c483ff844754609c15946f39062af0/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-24\\\\948621c2612a3623fe0a8c6f2e232d4c/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-24\\\\b5453c78662b27e0e31d3246e63d54ef/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-25\\\\09034667d9d66ad95bb45114be61c294/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-25\\\\153a5ff825431397c8c3d98b0cb7f8e0/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-26\\\\812fa312f85f5645979751acbfdb4137/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-26\\\\bea202027ff912b58ea0de56ecd60559/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-27\\\\1a5ef1a23663df92e3d6ea0cd4e566be/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-27\\\\d4cbaea4023bc70fa32512e73c74130a/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-28\\\\1e84c7daad84245d60c0117309786237/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-28\\\\76ef1594ab86e53afc8cfe62f1add323/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-29\\\\08baa805ee5178e3b20ff5f04f1481c6/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-02-29\\\\1322ca6b580917bb3e481d322e483f2b/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-03-01\\\\64455452d2ff2d41bae9e25445244dec/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-03-01\\\\e83cbe6c52f505b9d632a6427db1deb8/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-03-02\\\\b02488afaa37d33ce11b212702c48d61/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-03-02\\\\f7f75ecaae4a20c23fb170b2cfc3609c/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-03-03\\\\c3403f247cbe040895abec576582dc9e/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-03-03\\\\f20b352771e5ed34c2482680106f5514/response.tiff']\n",
|
|
"['..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-03-04\\\\a2f45492c5e7994ce6a3959eb6a0822d/response.tiff', '..\\\\laravel_app\\\\storage\\\\app\\\\chemba\\\\single_images\\\\2024-03-04\\\\f89199ceb4c461225686bb7176935986/response.tiff']\n"
|
|
]
|
|
}
|
|
],
|
|
"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
|
|
}
|