From 4ec54e47771f9075419a917ec4265acad535165b Mon Sep 17 00:00:00 2001 From: pmembari Date: Mon, 18 Aug 2025 14:55:14 +0200 Subject: [PATCH 1/3] feat: support planetarycomputer ESAEOEPCA-316 --- water-bodies/command-line-tools/crop/Dockerfile | 2 +- water-bodies/command-line-tools/crop/app.py | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/water-bodies/command-line-tools/crop/Dockerfile b/water-bodies/command-line-tools/crop/Dockerfile index 7a9f1b2..189cf67 100644 --- a/water-bodies/command-line-tools/crop/Dockerfile +++ b/water-bodies/command-line-tools/crop/Dockerfile @@ -1,6 +1,6 @@ FROM docker.io/library/python:3.10-slim@sha256:80619a5316afae7045a3c13371b0ee670f39bac46ea1ed35081d2bf91d6c3dbd -RUN pip install --no-cache-dir rasterio click pystac loguru pyproj shapely && \ +RUN pip install --no-cache-dir rasterio click pystac loguru pyproj shapely planetary_computer && \ python -c "import rasterio" ADD app.py /app/app.py diff --git a/water-bodies/command-line-tools/crop/app.py b/water-bodies/command-line-tools/crop/app.py index 606fb9b..a4bd344 100644 --- a/water-bodies/command-line-tools/crop/app.py +++ b/water-bodies/command-line-tools/crop/app.py @@ -6,19 +6,26 @@ from pyproj import Transformer from shapely import box from loguru import logger - +import planetary_computer def aoi2box(aoi): """Converts an area of interest expressed as a bounding box to a list of floats""" return [float(c) for c in aoi.split(",")] +def sign_asset_href(asset): + """Adjusts the asset href to be relative to the current working directory""" + signed_asset = planetary_computer.sign(asset) # asset is the pystac Asset object genetated from the STAC item + #logger.info(f"Signed asset href: {signed_asset.get_absolute_href()}") + return signed_asset def get_asset(item, common_name): """Returns the asset of a STAC Item defined with its common band name""" for _, asset in item.get_assets().items(): + if not "data" in asset.to_dict()["roles"]: continue - + if 'https://planetarycomputer.microsoft.com/api/stac/v1' in item.get_self_href(): + asset = sign_asset_href(asset) eo_asset = pystac.extensions.eo.AssetEOExtension(asset) if not eo_asset.bands: continue @@ -77,16 +84,15 @@ def crop(item_url, aoi, band, epsg): raise ValueError(msg) bbox = aoi2box(aoi) - with rasterio.open(asset.get_absolute_href()) as src: transformer = Transformer.from_crs(epsg, src.crs, always_xy=True) - + print(epsg, src.crs) minx, miny = transformer.transform(bbox[0], bbox[1]) maxx, maxy = transformer.transform(bbox[2], bbox[3]) transformed_bbox = box(minx, miny, maxx, maxy) - + logger.info(f"Transformed bounding box: {transformed_bbox}") logger.info(f"Crop {asset.get_absolute_href()}") out_image, out_transform = rasterio.mask.mask( From 1460e68b38f03b26f563718e88783d1c5dc2ad22 Mon Sep 17 00:00:00 2001 From: pmembari Date: Mon, 18 Aug 2025 15:02:57 +0200 Subject: [PATCH 2/3] bump version 1.1.1 ESAEOEPCA-316 --- codemeta.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/codemeta.json b/codemeta.json index 51939ad..f4c8501 100644 --- a/codemeta.json +++ b/codemeta.json @@ -2,15 +2,15 @@ "@context": "https://doi.org/10.5063/schema/codemeta-2.0", "@type": "SoftwareSourceCode", "license": "https://spdx.org/licenses/CC-BY-NC-SA-4.0", - "codeRepository": "https://github.com/eoap/mastering-app-package.git", + "codeRepository": "https://github.com/parham-membari-terradue/mastering-app-package.git", "dateCreated": "2022-09-01", "datePublished": "2022-09-25", - "dateModified": "2024-11-07", + "dateModified": "2025-08-18", "name": "Water Bodies Detection", - "version": "1.1.0", + "version": "1.1.1", "description": "The Water Bodies Detection is an Application that uses the NDWI index and the Otsu threshold to detect water bodies using Sentinel-2 or Landsat-9 data", "developmentStatus": "active", - "downloadUrl": "https://github.com/eoap/mastering-app-package/releases/tag/1.1.0", + "downloadUrl": "https://github.com/parham-membari-terradue/mastering-app-package/releases/tag/1.1.1", "relatedLink": [ "https://eoap.github.io/mastering-app-package" ], From 3a69ad7fcff440495e6f5867211cbda950d6ea86 Mon Sep 17 00:00:00 2001 From: pmembari Date: Tue, 19 Aug 2025 10:59:54 +0200 Subject: [PATCH 3/3] change repo to eoepca ESAEOEPCA-316 --- codemeta.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/codemeta.json b/codemeta.json index f4c8501..2030c55 100644 --- a/codemeta.json +++ b/codemeta.json @@ -2,7 +2,7 @@ "@context": "https://doi.org/10.5063/schema/codemeta-2.0", "@type": "SoftwareSourceCode", "license": "https://spdx.org/licenses/CC-BY-NC-SA-4.0", - "codeRepository": "https://github.com/parham-membari-terradue/mastering-app-package.git", + "codeRepository": "https://github.com/eoap/mastering-app-package.git", "dateCreated": "2022-09-01", "datePublished": "2022-09-25", "dateModified": "2025-08-18", @@ -10,7 +10,7 @@ "version": "1.1.1", "description": "The Water Bodies Detection is an Application that uses the NDWI index and the Otsu threshold to detect water bodies using Sentinel-2 or Landsat-9 data", "developmentStatus": "active", - "downloadUrl": "https://github.com/parham-membari-terradue/mastering-app-package/releases/tag/1.1.1", + "downloadUrl": "https://github.com/eoap/mastering-app-package/releases/tag/1.1.1", "relatedLink": [ "https://eoap.github.io/mastering-app-package" ],