Eau Sentinel-3 OLCI#

Mots-clés données utilisées ; sentinel-3, jeux de données ; sentinel-3 OL_2_WFR

Aperçu#

Le produit Sentinel-3 OLCI Niveau-2 Water Full Resolution (OL_2_WFR) fournit des observations corrigées atmosphériquement et des paramètres géophysiques dérivés de l’instrument Ocean and Land Colour Instrument (OLCI) à bord des satellites Sentinel-3A et Sentinel-3B. OLCI a été lancé pour la première fois à bord de Sentinel-3A le 16 février 2016, suivi par Sentinel-3B le 25 avril 2018. Le produit comprend la réflectance quittant l’eau, les variables de qualité de l’eau et les paramètres atmosphériques à une résolution spatiale nominale d’environ 300 m. Lorsque les observations des deux satellites sont combinées, OLCI fournit un intervalle de revisite de moins de deux jours à l’équateur, avec une couverture plus fréquente aux latitudes plus élevées. Cela rend le produit précieux pour la surveillance des eaux intérieures, côtières et marines, y compris :

  • Surveillance de la concentration de chlorophylle-a et de la dynamique du phytoplancton

  • Détection des efflorescences algales nuisibles

  • Évaluation de la clarté de l’eau et de l’atténuation de la lumière

  • Surveillance des sédiments en suspension et de la turbidité

  • Cartographie de la matière organique dissoute colorée (MODC)

  • Surveillance de la qualité de l’eau intérieure, côtière et marine

  • Soutien à la surveillance des écosystèmes aquatiques et de l’environnement

  • Soutien aux études à long terme sur le climat et les ressources en eau

Les algorithmes et les approches de récupération ont été développés par l’Agence spatiale européenne (ESA) et ses partenaires, assurant la continuité avec l’héritage de MERIS et une performance spectrale et radiométrique améliorée. La validation s’appuie sur des mesures au sol et une inter-comparaison avec d’autres produits satellitaires. Plus d’informations sur le produit peuvent être trouvées dans le guide de l’utilisateur OLCI Water et les documents théoriques de base des algorithmes (ATBDs).

Description#

Ce cahier couvrira les sujets suivants :

  1. Inspection des produits et des mesures disponibles dans le datacube

  2. Chargement des données Sentinel-3 OLCI.

  3. Tracer les résultats


Commencer#

Pour exécuter cette analyse, exécutez toutes les cellules du bloc-notes, en commençant par la cellule « Charger les packages ».

Charger des paquets#

Importez les packages Python utilisés pour l’analyse.

[1]:
%matplotlib inline

import datacube
import pandas as pd
import geopandas as gpd
import matplotlib.pyplot as plt
from odc.geo.geom import Geometry

from deafrica_tools.plotting import display_map
from deafrica_tools.areaofinterest import define_area

Se connecter au datacube#

Connectez-vous au datacube pour que nous puissions accéder aux données de DE Africa.

[2]:
dc = datacube.Datacube(app="Sentinel_3")

Liste des produits#

Nous pouvons utiliser la fonctionnalité list_products du datacube pour inspecter les produits de DE Africa disponibles. Le tableau ci-dessous montre les noms de produits que nous utiliserons pour charger les données, une brève description des données et l’instrument satellite qui a acquis les données.

[3]:
dc.list_products().loc[dc.list_products()['description'].str.contains('Sentinel-3')]
[3]:
name description license default_crs default_resolution
name
s3_ol_2_wfr_nrt s3_ol_2_wfr_nrt Sentinel-3 Level 2 Water Full Resolution (WFR)... CC-BY-4.0 EPSG:4326 Resolution(x=0.003, y=-0.003)
s3_olci_l2_lfr s3_olci_l2_lfr Sentinel-3 OLCI L2 LAND CC-BY-4.0 EPSG:4326 Resolution(x=0.003, y=-0.003)
s3_olci_l2_wfr s3_olci_l2_wfr Sentinel-3 OLCI L2 WATER CC-BY-4.0 EPSG:4326 Resolution(x=0.003, y=-0.003)
s3_slstr_l2_lst s3_slstr_l2_lst Sentinel-3 LST CC-BY-4.0 EPSG:4326 Resolution(x=0.003, y=-0.003)
s3_syn_2_vg1 s3_syn_2_vg1 Sentinel-3 Level-2 VG1 SYN product CC-BY-4.0 EPSG:4326 Resolution(x=0.01, y=-0.01)

Veuillez choisir le produit en spécifiant son nom, avec le produit s3_olci_l2_wfr

[4]:
product = "s3_olci_l2_wfr"

Liste des mesures#

Nous pouvons inspecter davantage les données disponibles pour le produit Sentinel-3 Land s3_olci_l2_wfr en utilisant la fonctionnalité list_measurements de datacube. Le tableau ci-dessous liste chacune des mesures disponibles dans les données.

[5]:
measurements = dc.list_measurements()
measurements.loc[product]
[5]:
name dtype units nodata aliases flags_definition add_offset scale_factor
measurement
A865 A865 int16 1 32767.0 [aerosol_angstrom_exponent] NaN 0.0 0.0001
ADG443_NN ADG443_NN int16 log10(1/m) 32767.0 [CDM_absorbtion_coefficient] NaN 0.0 0.0001
B01 B01 uint16 1 65535.0 [Oa01_reflectance] NaN 0.0 0.0001
B02 B02 uint16 1 65535.0 [Oa02_reflectance] NaN 0.0 0.0001
B03 B03 uint16 1 65535.0 [Oa03_reflectance] NaN 0.0 0.0001
B04 B04 uint16 1 65535.0 [Oa04_reflectance] NaN 0.0 0.0001
B05 B05 uint16 1 65535.0 [Oa05_reflectance] NaN 0.0 0.0001
B06 B06 uint16 1 65535.0 [Oa06_reflectance] NaN 0.0 0.0001
B07 B07 uint16 1 65535.0 [Oa07_reflectance] NaN 0.0 0.0001
B08 B08 uint16 1 65535.0 [Oa08_reflectance] NaN 0.0 0.0001
B09 B09 uint16 1 65535.0 [Oa09_reflectance] NaN 0.0 0.0001
B10 B10 uint16 1 65535.0 [Oa10_reflectance] NaN 0.0 0.0001
B11 B11 uint16 1 65535.0 [Oa11_reflectance] NaN 0.0 0.0001
B12 B12 uint16 1 65535.0 [Oa12_reflectance] NaN 0.0 0.0001
B16 B16 uint16 1 65535.0 [Oa16_reflectance] NaN 0.0 0.0001
B17 B17 uint16 1 65535.0 [Oa17_reflectance] NaN 0.0 0.0001
B18 B18 uint16 1 65535.0 [Oa18_reflectance] NaN 0.0 0.0001
B21 B21 uint16 1 65535.0 [Oa21_reflectance] NaN 0.0 0.0001
CHL_NN CHL_NN int16 log10(mg/m^3) 32767.0 [algal_pigment_complex_waters] NaN 0.0 0.0001
CHL_OC4ME CHL_OC4ME int16 log10(mg/m^3) 32767.0 [algal_pigment_open_waters] NaN 0.0 0.0001
IWV_W IWV_W uint8 kg/m^2 255.0 [integrated_water_vapour] NaN 0.0 1.0000
KD490_M07 KD490_M07 int16 log10(1/m) 32767.0 [diffuse_attenuation_coefficient] NaN 0.0 0.0001
PAR PAR uint16 microeinstein/s/m^2 65535.0 [photosynthetically_active_radiation] NaN 0.0 1.0000
T865 T865 int16 1 32767.0 [aerosol_optical_thickness] NaN 0.0 0.0001
TSM_NN TSM_NN int16 log10(g/m^3) 32767.0 [total_suspended_matter] NaN 0.0 0.0001
dataMask dataMask uint8 1 255.0 [mask] NaN 0.0 1.0000

Le produit Sentinel-3 water possède 26 mesures :

Mesure

Description

Application

A865 (Exposant d’Angström des aérosols)

