Graphiques ImageCollection

Le module ui.Chart.image contient un ensemble de fonctions permettant d'afficher des graphiques à partir des résultats de la réduction spatiotemporelle des images dans un ImageCollection. Le choix de la fonction détermine la disposition des données dans le graphique, c'est-à-dire ce qui définit les valeurs des axes X et Y, et ce qui définit la série. Utilisez les descriptions et exemples de fonctions suivantes pour déterminer la fonction la plus adaptée à votre objectif.

Fonctions de graphique

Utilisez les diagrammes de tracé suivants comme guide visuel pour comprendre comment chaque fonction organise les résultats de réduction de la collection d'images spatiotemporelles dans un graphique, c'est-à-dire quels éléments définissent les valeurs X, les valeurs Y et les séries. Notez que les fonctions ui.Chart.image.doySeries* acceptent deux réducteurs: l'un pour la réduction par région (regionReducer) et l'autre pour la réduction intra-annuelle par jour de l'année (yearReducer). Les exemples des sections suivantes utilisent ee.Reducer.mean() comme argument pour ces deux paramètres.

ui.Chart.image.series

La date de l'image est représentée sur l'axe X en fonction de la propriété system:time_start. Les séries sont définies par des bandes d'images. Les valeurs de l'axe Y correspondent à la réduction du nombre d'images, par date, pour une seule région.

ui.Chart.image.seriesByRegion

La date de l'image est représentée sur l'axe X en fonction de la propriété system:time_start. Les séries sont définies par région. Les valeurs de l'axe Y correspondent à la réduction des images, par date, pour une seule bande d'images.

ui.Chart.image.doySeries

Le jour de l'année de l'image est représenté sur l'axe X en fonction de la propriété system:time_start. Les séries sont définies par des bandes d'images. Les valeurs de l'axe Y correspondent à la réduction des pixels de l'image dans une région donnée, regroupée par jour de l'année.

ui.Chart.image.doySeriesByYear

Le jour de l'année de l'image est représenté sur l'axe X en fonction de la propriété system:time_start. Les séries sont définies par les années présentes dans le fichier ImageCollection. Les valeurs de l'axe Y correspondent à la réduction des pixels d'une image dans une région donnée, regroupée par jour de l'année, pour une bande d'image sélectionnée.

ui.Chart.image.doySeriesByRegion

Le jour de l'année de l'image est représenté sur l'axe X en fonction de la propriété system:time_start. Les séries sont définies par région. Les valeurs de l'axe Y correspondent à la réduction des pixels d'une image dans une région donnée, regroupée par jour de l'année, pour une bande d'image sélectionnée.

Exemple de données

Les exemples suivants reposent sur un ImageCollection, qui est une série temporelle de NDVI et d'EVI basée sur MODIS. La réduction de région est effectuée sur les écorégions définies par des éléments géographiques dans un FeatureCollection conçu à des fins de démonstration (découvrez comment il a été créé).

ui.Chart.image.series

Utilisez ui.Chart.image.series pour afficher une série temporelle d'images pour une région donnée. Chaque bande d'image est présentée comme une série unique. Il est utile pour comparer les séries temporelles de bandes d'images individuelles. Ici, une collection d'images MODIS avec des bandes représentant les indices de végétation NDVI et EVI est représentée. La date de chaque observation d'image est incluse sur l'axe X, tandis que la réduction moyenne des pixels qui croisent une écorégion forestière définit l'axe Y.

Éditeur de code (JavaScript)

// Import the example feature collection and subset the forest feature.
var forest = ee.FeatureCollection('projects/google/charts_feature_example')
                 .filter(ee.Filter.eq('label', 'Forest'));

// Load MODIS vegetation indices data and subset a decade of images.
var vegIndices = ee.ImageCollection('MODIS/061/MOD13A1')
                     .filter(ee.Filter.date('2010-01-01', '2020-01-01'))
                     .select(['NDVI', 'EVI']);

// Define the chart and print it to the console.
var chart =
    ui.Chart.image
        .series({
          imageCollection: vegIndices,
          region: forest,
          reducer: ee.Reducer.mean(),
          scale: 500,
          xProperty: 'system:time_start'
        })
        .setSeriesNames(['EVI', 'NDVI'])
        .setOptions({
          title: 'Average Vegetation Index Value by Date for Forest',
          hAxis: {title: 'Date', titleTextStyle: {italic: false, bold: true}},
          vAxis: {
            title: 'Vegetation index (x1e4)',
            titleTextStyle: {italic: false, bold: true}
          },
          lineWidth: 5,
          colors: ['e37d05', '1d6b99'],
          curveType: 'function'
        });
print(chart);

ui.Chart.image.seriesByRegion

Utilisez ui.Chart.image.seriesByRegion pour afficher une série temporelle d'une seule bande d'image pour plusieurs régions. Chaque région est présentée comme une série unique. Il est utile pour comparer les séries temporelles d'une seule bande dans plusieurs régions. Ici, une collection d'images MODIS représentant une série temporelle NDVI est représentée pour trois écorégions. La date de chaque observation d'image est incluse sur l'axe X, tandis que la réduction moyenne des pixels qui croisent les écorégions de forêts, de déserts et de prairies définit les séries de l'axe Y.

Éditeur de code (JavaScript)

// Import the example feature collection.
var ecoregions = ee.FeatureCollection('projects/google/charts_feature_example');

// Load MODIS vegetation indices data and subset a decade of images.
var vegIndices = ee.ImageCollection('MODIS/061/MOD13A1')
                     .filter(ee.Filter.date('2010-01-01', '2020-01-01'))
                     .select(['NDVI', 'EVI']);

// Define the chart and print it to the console.
var chart =
    ui.Chart.image
        .seriesByRegion({
          imageCollection: vegIndices,
          band: 'NDVI',
          regions: ecoregions,
          reducer: ee.Reducer.mean(),
          scale: 500,
          seriesProperty: 'label',
          xProperty: 'system:time_start'
        })
        .setOptions({
          title: 'Average NDVI Value by Date',
          hAxis: {title: 'Date', titleTextStyle: {italic: false, bold: true}},
          vAxis: {
            title: 'NDVI (x1e4)',
            titleTextStyle: {italic: false, bold: true}
          },
          lineWidth: 5,
          colors: ['f0af07', '0f8755', '76b349'],
        });
print(chart);

ui.Chart.image.doySeries

Utilisez ui.Chart.image.doySeries pour afficher une série temporelle par jour de l'année pour une région donnée. Chaque bande d'image est présentée comme une série unique. Il est utile pour réduire les observations qui se produisent le même jour de l'année, sur plusieurs années, afin de comparer, par exemple, les profils NDVI et EVI annuels moyens de MODIS, comme dans cet exemple.

Éditeur de code (JavaScript)

// Import the example feature collection and subset the grassland feature.
var grassland = ee.FeatureCollection('projects/google/charts_feature_example')
                    .filter(ee.Filter.eq('label', 'Grassland'));

// Load MODIS vegetation indices data and subset a decade of images.
var vegIndices = ee.ImageCollection('MODIS/061/MOD13A1')
                     .filter(ee.Filter.date('2010-01-01', '2020-01-01'))
                     .select(['NDVI', 'EVI']);

// Define the chart and print it to the console.
var chart =
    ui.Chart.image
        .doySeries({
          imageCollection: vegIndices,
          region: grassland,
          regionReducer: ee.Reducer.mean(),
          scale: 500,
          yearReducer: ee.Reducer.mean(),
          startDay: 1,
          endDay: 365
        })
        .setSeriesNames(['EVI', 'NDVI'])
        .setOptions({
          title: 'Average Vegetation Index Value by Day of Year for Grassland',
          hAxis: {
            title: 'Day of year',
            titleTextStyle: {italic: false, bold: true}
          },
          vAxis: {
            title: 'Vegetation index (x1e4)',
            titleTextStyle: {italic: false, bold: true}
          },
          lineWidth: 5,
          colors: ['e37d05', '1d6b99'],
        });
print(chart);

ui.Chart.image.doySeriesByYear

Utilisez ui.Chart.image.doySeriesByYear pour afficher une série temporelle par jour de l'année pour une région et une bande d'images données, où chaque année distincte de la collection d'images est présentée comme une série unique. Il est utile pour comparer les séries temporelles annuelles entre les années. Par exemple, dans cet exemple, les profils NDVI annuels dérivés de MODIS pour une écorégion de prairies sont représentés pour les années 2012 et 2019, ce qui permet une interprétation pratique d'une année à l'autre.

Éditeur de code (JavaScript)

// Import the example feature collection and subset the grassland feature.
var grassland = ee.FeatureCollection('projects/google/charts_feature_example')
                    .filter(ee.Filter.eq('label', 'Grassland'));

// Load MODIS vegetation indices data and subset years 2012 and 2019.
var vegIndices = ee.ImageCollection('MODIS/061/MOD13A1')
                     .filter(ee.Filter.or(
                         ee.Filter.date('2012-01-01', '2013-01-01'),
                         ee.Filter.date('2019-01-01', '2020-01-01')))
                     .select(['NDVI', 'EVI']);

// Define the chart and print it to the console.
var chart = ui.Chart.image
                .doySeriesByYear({
                  imageCollection: vegIndices,
                  bandName: 'NDVI',
                  region: grassland,
                  regionReducer: ee.Reducer.mean(),
                  scale: 500,
                  sameDayReducer: ee.Reducer.mean(),
                  startDay: 1,
                  endDay: 365
                })
                .setOptions({
                  title: 'Average NDVI Value by Day of Year for Grassland',
                  hAxis: {
                    title: 'Day of year',
                    titleTextStyle: {italic: false, bold: true}
                  },
                  vAxis: {
                    title: 'NDVI (x1e4)',
                    titleTextStyle: {italic: false, bold: true}
                  },
                  lineWidth: 5,
                  colors: ['39a8a7', '9c4f97'],
                });
print(chart);

ui.Chart.image.doySeriesByRegion

Utilisez ui.Chart.image.doySeriesByRegion pour afficher une seule bande d'image pour une série temporelle par jour de l'année pour plusieurs régions, où chaque région distincte est présentée comme une série unique. Il est utile pour comparer les séries temporelles annuelles à bande unique entre les régions. Par exemple, dans cet exemple, les profils NDVI annuels dérivés de MODIS pour les écorégions de forêts, de déserts et de prairies sont représentés, ce qui permet de comparer facilement la réponse NDVI par région. Notez que les observations intra-annuelles qui se produisent le même jour de l'année sont réduites de leur moyenne.

Éditeur de code (JavaScript)

// Import the example feature collection.
var ecoregions = ee.FeatureCollection('projects/google/charts_feature_example');

// Load MODIS vegetation indices data and subset a decade of images.
var vegIndices = ee.ImageCollection('MODIS/061/MOD13A1')
                     .filter(ee.Filter.date('2010-01-01', '2020-01-01'))
                     .select(['NDVI', 'EVI']);

// Define the chart and print it to the console.
var chart = ui.Chart.image
                .doySeriesByRegion({
                  imageCollection: vegIndices,
                  bandName: 'NDVI',
                  regions: ecoregions,
                  regionReducer: ee.Reducer.mean(),
                  scale: 500,
                  yearReducer: ee.Reducer.mean(),
                  seriesProperty: 'label',
                  startDay: 1,
                  endDay: 365
                })
                .setOptions({
                  title: 'Average NDVI Value by Day of Year',
                  hAxis: {
                    title: 'Day of year',
                    titleTextStyle: {italic: false, bold: true}
                  },
                  vAxis: {
                    title: 'NDVI (x1e4)',
                    titleTextStyle: {italic: false, bold: true}
                  },
                  lineWidth: 5,
                  colors: ['f0af07', '0f8755', '76b349'],
                });
print(chart);