Диаграммы коллекций изображений

Модуль ui.Chart.image содержит набор функций для отрисовки диаграмм по результатам пространственно-временного уменьшения изображений внутри ImageCollection . Выбор функции определяет расположение данных на диаграмме, т. е. то, что определяет значения по осям X и Y, а также то, что определяет ряд. Используйте следующие описания функций и примеры, чтобы определить, какая функция лучше всего подходит для ваших целей.

Функции диаграммы

Используйте следующие диаграммы в качестве наглядного руководства, чтобы понять, как каждая функция упорядочивает результаты сокращения пространственно-временной коллекции изображений на диаграмме; т. е. какие элементы определяют значения x, значения y и серии. Обратите внимание, что функции ui.Chart.image.doySeries* принимают два редуктора: один для сокращения региона ( regionReducer ), а другой для внутригодового сокращения совпадающих дней года ( yearReducer ). В примерах в следующих разделах ee.Reducer.mean() используется в качестве аргумента для обоих этих параметров.

ui.Chart.image.series

Дата изображения откладывается вдоль оси X в соответствии со свойством system:time_start . Серии определяются полосами изображений. Значения по оси Y представляют собой уменьшение изображений по дате для одного региона.

ui.Chart.image.seriesByRegion

Дата изображения откладывается вдоль оси X в соответствии со свойством system:time_start . Серии определяются регионами. Значения по оси Y представляют собой уменьшение изображений по дате для одной полосы изображения.

ui.Chart.image.doySeries

Изображение дня года откладывается вдоль оси X в соответствии со свойством system:time_start . Серии определяются полосами изображений. Значения по оси Y представляют собой уменьшение пикселей изображения в заданном регионе, сгруппированных по дням года.

ui.Chart.image.doySeriesByYear

Изображение дня года откладывается вдоль оси X в соответствии со свойством system:time_start . Серии определяются годами, присутствующими в ImageCollection . Значения по оси Y представляют собой уменьшение пикселей изображения в заданном регионе, сгруппированных по дням года, для выбранного диапазона изображения.

ui.Chart.image.doySeriesByRegion

Изображение дня года откладывается вдоль оси X в соответствии со свойством system:time_start . Серии определяются регионами. Значения по оси Y представляют собой уменьшение пикселей изображения в заданном регионе, сгруппированных по дням года, для выбранного диапазона изображения.

Пример данных

Следующие примеры основаны на ImageCollection , который представляет собой временной ряд NDVI и EVI на основе MODIS. Сокращение регионов выполняется для экорегионов, определенных объектами в FeatureCollection созданном для демонстрационных целей ( узнайте, как это было сделано ).

ui.Chart.image.series

Используйте ui.Chart.image.series для отображения временного ряда изображения для данного региона; каждая полоса изображений представлена ​​как уникальная серия. Это полезно для сравнения временных рядов отдельных полос изображений. Здесь представлена ​​коллекция изображений MODIS с полосами, представляющими индексы растительности NDVI и EVI. Дата каждого наблюдения изображения отображается по оси X, а среднее уменьшение количества пикселей, пересекающих лесной экорегион, определяет ось Y.

Редактор кода (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

Используйте ui.Chart.image.seriesByRegion для отображения временного ряда одного диапазона изображений для нескольких регионов; каждый регион представлен как уникальная серия. Это полезно для сравнения временных рядов одной полосы в нескольких регионах. Здесь коллекция изображений MODIS, представляющая временной ряд NDVI, построена для трех экорегионов. Дата каждого наблюдения изображения отображается по оси X, а среднее уменьшение количества пикселей, пересекающих лесные, пустынные и луговые экорегионы, определяет ряд по оси Y.

Редактор кода (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

Используйте ui.Chart.image.doySeries для отображения временного ряда по дням года для данного региона; каждая полоса изображений представлена ​​как уникальная серия. Для сокращения количества наблюдений, происходящих в один и тот же день года в течение нескольких лет, полезно сравнить, например, среднегодовые профили NDVI и EVI из MODIS, как в этом примере.

Редактор кода (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

Используйте ui.Chart.image.doySeriesByYear для отображения временного ряда по дням года для данного региона и диапазона изображений, где каждый отдельный год в коллекции изображений представлен как уникальная серия. Это полезно для сравнения годовых временных рядов разных лет. Например, в этом примере годовые профили NDVI, полученные с помощью MODIS, для пастбищного экорегиона строятся за 2012 и 2019 годы, что обеспечивает удобную интерпретацию по сравнению с прошлым годом.

Редактор кода (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

Используйте ui.Chart.image.doySeriesByRegion для отображения одного временного ряда по дням года для нескольких регионов, где каждый отдельный регион представлен как уникальная серия. Это полезно для сравнения годовых однополосных временных рядов между регионами. Например, в этом примере строятся годовые профили NDVI, полученные с помощью MODIS, для лесных, пустынных и луговых экорегионов, что обеспечивает удобное сравнение реакции NDVI по регионам. Обратите внимание, что внутригодовые наблюдения, происходящие в один и тот же день года, сокращаются по их среднему значению.

Редактор кода (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);