Paramètre d’aérosol décrivant la distribution de taille des particules atmosphériques.

Correction atmosphérique, caractérisation des aérosols et études climatiques.

ADG443_NN (Coefficient d’absorption de la matière dissoute et détritique colorée)

Coefficient d’absorption de la matière organique dissoute colorée (MODC) et des matériaux détritiques à 443 nm, estimé à l’aide d’un algorithme de réseau neuronal.

Surveillance de la matière organique dissoute, des apports d’eau douce et de la qualité de l’eau.

B01 (Oa01)

Sensible à la correction des aérosols et à une meilleure récupération des constituants de l’eau.

Correction atmosphérique et récupération des constituants de l’eau.

B02 (Oa02)

Sensible aux substances jaunes, aux pigments détritiques et à la turbidité.

Surveillance de la MODC, évaluation de la turbidité et analyse de la qualité de l’eau.

B03 (Oa03)

Correspond au maximum d’absorption de la chlorophylle et soutient les études biogéochimiques et de végétation.

Récupération de la chlorophylle, analyse de la couleur de l’océan, biogéochimie et surveillance de la végétation.

B04 (Oa04)

Sensible à la chlorophylle.

Récupération de la chlorophylle et surveillance de la qualité de l’eau.

B05 (Oa05)

Sensible à la chlorophylle, aux sédiments, à la turbidité et aux marées rouges.

Récupération de la chlorophylle, surveillance des sédiments, évaluation de la turbidité et détection des efflorescences algales nuisibles.

B06 (Oa06)

Bande de référence de la chlorophylle (minimum).

Récupération de la chlorophylle et analyse de la qualité de l’eau.

B07 (Oa07)

Sensible à la charge en sédiments.

Surveillance du transport des sédiments et de la turbidité.

B08 (Oa08)

Correspond au deuxième maximum d’absorption de la chlorophylle et est sensible aux sédiments, aux substances jaunes et à la végétation.

Extraction de la chlorophylle, surveillance des sédiments, analyse CDOM et surveillance de la végétation.

B09 (Oa09)

Optimisé pour une meilleure extraction de la fluorescence de la chlorophylle.

Extraction de la fluorescence de la chlorophylle et analyse de la couleur de l’océan.

B10 (Oa10)

Correspond au pic de fluorescence de la chlorophylle et au bord rouge (red edge).

Surveillance de la fluorescence de la chlorophylle et analyse de la végétation.

B11 (Oa11)

Représente la ligne de base de la fluorescence de la chlorophylle et la transition vers le bord rouge.

Surveillance de la fluorescence de la chlorophylle et analyse de la végétation.

B12 (Oa12)

Sensible à l’absorption de l’oxygène, aux nuages et à la végétation.

Détection des nuages, correction atmosphérique et surveillance de la végétation.

B16 (Oa16)

Utilisé pour la correction atmosphérique et des aérosols.

Correction atmosphérique et extraction des aérosols.

B17 (Oa17)

Prend en charge la correction atmosphérique et des aérosols, la détection des nuages et la corégistration des pixels.

Correction atmosphérique, détection des nuages et corégistration d’images.

B18 (Oa18)

Bande de référence pour l’absorption de la vapeur d’eau et bande de référence commune avec SLSTR pour la surveillance de la végétation.

Correction de la vapeur d’eau et surveillance de la végétation.

B21 (Oa21)

Sensible à l’absorption de la vapeur d’eau et à la correction atmosphérique/aérosols.

Extraction de la vapeur d’eau et correction atmosphérique.

CHL_NN (Pigment algal – Eaux complexes)

Concentration de chlorophylle-a estimée à l’aide d’un algorithme de réseau neuronal pour les eaux côtières et intérieures optiquement complexes.

Surveillance de la qualité de l’eau, détection des proliférations algales nuisibles et évaluation de la santé des écosystèmes.

CHL_OC4ME (Pigment algal – Eaux libres)

Concentration de chlorophylle-a estimée à l’aide de l’algorithme OC4ME pour les eaux de pleine mer.

