Masquage des nuages avec load_ard()
Dans cet exercice, nous appliquerons un masque de nuage aux données Sentinel-2 au large des côtes du Ghana. Les masques cloud sont importants car ils suppriment les mauvais points de données de notre ensemble de données, afin que nous puissions former une image composite fiable.
Créer un nouveau cahier
Comme dans le dernier exercice, nous allons commencer par faire un nouveau notebook Jupyter vierge. Si vous voulez des instructions plus détaillées sur la création d’un nouveau notebook, consultez cette section dans l’exercice sur le chargement des données dans le bac à sable de la session précédente. Sinon, suivez les étapes ci-dessous.
Naviguez vers le dossier Training (ou créez ce dossier en suivant les instructions de Session 1).
Cliquez sur le bouton + et cliquez sur Python 3 dans la section Notebook.
Renommez votre fichier pour que vous sachiez qu’il provient de cet exercice. Nous utiliserons ce cahier pour travailler avec les géomédias, alors appelons-le
Geomedian_composite.ipynb
.Ouvrez le cahier.
Configurer le notebook
Charger des packages et des fonctions
Dans la première cellule, tapez le code suivant, puis exécutez la cellule. Rappelez-vous que les cellules peuvent être exécutées en appuyant sur les touches Maj + Entrée
de votre clavier.
Nous avons utilisé la plupart de ces paquets et fonctions dans l’exercice précédent sur le chargement des données dans le bac à sable. rgb
permet de tracer des images en couleur. display_map
permet de visualiser la zone que nous avons sélectionnée.
Dans cette session, nous introduisons deux nouvelles fonctions : load_ard
et xr_geomedian
. Nous utiliserons load_ard
pour charger les données afin qu’elles soient masquées par les nuages, et xr_geomedian
est utilisé dans la section suivante pour calculer le géomédian.
Note
À partir de juin 2021, le paquet deafrica_tools
a remplacé l’importation de fichiers dépréciée sys.path.append('../Scripts')
. Pour plus d’informations sur deafrica_tools
, visitez la documentation du module DE Africa Tools””.
Connectez-vous au datacube
Entrez le code suivant et exécutez la cellule pour créer notre objet dc
, qui donne accès au datacube.
Votre notebook est maintenant configuré. Ensuite, nous allons charger des données masquées par le nuage en utilisant load_ard()
.
Chargement des données avec load_ard()
Note
Si vous rencontrez des erreurs lors de l’exécution des cellules, consultez le guide de code de dépannage de la session précédente.
Intéressons-nous à une zone côtière du Ghana. Entrez le code suivant et exécutez-le pour afficher une carte de la zone. Comme précédemment, x
désigne la longitude et ``y``la latitude.
Dans la nouvelle cellule ci-dessous, entrez le code suivant, puis exécutez-le pour charger les données Sentinel-2. Il générera le texte de sortie Using pixel quality parameters for Sentinel 2 ...
(« Utilisation des paramètres de qualité des pixels pour Sentinel 2… »). Le texte de sortie nous indique que nous avons chargé 4 pas de temps.
Prenez note de certaines des différences entre dc.load()
et load_ard
.
dc=dc
est un paramètre obligatoire pourload_ard()
. Cela relie la recherche de données à la connexion du datacube, que nous avons définie dans la configuration du notebook commedc
.Le paramètre pour charger les produits est
products
(pluriel) et nonproduct
comme dansdc.load()
.Les éléments du produit doivent être listés entre crochets
[]
, ce qui n’est pas nécessaire pourdc.load()
.min_gooddata
signifie “minimum good data” et écarte les observations dont le nombre de pixels de bonne qualité est inférieur à la fraction requise.
Note
s2_l2a
signifie Sentinel-2 Level-2A. Le quatrième caractère est un “l” alphabétique minuscule. Vérifiez que vous avez saisi le nom du produit correctement pour éviter les erreurs.
Nous pouvons utiliser le même code de traçage rgb
que dans la dernière session pour afficher une image RVB d’un des pas de temps. Commençons par le premier pas de temps, qui a un index
de 0
.
Cela devrait produire une seule image RVB comme indiqué ci-dessous. Que se passe-t-il si vous essayez de changer le numéro index
?
Si nous voulons voir les images RVB de tous les pas de temps en une seule fois, nous pouvons remplacer le paramètre index
par le paramètre col
. Le paramètre col
signifie “colonne”. En spécifiant col='time'
, on crée une ligne d’images pour les pas de temps.
La sortie devrait ressembler à ceci.
Conclusion
Bon travail - vous avez maintenant chargé des données en utilisant load_ard()
, qui a un masque automatique de nuages. Nous pouvons voir que les images à différents moments ont une couverture nuageuse différente, donc elles ont été masquées à différents endroits. C’est pourquoi le fait d’avoir des données à différents intervalles de temps peut nous permettre de créer une image composite sans aucun nuage.
Dans la section suivante, nous utiliserons ces données chargées pour créer un composite géomédien.