Commit 0475b320 authored by Gaetano Raffaele's avatar Gaetano Raffaele
Browse files

ENH: integrated S2Planetary fetch and pipeline

parent 28c86b68
No related merge requests found
Showing with 22 additions and 9 deletions
+22 -9
from pystac_client import Client from TimeSeries.s2sen2cor import *
import planetary_computer as PC import planetary_computer as PC
from pystac_client import Client
import rasterio import rasterio
import rasterio.mask import rasterio.mask
from osgeo import ogr from osgeo import ogr
from pyproj import Transformer as T from pyproj import Transformer as T
from shapely import Polygon 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) ds = ogr.Open(shp)
ly = ds.GetLayer(0) ly = ds.GetLayer(0)
...@@ -26,7 +26,7 @@ def sentinel2_l2a_from_planetary(shp, datetime, output_fld): ...@@ -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) 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) 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 item in res.items():
for a in lst_10m: for a in lst_10m:
ofn = os.path.join(output_fld, '/'.join(item.assets[a].get_absolute_href().split('?')[0].split('/')[10:])) 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): ...@@ -44,9 +44,22 @@ def sentinel2_l2a_from_planetary(shp, datetime, output_fld):
with rasterio.open(ofn, "w", **out_meta) as dest: with rasterio.open(ofn, "w", **out_meta) as dest:
dest.write(out_img) 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
from s2theia import * from TimeSeries.s2theia import *
class S2Sen2CorTilePipeline(S2TheiaTilePipeline): class S2Sen2CorTilePipeline(S2TheiaTilePipeline):
# --- BEGIN SENSOR PROTOTYPE --- # --- BEGIN SENSOR PROTOTYPE ---
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment