Rastertools fournit des fonctions simples de traitement d'images satellitaires codées en python et s'appuyant sur les librairies rasterio et geopandas.
Cette collection d'outils provient de la capitalisation des travaux régulièrement effectués par le Lab'OT du CNES et vise à faire gagner du temps à ses utilisateurs : éviter d'appeler des fonctions de pré-traitement pour extraire les bandes d'une archive, concaténer les bandes d'intérêt pour le traitement, extraire une région d'intérêt.
Plusieurs indices sont disponibles en standard : les plus répandus : ndvi, ndwi, ndbi, etc. Il est également possible d'ajouter sa propre définition d'indices via l'API python de rastertools
Pour un couple d'images du même type, cet outil extrait la date des images et génère une nouvelle image représentant la dérivée temporelle de la radiométrie des deux images
C'est à dire que les trous liés aux nuages sont "rebouchés".
Cet outil prend en entrée une série temporelle d'images:
Pour ce faire, l'outil interpole les données entre les dates auxquelles on dispose d'observation.
Cet outil découpe une image en suivant les géométries définies dans un fichier vecteur (e.g. GeoJSON, shp, ...).
En sortie on obtient autant d'images que de géométries, chaque image contient les pixels incluent dans la géométrie.
L'outil consiste en un calcul des statistiques sur la radiométrie du raster sur différentes zones telles que fournies par un fichier vecteur, par exemple un fichier GeoJSON.
Les statistiques que l'on peut calculer sont : min, max, range (=max-min), mean, std, percentile_x (x compris entre 0 et 100), median, mad (median absolute deviation), count, valid, nodata, sum, majority, minority, unique.
from eolab.rastertools import Radioindice
proc = Radioindice(Radioindice.ndvi)
outputs = proc.with_output(".", merge=False)
.with_roi("./roi.geojson")
.process_file("./SENTINEL2B_20181023-105107-455_L2A_T30TYP_D.zip")
print(outputs)
from eolab.rastertools.product import RasterProduct
import rasterio
with RasterProduct("./SENTINEL2B_20181023-105107-455_L2A_T30TYP_D.zip") as rp:
with rasterio.Env(GDAL_VRT_ENABLE_PYTHON=True):
with rp.open(roi="COMMUNE_32001.shp") as dataset:
data = dataset.read([1, 2, 3], masked=True)
© CNES