Génération de séries chronologiques animées continentales à l’aide de « xr_animation »

Mots-clés données utilisées ; ndvi_anomaly, méthodes de données ; animation, index de bande ; ndvi_mean

Taille de mémoire minimale requise : 32 Go ou plus

Veuillez noter que ce bloc-notes nécessite au moins 32 Go de mémoire ou plus pour fonctionner correctement dans le Sandbox Digital Earth Africa. L’allocation de mémoire par défaut de 16 Go peut ne pas être suffisante pour exécuter le bloc-notes correctement.

Si vous rencontrez des problèmes liés à la mémoire, pensez à augmenter l’allocation de mémoire pour votre Digital Earth Africa Sandbox.

**Remarque ** : les besoins réels en mémoire peuvent varier en fonction des calculs et des données spécifiques impliqués dans le notebook.

Aperçu

Les animations peuvent être une méthode puissante pour visualiser l’évolution du paysage au fil du temps à l’aide d’images satellite. Les données satellite de Digital Earth Africa sont un sujet idéal pour les animations car elles ont été géoréférencées, traitées pour obtenir une réflectance de surface prête à être analysée et empilées dans un « cube de données » spatio-temporel, ce qui permet d’extraire et de visualiser les conditions du paysage de manière cohérente au fil du temps.

En utilisant les fonctions DE Africa dans « Scripts/deafrica_plotting », qui sont basées sur « matplotlib.animation » et « xarray », nous pouvons prendre une série chronologique d’images satellite Digital Earth Africa et exporter une animation de série chronologique visuellement attrayante qui montre comment n’importe quel endroit en Afrique a changé.

Description

Ce cahier montre comment :

  1. Importer une série chronologique de données mensuelles moyennes xarray disponibles sur la plateforme DE Africa. Pour ce notebook, nous utiliserons le service Mean NDVI and Anomalies. Plus d’informations sur le jeu de données disponible <https://docs.digitalearthafrica.org/en/latest/data_specs/index.html>`__

  2. Exportez l’ensemble de données résultant sous forme d’animations au format GIF ou MP4


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

[1]:
%matplotlib inline

import datacube
import matplotlib.pyplot as plt
from IPython.display import Image

from deafrica_tools.plotting import xr_animation
from deafrica_tools.dask import create_local_dask_cluster
/usr/local/lib/python3.8/dist-packages/geopandas/_compat.py:112: UserWarning: The Shapely GEOS version (3.8.0-CAPI-1.13.1 ) is incompatible with the GEOS version PyGEOS was compiled with (3.10.3-CAPI-1.16.1). Conversions between both will be slow.
  warnings.warn(
[2]:
create_local_dask_cluster()

Client

Cluster

  • Workers: 1
  • Cores: 4
  • Memory: 28.14 GB

Se connecter au datacube

[3]:
dc = datacube.Datacube(app='export_animated_timeseries')

Charger des données satellite à partir de Datacube

Nous utiliserons la fonction de chargement dc pour charger des données (c’est-à-dire ndvi_anomaly) et renverrons un « xarray.Dataset ». Cela nous permettra de créer une animation de séries chronologiques visuellement attrayante des observations pour la période sélectionnée.

[4]:
#Specify the time period
time_range = ('2019-01-01', '2019-12-31')

# Load available data
ds = dc.load(product='ndvi_anomaly',
              output_crs='epsg:6933',
              time = time_range,
              resolution=(-2500, 2500),
              dask_chunks=dict(x=2000,y=2000)
              )

ds = ds.compute()

Animations

[6]:
# Produce the time series animation
xr_animation(ds=ds,
             output_path='ndvi_mean.gif',
             bands=['ndvi_mean'],
             show_date='%B-%Y',
             interval=500,
             imshow_kwargs={'cmap': 'RdYlGn', 'vmin': 0.0, 'vmax': 0.9},
             colorbar_kwargs={'colors': 'black'},
             width_pixels=600,
             annotation_kwargs= {'color':'black', 'animated': True}
    )

# Plot animated gif
plt.close()
Image(filename='ndvi_mean.gif')
Exporting animation to ndvi_mean.gif
[6]:
<IPython.core.display.Image object>

Informations Complémentaires

Licence : Le code de ce carnet 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 par 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 Open Data Cube <http://slack.opendatacube.org/>`__ ou sur le GIS Stack Exchange en utilisant la balise open-data-cube (vous pouvez consulter les questions posées précédemment ici). Si vous souhaitez signaler un problème avec ce bloc-notes, vous pouvez en déposer un sur Github.

Version de Datacube compatible :

[ ]:
print(datacube.__version__)

Dernier test :

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