bbox = list(west=44.98, south=-13.01, east=45.30, north=-12.61)
dossier_out = "/home/abiton/Documents/sentinel"
get_ndvi_masked = function(start_date, end_date, filename) {
data = p$load_collection(
id = "SENTINEL2_L2A",
spatial_extent = bbox,
temporal_extent = list(start_date, end_date),
bands = c("B04", "B08", "SCL")
#properties = list("eo:cloud_cover" = function(x) x <= 30) #to use or no depending on the treatment
)
# create mask
cloud_mask = p$reduce_dimension(
data = data,
dimension = "bands",
reducer = function(data, context) {
scl = data[3]
# only safe classes
is_safe = p$or(
p$eq(scl, 4), # vegetated
p$or(
p$eq(scl, 5), # naked soil
p$or(p$eq(scl, 6), p$eq(scl, 7))# water or unclassified
)
)
return(p$not(is_safe))
}
)
# computing ndvi
data_only = p$filter_bands(data, bands = c("B04", "B08"))
data_cleaned = p$mask(data = data_only, mask = cloud_mask)
ndvi_cube = p$ndvi(data = data_cleaned, nir = "B08", red = "B04")
# save data
result = p$save_result(data = ndvi_cube, format = "NetCDF")
compute_result(graph = result, output_file = file.path(dossier_out, filename))
}Images brutes
Ce document recense des images brutes de NDVI pour se rendre compte de l’emprise disponible sur l’île de Mayotte et de la meilleure manière de traiter les nuages ainsi que les images. Par la suite, ce fichier ira dans la partie Données du site.
Pour traiter les nuages par le package OpenEO, il existel’option cloud_cover qui trie les images ayant moins d’un certain pourcentage de couverture nuageuse (ici 30%). Il existe aussi la bande SCL (https://brazil-data-cube.github.io/specifications/bands/SCL.html) qui classe tous les pixels en plusieurs catégories :
| Classe | Valeur de pixel |
|---|---|
| No Data | 0 |
| Satured or Defective | 1 |
| Dark Area Pixels | 2 |
| Cloud Shadows | 3 |
| Vegetation | 4 |
| Not Vegetated | 5 |
| Water | 6 |
| Unclassified | 7 |
| Cloud Medium Probability | 8 |
| Cloud High Probability | 9 |
| Thin Cirrus | 10 |
| Snow | 11 |
Pour l’utilisation de la SCL, j’ai gardé seulement les pixels 4,5,6,7. J’ai testé plusieurs traitement d’images très basiques pour voir comment ceux-ci fonctionnaient et je l’ai appliqué à deux moments : avant chido et après chido.
Fonction
Voici la fonction pour récupérer les données de NDVI.
Avant Chido
Pour les images avant Chido, j’ai pris les images comprises entre Octobre et Mi-décembre 2024. Ici on a un traitement sans l’option cloud_cover et avec le SCL.
Avant Chido CC
Ici on a un traitement avec le SCL et avec l’option cloud_cover réglé à 30% c’est -à-dire qu’il élimine toutes les images(tuiles) avec plus de 30% de couverture nuageuse.
Après Chido
Pour les images après Chido, j’ai pris les images comprises entre Janvier et Mars 2025. Ici on a un traitement sans l’option cloud_cover et avec le SCL.