From 0475b320b47e36f2ba71eea963a7bd846cfffeaf Mon Sep 17 00:00:00 2001 From: "raffaele.gaetano" <raffaele.gaetano@cirad.fr> Date: Wed, 14 Dec 2022 17:39:35 +0100 Subject: [PATCH] ENH: integrated S2Planetary fetch and pipeline --- TimeSeries/{providers.py => s2planetary.py} | 29 +++++++++++++++------ TimeSeries/s2sen2cor.py | 2 +- 2 files changed, 22 insertions(+), 9 deletions(-) rename TimeSeries/{providers.py => s2planetary.py} (62%) diff --git a/TimeSeries/providers.py b/TimeSeries/s2planetary.py similarity index 62% rename from TimeSeries/providers.py rename to TimeSeries/s2planetary.py index 06dc33a..63b6cf9 100644 --- a/TimeSeries/providers.py +++ b/TimeSeries/s2planetary.py @@ -1,13 +1,13 @@ -from pystac_client import Client +from TimeSeries.s2sen2cor import * import planetary_computer as PC +from pystac_client import Client import rasterio import rasterio.mask from osgeo import ogr from pyproj import Transformer as T from shapely import Polygon -import os -def sentinel2_l2a_from_planetary(shp, datetime, output_fld): +def fetch(shp, datetime, output_fld): ds = ogr.Open(shp) ly = ds.GetLayer(0) @@ -26,7 +26,7 @@ def sentinel2_l2a_from_planetary(shp, datetime, output_fld): api = Client.open('https://planetarycomputer.microsoft.com/api/stac/v1', modifier=PC.sign_inplace) res = api.search(collections="sentinel-2-l2a", bbox=bbox, datetime=datetime) - lst_10m = ['B02','B03','B04','B08'] + lst_10m = ['B02','B03','B04','B05','B06','B07','B08','B8A','B11','B12','SCL'] for item in res.items(): for a in lst_10m: ofn = os.path.join(output_fld, '/'.join(item.assets[a].get_absolute_href().split('?')[0].split('/')[10:])) @@ -44,9 +44,22 @@ def sentinel2_l2a_from_planetary(shp, datetime, output_fld): with rasterio.open(ofn, "w", **out_meta) as dest: dest.write(out_img) +class S2PlanetaryTilePipeline(S2Sen2CorTilePipeline): + PTRN_10m = ['GRANULE/*/IMG_DATA/R10m/*_B02_10m.tif', + 'GRANULE/*/IMG_DATA/R10m/*_B03_10m.tif', + 'GRANULE/*/IMG_DATA/R10m/*_B04_10m.tif', + 'GRANULE/*/IMG_DATA/R10m/*_B08_10m.tif'] + PTRN_20m = ['GRANULE/*/IMG_DATA/R20m/*_B05_20m.tif', + 'GRANULE/*/IMG_DATA/R20m/*_B06_20m.tif', + 'GRANULE/*/IMG_DATA/R20m/*_B07_20m.tif', + 'GRANULE/*/IMG_DATA/R20m/*_B8A_20m.tif', + 'GRANULE/*/IMG_DATA/R20m/*_B11_20m.tif', + 'GRANULE/*/IMG_DATA/R20m/*_B12_20m.tif'] + PTRN_msk = ['GRANULE/*/IMG_DATA/R20m/*_SCL_20m.tif'] + PTRN_ful = PTRN_10m[0:3] + PTRN_20m[0:3] + [PTRN_10m[3]] + PTRN_20m[3:] +class S2PlaneteryPipeline(S2Sen2CorPipeline): - - - - + S2TilePipeline = S2PlanetaryTilePipeline + _check = S2TilePipeline._check + _tile_id = S2TilePipeline._tile_id \ No newline at end of file diff --git a/TimeSeries/s2sen2cor.py b/TimeSeries/s2sen2cor.py index 442be95..affe51a 100644 --- a/TimeSeries/s2sen2cor.py +++ b/TimeSeries/s2sen2cor.py @@ -1,4 +1,4 @@ -from s2theia import * +from TimeSeries.s2theia import * class S2Sen2CorTilePipeline(S2TheiaTilePipeline): # --- BEGIN SENSOR PROTOTYPE --- -- GitLab