Études de la productivité océanique, surveillance du phytoplancton et évaluation des écosystèmes marins.

IWV_W (Vapeur d’eau intégrée)

Vapeur d’eau atmosphérique intégrée à la colonne au-dessus de chaque observation.

Correction atmosphérique, études climatiques et surveillance environnementale.

KD490_M07 (Coefficient d’atténuation diffuse à 490 nm)

Indique la vitesse à laquelle la lumière à 490 nm est atténuée dans la colonne d’eau, fournissant une mesure de la clarté de l’eau.

Évaluation de la clarté de l’eau, surveillance des habitats aquatiques et études de la productivité primaire.

PAR (Rayonnement photosynthétiquement actif)

Quantité de lumière solaire disponible pour la photosynthèse atteignant la surface de la Terre.

Études de la productivité primaire marine, croissance du phytoplancton et surveillance des écosystèmes.

T865 (Épaisseur optique des aérosols)

Mesure de la quantité d’aérosols dans l’atmosphère au-dessus de chaque observation.

Correction atmosphérique, études de la qualité de l’air et surveillance climatique.

TSM_NN (Matières en suspension totales)

Concentration de particules en suspension dans l’eau estimée à l’aide d’un algorithme de réseau neuronal.

Études sur le transport des sédiments, surveillance de la turbidité et gestion des eaux côtières et intérieures.

dataMask (Masque de données)

Masque binaire indiquant les observations valides et invalides.

Exclusion des observations manquantes ou invalides et garantie d’une analyse de données fiable.

Paramètres d’analyse#

La cellule suivante définit les paramètres qui définissent la zone d’intérêt sur laquelle effectuer l’analyse. #### Sélectionner l’emplacement Pour définir la zone d’intérêt, deux méthodes sont disponibles :

  1. En spécifiant la latitude, la longitude et la zone tampon, ou en séparant les zones tampons de latitude et de longitude, cette méthode vous permet de définir une zone d’intérêt autour d’un point central. Vous pouvez saisir la latitude centrale, la longitude centrale et une valeur de zone tampon en degrés pour créer une zone carrée autour du point central. Par exemple, « lat = 10.338 », « lon = -1.055 » et « buffer = 0.1 » sélectionneront une zone avec un rayon de 0,1 degré carré autour du point avec les coordonnées « (10.338, -1.055) ».

    Vous pouvez également fournir des valeurs de tampon distinctes pour la latitude et la longitude d’une zone rectangulaire. Par exemple, « lat = 10.338 », « lon = -1.055 » et « lat_buffer = 0.1 » et « lon_buffer = 0.08 » sélectionneront une zone rectangulaire s’étendant sur 0,1 degré au nord et au sud et 0,08 degré à l’est et à l’ouest à partir du point « (10.338, -1.055) ».

    Pour des temps de chargement raisonnables, définissez la mémoire tampon sur « 0,1 » ou moins.

  2. By uploading a polygon as a GeoJSON or Esri Shapefile. If you choose this option, you will need to upload the geojson or ESRI shapefile into the Sandbox using Upload Files button 0004b39048104462b76d5770e0273682 in the top left corner of the Jupyter Notebook interface. ESRI shapefiles must be uploaded with all the related files (.cpg, .dbf, .shp, .shx). Once uploaded, you can use the shapefile or geojson to define the area of interest. Remember to update the code to call the file you have uploaded.

Pour utiliser l’une de ces méthodes, vous pouvez décommenter la ligne de code concernée et commenter l’autre. Pour commenter une ligne, ajoutez le symbole "#" avant le code que vous souhaitez commenter. Par défaut, la première option qui définit l’emplacement à l’aide de la latitude, de la longitude et du tampon est utilisée.

Si vous exécutez le notebook pour la première fois, conservez les paramètres par défaut ci-dessous. Cela démontrera comment fonctionne l’analyse et fournira des résultats significatifs. L’exemple utilise le lac Mweru, un grand lac d’eau douce situé à la frontière entre la République démocratique du Congo (RDC) et la Zambie. Le lac Mweru soutient d’importantes pêcheries et les communautés environnantes, ce qui le rend bien adapté pour démontrer les produits de qualité de l’eau Sentinel-3 OLCI tels que la chlorophylle-a, les matières en suspension et la clarté de l’eau.

