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