diff --git a/README.md b/README.md index 8ee8f711..97e3fbe6 100644 --- a/README.md +++ b/README.md @@ -22,4 +22,4 @@ pip install blue-geo [![pylint](https://github.com/kamangir/blue-geo/actions/workflows/pylint.yml/badge.svg)](https://github.com/kamangir/blue-geo/actions/workflows/pylint.yml) [![pytest](https://github.com/kamangir/blue-geo/actions/workflows/pytest.yml/badge.svg)](https://github.com/kamangir/blue-geo/actions/workflows/pytest.yml) [![bashtest](https://github.com/kamangir/blue-geo/actions/workflows/bashtest.yml/badge.svg)](https://github.com/kamangir/blue-geo/actions/workflows/bashtest.yml) [![PyPI version](https://img.shields.io/pypi/v/blue-geo.svg)](https://pypi.org/project/blue-geo/) [![PyPI - Downloads](https://img.shields.io/pypi/dd/blue-geo)](https://pypistats.org/packages/blue-geo) -built by πŸŒ€ [`blue_options-4.173.1`](https://github.com/kamangir/awesome-bash-cli), based on 🌐 [`blue_geo-4.824.1`](https://github.com/kamangir/blue-geo). +built by πŸŒ€ [`blue_options-4.173.1`](https://github.com/kamangir/awesome-bash-cli), based on 🌐 [`blue_geo-4.825.1`](https://github.com/kamangir/blue-geo). diff --git a/blue_geo/.abcli/ingest.sh b/blue_geo/.abcli/ingest.sh index 50b09830..137e99f6 100644 --- a/blue_geo/.abcli/ingest.sh +++ b/blue_geo/.abcli/ingest.sh @@ -2,13 +2,29 @@ function blue_geo_ingest() { local options=$1 + local do_publish=$(abcli_option_int "$options" publish 0) local do_upload=$(abcli_option_int "$options" upload 0) - local version=$(abcli_option "$optioms" version v1) local object_name=${2:-void} + local version=$(python3 -m blue_geo.objects get \ + --what version \ + --object_name $object_name) + version=$(abcli_option "$options" version $version) + local full_object_name=$object_name-$version + local template_object_name=$(python3 -m blue_geo.objects get \ + --what template_name \ + --object_name $object_name) + [[ ! -z "$template_object_name" ]] && + abcli_clone \ + - \ + $template_object_name \ + $full_object_name + + abcli_log "ingesting $full_object_name ..." + python3 -m blue_geo.objects ingest \ --object_name $object_name \ --version $version \ @@ -18,5 +34,10 @@ function blue_geo_ingest() { [[ "$do_upload" == 1 ]] && abcli_upload - $full_object_name + [[ "$do_publish" == 1 ]] && + abcli_publish \ + ~download,tar \ + $full_object_name + return $status } diff --git a/blue_geo/.abcli/tests/ingest.sh b/blue_geo/.abcli/tests/ingest.sh index 8147d2d9..65bfd5fc 100644 --- a/blue_geo/.abcli/tests/ingest.sh +++ b/blue_geo/.abcli/tests/ingest.sh @@ -8,7 +8,7 @@ function test_blue_geo_ingest() { for object_name in $(echo $list_of_objects | tr + " "); do blue_geo_ingest \ - version=$(abcli_string_timestamp_short),$options \ + upload,publish,$options \ $object_name [[ $? -ne 0 ]] && return 1 diff --git a/blue_geo/__init__.py b/blue_geo/__init__.py index 1b59119c..4b6ec782 100644 --- a/blue_geo/__init__.py +++ b/blue_geo/__init__.py @@ -9,7 +9,7 @@ DESCRIPTION = f"{ICON} AI for a Blue Planet." -VERSION = "4.824.1" +VERSION = "4.825.1" REPO_NAME = "blue-geo" diff --git a/blue_geo/help/ingest.py b/blue_geo/help/ingest.py index 11ae3593..fd5d0d2f 100644 --- a/blue_geo/help/ingest.py +++ b/blue_geo/help/ingest.py @@ -11,8 +11,8 @@ def help_ingest( ) -> str: options = "".join( [ - xtra("~upload,", mono=mono), - "version=", + "publish,upload", + xtra(",version=", mono=mono), ] ) diff --git a/blue_geo/objects/__init__.py b/blue_geo/objects/__init__.py index fc5b19b4..ffb35188 100644 --- a/blue_geo/objects/__init__.py +++ b/blue_geo/objects/__init__.py @@ -1,3 +1,9 @@ +from typing import Dict +from types import ModuleType + + from blue_geo.objects import global_power_plant_database -special_objects = {"global-power-plant-database": global_power_plant_database} +special_objects: Dict[str, ModuleType] = { + "global-power-plant-database": global_power_plant_database, +} diff --git a/blue_geo/objects/__main__.py b/blue_geo/objects/__main__.py index 9a5b181f..861f65db 100644 --- a/blue_geo/objects/__main__.py +++ b/blue_geo/objects/__main__.py @@ -1,4 +1,5 @@ import argparse +from types import ModuleType from blueness import module from blueness.argparse.generic import sys_exit @@ -14,7 +15,7 @@ parser.add_argument( "task", type=str, - help="ingest", + help="get | ingest", ) parser.add_argument( "--object_name", @@ -25,7 +26,19 @@ parser.add_argument( "--version", type=str, - default="v1", + default="", + help="defaults to .version", +) +parser.add_argument( + "--what", + default="template_name", + type=str, + help="template_name | version", +) +parser.add_argument( + "--default", + default="void", + type=str, ) parser.add_argument( "--overwrite", @@ -37,11 +50,30 @@ args = parser.parse_args() success = False -if args.task == "ingest": +if args.task == "get": + success = True + output = args.default + + if args.object_name in special_objects: + object_module: ModuleType = special_objects[args.object_name] + + if args.what == "template_name": + output = object_module.template_name + elif args.what == "version": + output = object_module.version + + print(output) +elif args.task == "ingest": if args.object_name in special_objects: - success = special_objects[args.object_name].ingest( + object_module: ModuleType = special_objects[args.object_name] + + version = args.version + if not version: + version = object_module.version + + success = object_module.ingest( object_name=args.object_name, - version=args.version, + version=version, overwrite=args.overwrite == 1, ) else: diff --git a/blue_geo/objects/global_power_plant_database.py b/blue_geo/objects/global_power_plant_database.py index 44fd64ee..c2ba6ebc 100644 --- a/blue_geo/objects/global_power_plant_database.py +++ b/blue_geo/objects/global_power_plant_database.py @@ -12,11 +12,16 @@ NAME = module.name(__file__, NAME) +template_name = "global-power-plant-database-template-v1" + + url: Dict[str, str] = { "home": "https://datasets.wri.org/datasets/global-power-plant-database", "metadata": "https://datasets.wri.org/api/3/action/resource_show?id=66bcdacc-3d0e-46ad-9271-a5a76b1853d2", } +version = "v2" + def ingest( object_name: str, diff --git a/blue_geo/watch/README.md b/blue_geo/watch/README.md index 32109e58..41fe2051 100644 --- a/blue_geo/watch/README.md +++ b/blue_geo/watch/README.md @@ -130,7 +130,7 @@ watch the planet's story unfold. - [Google Maps](https://maps.app.goo.gl/kHypmxiEeqdVrBi77): `lat: 56.2036"N`, `lon: 120.8943"W`. - [reddit](https://www.reddit.com/r/britishcolumbia/comments/1fho5vq/10_days_of_reservoir_filling_at_cache_creek_site/): 10 Days of reservoir filling at Cache Creek - Site C Hydroelectric Project, British Columbia, Canada. -![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-Cache-Creek-2x-wider-2024-11-05/geo-watch-Cache-Creek-2x-wider-2024-11-05-4X.gif?raw=true&random=9E945QPR6EqWnsnz) +![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-Cache-Creek-2x-wider-2024-11-05/geo-watch-Cache-Creek-2x-wider-2024-11-05-4X.gif?raw=true&random=pYMTzVP70bdXOEuT) - [`geo-watch-Cache-Creek-2024-10-06-a`](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-Cache-Creek-2024-10-06-a.tar.gz), [gif](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-Cache-Creek-2024-10-06-a/geo-watch-Cache-Creek-2024-10-06-a.gif). - [`geo-watch-Cache-Creek-2x-wider-2024-10-06-a`](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-Cache-Creek-2x-wider-2024-10-06-a.tar.gz), [gif](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-Cache-Creek-2x-wider-2024-10-06-a/geo-watch-Cache-Creek-2x-wider-2024-10-06-a.gif). - [`geo-watch-Cache-Creek-2024-11-05`](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-Cache-Creek-2024-11-05.tar.gz), [gif](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-Cache-Creek-2024-11-05/geo-watch-Cache-Creek-2024-11-05.gif). @@ -142,14 +142,14 @@ watch the planet's story unfold. - [RCMP](https://bc-cb.rcmp-grc.gc.ca/ViewPage.action?siteNodeId=2087&languageId=1&contentId=85957): Federal Investigators take down the largest, most sophisticated drug superlab in Canada - [YouTube](https://youtu.be/t-POttDl8UQ?t=1876) -![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-DrugSuperLab-2024-11-19-13954/geo-watch-DrugSuperLab-2024-11-19-13954-4X.gif?raw=true&random=CvkbSMkSL2Uh1Leq) +![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-DrugSuperLab-2024-11-19-13954/geo-watch-DrugSuperLab-2024-11-19-13954-4X.gif?raw=true&random=urjRJuJ6fBR0C8iS) - [`geo-watch-DrugSuperLab-2024-11-19-13954`](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-DrugSuperLab-2024-11-19-13954.tar.gz), [gif](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-DrugSuperLab-2024-11-19-13954/geo-watch-DrugSuperLab-2024-11-19-13954.gif). ## [`Fagradalsfjall`](./targets/md/Fagradalsfjall.md) - [Google Maps](https://maps.app.goo.gl/zkdc2DNLahc598k48): `lat: 63.9000"N`, `lon: 22.2667"W`. - [Wikipedia](https://en.wikipedia.org/wiki/Fagradalsfjall): An active tuya volcano formed in the Last Glacial Period on the Reykjanes Peninsula. -![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-09-04-Fagradalsfjall-a/geo-watch-2024-09-04-Fagradalsfjall-a-2X.gif?raw=true&random=94wEvFAlxOXL6lQN) +![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-09-04-Fagradalsfjall-a/geo-watch-2024-09-04-Fagradalsfjall-a-2X.gif?raw=true&random=HbVz4tVBEywD6m2v) - [`geo-watch-2024-09-04-Fagradalsfjall-a`](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-09-04-Fagradalsfjall-a.tar.gz), [gif](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-09-04-Fagradalsfjall-a/geo-watch-2024-09-04-Fagradalsfjall-a.gif). ## [`Jasper`](./targets/md/Jasper.md) @@ -157,7 +157,7 @@ watch the planet's story unfold. - [Parks Canada](https://parks.canada.ca/pn-np/ab/jasper/visit/feu-alert-fire/feudeforet-wildfire): Wildfire status, Jasper Wildfire Complex. - [Wikipedia](https://en.wikipedia.org/wiki/2024_Jasper_wildfire) -![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-Jasper-2024-11-03/geo-watch-Jasper-2024-11-03-2X.gif?raw=true&random=IlD1bGGok6F5Dxva) +![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-Jasper-2024-11-03/geo-watch-Jasper-2024-11-03-2X.gif?raw=true&random=fIFGQcLYORcZTW6F) - [`geo-watch-2024-09-06-Jasper-a`](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-09-06-Jasper-a.tar.gz), [gif](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-09-06-Jasper-a/geo-watch-2024-09-06-Jasper-a.gif). - [`geo-watch-Jasper-2024-11-03`](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-Jasper-2024-11-03.tar.gz), [gif](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-Jasper-2024-11-03/geo-watch-Jasper-2024-11-03.gif). @@ -165,7 +165,7 @@ watch the planet's story unfold. - [Google Maps](https://maps.app.goo.gl/Zpnj53kVcQQ4fNA17): `lat: 41.8150"N`, `lon: 12.2550"E`. - [Wikipedia](https://en.wikipedia.org/wiki/Rome_Fiumicino_Airport): The 9th busiest airport in Europe and the world's 46th-busiest airport with over 40.5 million passengers served in 2023. -![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-10-27-16-17-36-12059/geo-watch-2024-10-27-16-17-36-12059-4X.gif?raw=true&random=zC5nOhenhTgElKo5) +![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-10-27-16-17-36-12059/geo-watch-2024-10-27-16-17-36-12059-4X.gif?raw=true&random=Wi5f9zub9TrQezD3) - [`test_blue_geo_watch_v4-diff-Leonardo-test`](https://kamangir-public.s3.ca-central-1.amazonaws.com/test_blue_geo_watch_v4-diff-Leonardo-test.tar.gz), [gif](https://kamangir-public.s3.ca-central-1.amazonaws.com/test_blue_geo_watch_v4-diff-Leonardo-test/test_blue_geo_watch_v4-diff-Leonardo-test.gif), [![bashtest](https://github.com/kamangir/blue-geo/actions/workflows/bashtest.yml/badge.svg)](https://github.com/kamangir/blue-geo/actions/workflows/bashtest.yml). - [`test_blue_geo_watch_v4-modality-Leonardo-test`](https://kamangir-public.s3.ca-central-1.amazonaws.com/test_blue_geo_watch_v4-modality-Leonardo-test.tar.gz), [gif](https://kamangir-public.s3.ca-central-1.amazonaws.com/test_blue_geo_watch_v4-modality-Leonardo-test/test_blue_geo_watch_v4-modality-Leonardo-test.gif), [![bashtest](https://github.com/kamangir/blue-geo/actions/workflows/bashtest.yml/badge.svg)](https://github.com/kamangir/blue-geo/actions/workflows/bashtest.yml). - [`geo-watch-2024-09-30-Leonardo-g`](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-09-30-Leonardo-g.tar.gz), [gif](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-09-30-Leonardo-g/geo-watch-2024-09-30-Leonardo-g.gif). @@ -177,7 +177,7 @@ watch the planet's story unfold. - [Google Maps](https://maps.app.goo.gl/vcCRk16tHBPxB3a47): `lat: 37.7510"N`, `lon: 14.9934"E`. - [Wikipedia](https://en.wikipedia.org/wiki/Mount_Etna): An active stratovolcano on the east coast of Sicily, Italy. -![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-09-04-Mount-Etna-a/geo-watch-2024-09-04-Mount-Etna-a-2X.gif?raw=true&random=7VqWQOzUBr5I7BYm) +![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-09-04-Mount-Etna-a/geo-watch-2024-09-04-Mount-Etna-a-2X.gif?raw=true&random=kcAUgIPw0GIGeiHV) - [`geo-watch-2024-09-04-Mount-Etna-a`](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-09-04-Mount-Etna-a.tar.gz), [gif](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-09-04-Mount-Etna-a/geo-watch-2024-09-04-Mount-Etna-a.gif). ## `Silver-Peak` @@ -185,13 +185,13 @@ watch the planet's story unfold. - [Wikipedia](https://en.wikipedia.org/wiki/Silver_Peak_(Ontario)): Silver Peak is a mountain located at Killarney Provincial Park, Ontario, Canada. - [pdf](https://files.ontario.ca/ndmnrf-geotours-1/ndmnrf-geotours-killarney-en-2021-12-13.pdf): Famous Canadian Shield White Mountains and Pink Shores. -![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-Silver-Peak-2024-10-12-a/geo-watch-Silver-Peak-2024-10-12-a-4X.gif?raw=true&random=HKR3nSnrWErgGMS1) +![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-Silver-Peak-2024-10-12-a/geo-watch-Silver-Peak-2024-10-12-a-4X.gif?raw=true&random=jmeAfLDD2bsUmXmo) - [`geo-watch-Silver-Peak-2024-10-12-a`](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-Silver-Peak-2024-10-12-a.tar.gz), [gif](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-Silver-Peak-2024-10-12-a/geo-watch-Silver-Peak-2024-10-12-a.gif). ## `bellingcat-2024-09-27-nagorno-karabakh` - [Bellingcat](https://www.bellingcat.com/news/mena/2024/09/27/nagorno-karabakh-satellite-imagery-shows-city-wide-ransacking/): In the regional capital of Nagorno-Karabakh, satellite imagery reveals hundreds of incidents of what appears to be ransacking across the city of Khankendi, known as Stepanakert to Armenians. -![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-bellingcat-2024-09-27-nagorno-karabakh-6X-2024-10-06-a/geo-watch-bellingcat-2024-09-27-nagorno-karabakh-6X-2024-10-06-a-4X.gif?raw=true&random=E8GCwCoXjyxCWuQE) +![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-bellingcat-2024-09-27-nagorno-karabakh-6X-2024-10-06-a/geo-watch-bellingcat-2024-09-27-nagorno-karabakh-6X-2024-10-06-a-4X.gif?raw=true&random=dYjQuAcUjkFYyFWm) - [`bellingcat-2024-09-27-nagorno-karabakh-2024-10-01-c-b`](https://kamangir-public.s3.ca-central-1.amazonaws.com/bellingcat-2024-09-27-nagorno-karabakh-2024-10-01-c-b.tar.gz), [gif](https://kamangir-public.s3.ca-central-1.amazonaws.com/bellingcat-2024-09-27-nagorno-karabakh-2024-10-01-c-b/bellingcat-2024-09-27-nagorno-karabakh-2024-10-01-c-b.gif). - [`bellingcat-2024-09-27-nagorno-karabakh-b`](https://kamangir-public.s3.ca-central-1.amazonaws.com/bellingcat-2024-09-27-nagorno-karabakh-b.tar.gz), [gif](https://kamangir-public.s3.ca-central-1.amazonaws.com/bellingcat-2024-09-27-nagorno-karabakh-b/bellingcat-2024-09-27-nagorno-karabakh-b.gif). - [`bellingcat-2024-09-27-nagorno-karabakh-6X-a`](https://kamangir-public.s3.ca-central-1.amazonaws.com/bellingcat-2024-09-27-nagorno-karabakh-6X-a.tar.gz), [gif](https://kamangir-public.s3.ca-central-1.amazonaws.com/bellingcat-2024-09-27-nagorno-karabakh-6X-a/bellingcat-2024-09-27-nagorno-karabakh-6X-a.gif). @@ -201,7 +201,7 @@ watch the planet's story unfold. ## [`burning-man-2024`](./targets/md/burning-man-2024.md) - [Google Maps](https://maps.app.goo.gl/e58UsDThr8ryqCRa8): `lat: 40.7864"N`, `lon: 119.2065"W`. -![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-09-04-burning-man-2024-a/geo-watch-2024-09-04-burning-man-2024-a-2X.gif?raw=true&random=E5CfyV0hDzVccwyN) +![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-09-04-burning-man-2024-a/geo-watch-2024-09-04-burning-man-2024-a-2X.gif?raw=true&random=XJOa806PYNX9svWc) - [`geo-watch-2024-09-04-burning-man-2024-a`](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-09-04-burning-man-2024-a.tar.gz), [gif](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-09-04-burning-man-2024-a/geo-watch-2024-09-04-burning-man-2024-a.gif). ## [`chilcotin-river-landslide`](./targets/md/chilcotin-river-landslide.md) @@ -210,7 +210,7 @@ watch the planet's story unfold. - [Reddit](https://www.reddit.com/r/britishcolumbia/comments/1eh9eql/before_and_after_satellite_images_of_the/): Before and after satellite images of the Chilcotin River landslide. - [portal](https://chilcotin-river-landslide-2024-bcgov03.hub.arcgis.com/): Chilcotin River Landslide Information Portal, source of ⬆️ image. -![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-Chilcotin-2024-11-03/geo-watch-Chilcotin-2024-11-03-4X.gif?raw=true&random=xtO7eo3Iy6CVlvDD) +![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-Chilcotin-2024-11-03/geo-watch-Chilcotin-2024-11-03-4X.gif?raw=true&random=t7g7onZOUfFVugrE) - [`test_blue_geo_watch_v4-modality-chilcotin-river-landslide-test`](https://kamangir-public.s3.ca-central-1.amazonaws.com/test_blue_geo_watch_v4-modality-chilcotin-river-landslide-test.tar.gz), [gif](https://kamangir-public.s3.ca-central-1.amazonaws.com/test_blue_geo_watch_v4-modality-chilcotin-river-landslide-test/test_blue_geo_watch_v4-modality-chilcotin-river-landslide-test.gif), [![bashtest](https://github.com/kamangir/blue-geo/actions/workflows/bashtest.yml/badge.svg)](https://github.com/kamangir/blue-geo/actions/workflows/bashtest.yml). - [`geo-watch-2024-08-31-chilcotin-c`](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-08-31-chilcotin-c.tar.gz), [gif](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-08-31-chilcotin-c/geo-watch-2024-08-31-chilcotin-c.gif), L1C and L2A mixed, `2024-07-30/2024-08-09`. - [`geo-watch-2024-09-01-chilcotin-a`](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-09-01-chilcotin-a.tar.gz), [gif](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-2024-09-01-chilcotin-a/geo-watch-2024-09-01-chilcotin-a.gif). @@ -219,7 +219,7 @@ watch the planet's story unfold. ## `elkhema ⛺️` -![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-elkhema-2024-2024-10-05-a-b/geo-watch-elkhema-2024-2024-10-05-a-b-4X.gif?raw=true&random=xbuWbrFPxBD14ANV) +![image](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-elkhema-2024-2024-10-05-a-b/geo-watch-elkhema-2024-2024-10-05-a-b-4X.gif?raw=true&random=4UL25bUPPKwAKTN3) - [`geo-watch-elkhema-2024-2024-10-05-a-b`](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-elkhema-2024-2024-10-05-a-b.tar.gz), [gif](https://kamangir-public.s3.ca-central-1.amazonaws.com/geo-watch-elkhema-2024-2024-10-05-a-b/geo-watch-elkhema-2024-2024-10-05-a-b.gif).