ee.Image.reduceRegions

Примените редуктор к площади каждого элемента в заданной коллекции.

Редуктор должен иметь такое же количество входных сигналов, сколько полос содержит входное изображение.

Возвращает входные признаки, каждый из которых дополнен соответствующими выходными данными редуктора.

Использование Возвраты
Image. reduceRegions (collection, reducer, scale , crs , crsTransform , tileScale , maxPixelsPerRegion ) FeatureCollection
Аргумент Тип Подробности
это: image Изображение Изображение, которое нужно уменьшить.
collection FeatureCollection Функции, которые необходимо сократить.
reducer Редуктор Какой разбавитель следует применить?
scale Число с плавающей запятой, значение по умолчанию: null Номинальный масштаб в метрах рабочей области.
crs Проекция, по умолчанию: null Проекция для работы. Если не указана, используется проекция первого канала изображения. Если указана в дополнение к масштабу, масштабирование производится до указанного масштаба.
crsTransform Список, по умолчанию: null Список значений преобразования CRS. Это построчный порядок матрицы преобразования 3x2. Этот параметр взаимоисключающий с параметром «масштаб» и заменит любое преобразование, уже установленное для проекции.
tileScale Число с плавающей запятой, по умолчанию: 1 Коэффициент масштабирования, используемый для уменьшения размера агрегированных блоков; использование большего значения tileScale (например, 2 или 4) может привести к тому, что при значении по умолчанию произойдет нехватка памяти для вычислений.
maxPixelsPerRegion Длинный, значение по умолчанию: null Максимальное количество пикселей для уменьшения в пределах одного региона.

Примеры

Редактор кода (JavaScript)

// A Landsat 8 SR image with SWIR1, NIR, and green bands.
var img = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20210508')
              .select(['SR_B6', 'SR_B5', 'SR_B3']);

// Santa Cruz Mountains ecoregions feature collection.
var regionCol = ee.FeatureCollection('EPA/Ecoregions/2013/L4')
                    .filter('us_l4name == "Santa Cruz Mountains" || ' +
                            'us_l4name == "San Mateo Coastal Hills" || ' +
                            'us_l4name == "Leeward Hills"');

// Display layers on the map.
Map.setCenter(-122.08, 37.22, 9);
Map.addLayer(img, {min: 10000, max: 20000}, 'Landsat image');
Map.addLayer(regionCol, {color: 'white'}, 'Santa Cruz Mountains ecoregions');

// Calculate median band values within Santa Cruz Mountains ecoregions. It is
// good practice to explicitly define "scale" (or "crsTransform") and "crs"
// parameters of the analysis to avoid unexpected results from undesired
// defaults when e.g. reducing a composite image.
var stats = img.reduceRegions({
  collection: regionCol,
  reducer: ee.Reducer.median(),
  scale: 30,  // meters
  crs: 'EPSG:3310',  // California Albers projection
});

// The input feature collection is returned with new properties appended.
// The new properties are the outcome of the region reduction per image band,
// for each feature in the collection. Region reduction property names
// are the same as the input image band names.
print('Median band values, Santa Cruz Mountains ecoregions', stats);

// You can combine reducers to calculate e.g. mean and standard deviation
// simultaneously. The resulting property names are the concatenation of the
// band names and statistic names, separated by an underscore.
var reducer = ee.Reducer.mean().combine({
  reducer2: ee.Reducer.stdDev(),
  sharedInputs: true
});
var multiStats = img.reduceRegions({
  collection: regionCol,
  reducer: reducer,
  scale: 30,
  crs: 'EPSG:3310',
});
print('Mean & SD band values, Santa Cruz Mountains ecoregions', multiStats);

настройка Python

Информацию об API Python и использовании geemap для интерактивной разработки можно найти на странице «Среда Python» .

import ee
import geemap.core as geemap

Colab (Python)

# A Landsat 8 SR image with SWIR1, NIR, and green bands.
img = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20210508').select(
    ['SR_B6', 'SR_B5', 'SR_B3']
)

# Santa Cruz Mountains ecoregions feature collection.
region_col = ee.FeatureCollection('EPA/Ecoregions/2013/L4').filter(
    'us_l4name == "Santa Cruz Mountains" || '
    + 'us_l4name == "San Mateo Coastal Hills" || '
    + 'us_l4name == "Leeward Hills"'
)

# Display layers on the map.
m = geemap.Map()
m.set_center(-122.08, 37.22, 9)
m.add_layer(img, {'min': 10000, 'max': 20000}, 'Landsat image')
m.add_layer(
    region_col, {'color': 'white'}, 'Santa Cruz Mountains ecoregions'
)
display(m)

# Calculate median band values within Santa Cruz Mountains ecoregions. It is
# good practice to explicitly define "scale" (or "crsTransform") and "crs"
# parameters of the analysis to avoid unexpected results from undesired
# defaults when e.g. reducing a composite image.
stats = img.reduceRegions(
    collection=region_col,
    reducer=ee.Reducer.median(),
    scale=30,  # meters
    crs='EPSG:3310',  # California Albers projection
)

# The input feature collection is returned with new properties appended.
# The new properties are the outcome of the region reduction per image band,
# for each feature in the collection. Region reduction property names
# are the same as the input image band names.
display('Median band values, Santa Cruz Mountains ecoregions', stats)

# You can combine reducers to calculate e.g. mean and standard deviation
# simultaneously. The resulting property names are the concatenation of the
# band names and statistic names, separated by an underscore.
reducer = ee.Reducer.mean().combine(
    reducer2=ee.Reducer.stdDev(), sharedInputs=True
)
multi_stats = img.reduceRegions(
    collection=region_col,
    reducer=reducer,
    scale=30,
    crs='EPSG:3310',
)
display('Mean & SD band values, Santa Cruz Mountains ecoregions', multi_stats)