Pour exécuter le notebook pour une zone différente, assurez-vous que les données Sentinel-3 OLCI Land sont disponibles pour la zone choisie à l’aide de DEAfrica Explorer.

[6]:
# Method 1: Specify the latitude, longitude, and buffer)
aoi = define_area(lat= -8.9793, lon= 28.7650, buffer=0.55)

# Method 2: Use a polygon as a GeoJSON or Esri Shapefile.
# aoi = define_area(vector_path='aoi.shp')

#Create a geopolygon and geodataframe of the area of interest
geopolygon = Geometry(aoi["features"][0]["geometry"], crs="epsg:4326")
geopolygon_gdf = gpd.GeoDataFrame(geometry=[geopolygon], crs=geopolygon.crs)

# Get the latitude and longitude range of the geopolygon
lat_range = (geopolygon_gdf.total_bounds[1], geopolygon_gdf.total_bounds[3])
lon_range = (geopolygon_gdf.total_bounds[0], geopolygon_gdf.total_bounds[2])
[7]:
display_map(x=lon_range, y=lat_range)
[7]:
Make this Notebook Trusted to load map: File -> Trust Notebook

Charger le jeu de données Sentinel-3 à l’aide de dc.load()#

Maintenant que nous savons quels produits et mesures sont disponibles, nous pouvons charger les données du datacube en utilisant dc.load. Nous chargerons les données à partir des bandes spectrales satellites. En spécifiant output_crs='EPSG:4326' et resolution=(-0.003, 0.003), nous demandons au datacube de reprojeter nos données vers le système de coordonnées géographiques (CRS) mondial, avec des pixels d’environ 300 x 300 m. Enfin, group_by='solar_day' garantit que les images superposées prises à quelques secondes d’intervalle lors du passage du satellite sont combinées en un seul pas de temps dans les données.

[8]:
query = {
    'x': (lon_range),
    'y': (lat_range),
    'time':('2026-05-01', '2026-05-30'),
    'output_crs': 'EPSG:4326',
    'resolution': (-0.003, 0.003)}

ds_S3 = dc.load(product=product,
                group_by="solar_day",
                **query)

ds_S3
[8]:
<xarray.Dataset> Size: 176MB
Dimensions:      (time: 26, latitude: 368, longitude: 367)
Coordinates:
  * time         (time) datetime64[ns] 208B 2026-05-01T04:01:15.500000 ... 20...
  * latitude     (latitude) float64 3kB -8.428 -8.431 -8.434 ... -9.527 -9.529
  * longitude    (longitude) float64 3kB 28.22 28.22 28.22 ... 29.31 29.31 29.31
    spatial_ref  int32 4B 4326
Data variables: (12/26)
    A865         (time, latitude, longitude) int16 7MB 0 0 0 ... 32767 32767
    ADG443_NN    (time, latitude, longitude) int16 7MB 0 0 0 ... 32767 32767
    B01          (time, latitude, longitude) uint16 7MB 0 0 0 ... 65535 65535
    B02          (time, latitude, longitude) uint16 7MB 0 0 0 ... 65535 65535
    B03          (time, latitude, longitude) uint16 7MB 0 0 0 ... 65535 65535
    B04          (time, latitude, longitude) uint16 7MB 0 0 0 ... 65535 65535
    ...           ...
    IWV_W        (time, latitude, longitude) uint8 4MB 34 34 36 ... 255 255 255
    KD490_M07    (time, latitude, longitude) int16 7MB 0 0 0 ... 32767 32767
    PAR          (time, latitude, longitude) uint16 7MB 0 0 0 ... 65535 65535
    T865         (time, latitude, longitude) int16 7MB 0 0 0 ... 32767 32767
    TSM_NN       (time, latitude, longitude) int16 7MB 0 0 0 ... 32767 32767
    dataMask     (time, latitude, longitude) uint8 4MB 0 0 0 0 ... 255 255 255
Attributes:
    crs:           EPSG:4326
    grid_mapping:  spatial_ref

Application des facteurs d’échelle et des décalages aux mesures Sentinel-3 OLCI#

⚠️ Remarque : De nombreuses mesures dans le produit Sentinel-3 OLCI Level-2 Water Full Resolution sont stockées sous forme d’entiers mis à l’échelle pour réduire la taille du fichier tout en conservant la précision de mesure requise. Pour convertir une valeur entière stockée en sa valeur physique, appliquez les attributs scale_factor (facteur d’échelle) et add_offset (décalage) fournis dans les métadonnées de la variable. Le scale_factor modifie l’amplitude de la valeur stockée, tandis que le add_offset la déplace vers la plage physique correcte.

Les valeurs manquantes ou de remplissage doivent être masquées avant d’appliquer la mise à l’échelle.

\[\text{Valeur physique} = (\text{Valeur stockée} \times \text{Facteur d'échelle}) + \text{Décalage}\]

Par exemple, une valeur stockée de 2449 pour la bande de réflectance B01, avec un scale_factor de 0.0001 et un add_offset de 0, correspond à une valeur physique de 0.2449.

Le facteur d’échelle varie selon les mesures. La plupart des bandes de réflectance OLCI utilisent un facteur d’échelle de 0.0001, tandis que IWV_W (Vapeur d’eau intégrée) utilise un facteur d’échelle de 1.0, ce qui signifie que ses valeurs stockées sont déjà exprimées en valeurs physiques.

L’exemple suivant affiche le facteur d’échelle, le décalage et les unités pour toutes les mesures.

[9]:
metadata = pd.DataFrame(
    [
        {
            "Measurement": measurement,
            "Scale factor": ds_S3[measurement].attrs.get("scale_factor"),
            "Add offset": ds_S3[measurement].attrs.get("add_offset"),
            "Units": ds_S3[measurement].attrs.get("units"),
        }
        for measurement in ds_S3.data_vars
    ]
)

metadata
[9]:
Measurement Scale factor Add offset Units
0 A865 0.0001 0.0 1
1 ADG443_NN 0.0001 0.0 log10(1/m)
2 B01 0.0001 0.0 1
3 B02 0.0001 0.0 1
4 B03 0.0001 0.0 1
5 B04 0.0001 0.0 1
6 B05 0.0001 0.0 1
7 B06 0.0001 0.0 1
8 B07 0.0001 0.0 1
9 B08 0.0001 0.0 1
10 B09 0.0001 0.0 1
11 B10 0.0001 0.0 1
12 B11 0.0001 0.0 1
13 B12 0.0001 0.0 1
14 B16 0.0001 0.0 1
15 B17 0.0001 0.0 1
16 B18 0.0001 0.0 1
17 B21 0.0001 0.0 1
18 CHL_NN 0.0001 0.0 log10(mg/m^3)
19 CHL_OC4ME 0.0001 0.0 log10(mg/m^3)
20 IWV_W 1.0000 0.0 kg/m^2
21 KD490_M07 0.0001 0.0 log10(1/m)
22 PAR 1.0000 0.0 microeinstein/s/m^2
23 T865 0.0001 0.0 1
24 TSM_NN 0.0001 0.0 log10(g/m^3)
25 dataMask 1.0000 0.0 1

Masquage#

Avant la visualisation, nous utilisons la bande dataMask pour masquer les valeurs affectées par les nuages ou d’autres problèmes de qualité. Le dataMask est une couche de qualité binaire, où une valeur de 1 indique une observation valide et 0 indique une observation invalide.

La comparaison ci-dessous illustre l’effet de l’application du masque en utilisant la mesure de réflectance de surface Bande 03 (B03). L’image de gauche montre les données originales, tandis que le panneau de droite montre la même observation après n’avoir conservé que les pixels où dataMask = 1. Cela démontre comment le masque supprime les observations sur les zones non ciblées (c’est-à-dire non aquatiques) et les observations peu fiables, produisant un ensemble de données plus propre pour la visualisation et l’analyse ultérieure.

[10]:
# Select a single observation for comparison
time_idx = 8

# Unmasked
b03 = (ds_S3["B03"].isel(time=time_idx)* ds_S3["B03"].attrs["scale_factor"])

# Masked
b03_masked = (ds_S3["B03"].where(ds_S3.dataMask == 1).isel(time=time_idx)* ds_S3["B03"].attrs["scale_factor"])

# Plot comparison
fig, ax = plt.subplots(1, 2, figsize=(12,5))

b03.plot(ax=ax[0], robust=True)
ax[0].set_title("Without dataMask")

b03_masked.plot(ax=ax[1], robust=True)
ax[1].set_title("With dataMask")

plt.tight_layout()
../../../_images/sandbox_notebooks_Datasets_Sentinel_3_Water_26_0.png

La comparaison démontre l’effet de l’application du dataMask. Sans masquage (à gauche), les observations invalides sont conservées, y compris les pixels affectés par les nuages, les terres ou d’autres problèmes de qualité. L’application du dataMask (à droite) supprime ces pixels peu fiables en ne conservant que les observations où dataMask = 1, ce qui donne une image plus propre, plus appropriée pour l’interprétation visuelle et l’analyse ultérieure.

Après avoir démontré son effet, le dataMask est maintenant appliqué à l’ensemble du jeu de données afin que toutes les visualisations et analyses ultérieures n’utilisent que des observations valides.

[11]:
ds_S3 = ds_S3.where(ds_S3.dataMask == 1)

La cellule ci-dessous visualise la réflectance de surface de la Bande 03 (B03) au moment de l’observation, représentant la réflectance corrigée atmosphériquement dans la région bleu-vert du spectre électromagnétique. Le facteur d’échelle est appliqué avant la visualisation pour convertir les valeurs entières stockées en valeurs de réflectance physiques.

[12]:
(ds_S3['B03'].isel(time=[0, 8, 18, 24])*ds_S3["B03"].attrs["scale_factor"]).plot(robust=True, col="time", col_wrap=4);
../../../_images/sandbox_notebooks_Datasets_Sentinel_3_Water_31_0.png

La cellule ci-dessous visualise le produit chlorophylle-a CHL_NN, estimé à l’aide d’un algorithme de réseau neuronal pour les eaux côtières et intérieures optiquement complexes. Le facteur d’échelle est appliqué avant la visualisation pour convertir les valeurs entières stockées en valeurs physiques.

[13]:
(ds_S3.isel(time=[0, 8, 18, 24])['CHL_NN']*ds_S3["CHL_NN"].attrs["scale_factor"]).plot(robust=True, col="time", col_wrap=4)
[13]:
<xarray.plot.facetgrid.FacetGrid at 0x7fae4149a990>
../../../_images/sandbox_notebooks_Datasets_Sentinel_3_Water_33_1.png

La cellule ci-dessous visualise le produit chlorophylle-a CHL_OC4ME, estimé à l’aide de l’algorithme OC4ME pour les eaux de pleine mer. Le facteur d’échelle est appliqué avant la visualisation pour convertir les valeurs entières stockées en valeurs physiques.

[14]:
(ds_S3.isel(time=[0, 8, 18, 24])['CHL_OC4ME']*ds_S3["CHL_OC4ME"].attrs["scale_factor"]).plot(robust=True, col="time", col_wrap=4)
[14]:
<xarray.plot.facetgrid.FacetGrid at 0x7fae414e2720>
../../../_images/sandbox_notebooks_Datasets_Sentinel_3_Water_35_1.png

La cellule ci-dessous visualise le produit Matières en suspension totales (TSM_NN), représentant la concentration de particules en suspension dans la colonne d’eau estimée à l’aide d’un algorithme de réseau neuronal. Le facteur d’échelle est appliqué avant la visualisation pour convertir les valeurs entières stockées en valeurs physiques.

[15]:
(ds_S3.isel(time=[0, 8, 18, 24])['TSM_NN']*ds_S3["TSM_NN"].attrs["scale_factor"]).plot(robust=True, col="time", col_wrap=4)
[15]:
<xarray.plot.facetgrid.FacetGrid at 0x7fae4163f380>
../../../_images/sandbox_notebooks_Datasets_Sentinel_3_Water_37_1.png

La cellule ci-dessous visualise le Coefficient d'atténuation diffuse à 490 nm (KD490_M07), représentant la clarté de l’eau et la vitesse à laquelle la lumière est atténuée dans la colonne d’eau. Le facteur d’échelle est appliqué avant la visualisation pour convertir les valeurs entières stockées en valeurs physiques.

[16]:
(ds_S3.isel(time=[0, 8, 18, 24])['KD490_M07']*ds_S3["KD490_M07"].attrs["scale_factor"]).plot(robust=True, col="time", col_wrap=4)
[16]:
<xarray.plot.facetgrid.FacetGrid at 0x7fae347eba70>
../../../_images/sandbox_notebooks_Datasets_Sentinel_3_Water_39_1.png

La cellule ci-dessous visualise le Rayonnement photosynthétiquement actif (PAR), représentant la quantité de lumière solaire disponible pour la photosynthèse atteignant la surface de la Terre. Comme le PAR a un facteur d’échelle de 1.0, aucune mise à l’échelle n’est requise avant la visualisation.

[17]:
(ds_S3.isel(time=[0, 8, 18, 24])['PAR']).plot(robust=True, col="time", col_wrap=4)
[17]:
<xarray.plot.facetgrid.FacetGrid at 0x7fae42c81b80>
../../../_images/sandbox_notebooks_Datasets_Sentinel_3_Water_41_1.png

La cellule ci-dessous visualise l”Épaisseur optique des aérosols (T865), représentant la quantité d’aérosols dans l’atmosphère au-dessus de chaque observation. Le facteur d’échelle est appliqué avant la visualisation pour convertir les valeurs entières stockées en valeurs physiques.

[18]:
(ds_S3.isel(time=[0, 8, 18, 24])['T865']*ds_S3["T865"].attrs["scale_factor"]).plot(robust=True, col="time", col_wrap=4)
[18]:
<xarray.plot.facetgrid.FacetGrid at 0x7fae34753a70>
../../../_images/sandbox_notebooks_Datasets_Sentinel_3_Water_43_1.png

La cellule ci-dessous visualise la Vapeur d'eau intégrée (IWV_W), représentant la vapeur d’eau atmosphérique totale contenue dans une colonne verticale de l’atmosphère. Comme IWV_W a un facteur d’échelle de 1.0, aucune mise à l’échelle n’est requise avant la visualisation.

[22]:
(ds_S3.isel(time=[0, 8, 18, 24])['IWV_W']).plot(robust=True, col="time", col_wrap=4)
[22]:
<xarray.plot.facetgrid.FacetGrid at 0x7fae4162b530>
../../../_images/sandbox_notebooks_Datasets_Sentinel_3_Water_45_1.png

Informations Complémentaires#

Licence Le code de ce notebook est sous licence Apache, version 2.0 <https://www.apache.org/licenses/LICENSE-2.0>`__.

Les données de Digital Earth Africa sont sous licence Creative Commons Attribution 4.0 <https://creativecommons.org/licenses/by/4.0/>.

Contact Si vous avez besoin d’aide, veuillez poster une question sur le canal Slack DE Africa <https://digitalearthafrica.slack.com/> ou sur le GIS Stack Exchange <https://gis.stackexchange.com/questions/ask?tags=open-data-cube> en utilisant la balise open-data-cube (vous pouvez consulter les questions posées précédemment `ici <https://gis.stackexchange.com/questions/tagged/open-data-

Si vous souhaitez signaler un problème avec ce notebook, vous pouvez en déposer un sur Github.

Version de Datacube compatible

[20]:
print(datacube.__version__)
1.9.13

Dernier test :

[21]:
from datetime import datetime
datetime.today().strftime('%Y-%m-%d')
[21]:
'2026-09-02'