ee.Image.reduceRegion

Zastosuj funkcję redukującą do wszystkich pikseli w określonym regionie.

Reduktor musi mieć tyle samo danych wejściowych, ile pasm ma obraz wejściowy, lub musi mieć jedno wejście, które będzie powtarzane dla każdego pasma.

Zwraca słownik danych wyjściowych funkcji redukującej.

WykorzystanieZwroty
Image.reduceRegion(reducer, geometry, scale, crs, crsTransform, bestEffort, maxPixels, tileScale)Słownik
ArgumentTypSzczegóły
to: imageObrazObraz do zmniejszenia.
reducerOgraniczenieFunkcja redukująca do zastosowania.
geometryGeometria, domyślnie: nullRegion, w którym chcesz zmniejszyć ilość danych. Domyślnie jest to obszar pierwszej warstwy obrazu.
scaleLiczba zmiennoprzecinkowa, domyślnie: nullSkala nominalna w metrach rzutu, w którym chcesz pracować.
crsProjekcja, domyślnie: nullProjekcja, w której chcesz pracować. Jeśli nie zostanie określony, użyta zostanie projekcja pierwszego pasma obrazu. Jeśli jest określony dodatkowo do skali, jest przeskalowywany do określonej skali.
crsTransformLista, domyślnie: nullLista wartości przekształcenia CRS. Jest to kolejność wierszowa macierzy przekształcenia 3x2. Ta opcja wyklucza się wzajemnie z opcją „scale” i zastępuje każdą transformację już ustawioną w projekcji.
bestEffortWartość logiczna, domyślnie: falseJeśli wielokąt zawierałby zbyt wiele pikseli w danym powiększeniu, oblicz i użyj większego powiększenia, które umożliwi wykonanie operacji.
maxPixelsDługa, domyślna: 10000000Maksymalna liczba pikseli do zmniejszenia.
tileScaleLiczba zmiennoprzecinkowa, domyślnie: 1Współczynnik skalowania od 0,1 do 16 używany do dostosowywania rozmiaru kafelka agregacji. Ustawienie większej wartości tileScale (np. 2 lub 4) powoduje użycie mniejszych kafelków i może umożliwić obliczenia, które przy domyślnej wartości wyczerpują pamięć.

Przykłady

Edytor kodu (JavaScript)

// A Landsat 8 surface reflectance 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 ecoregion geometry.
var geom = ee.FeatureCollection('EPA/Ecoregions/2013/L4')
               .filter('us_l4name == "Santa Cruz Mountains"').geometry();

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

// Calculate median band values within Santa Cruz Mountains ecoregion. 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.reduceRegion({
  reducer: ee.Reducer.median(),
  geometry: geom,
  scale: 30,  // meters
  crs: 'EPSG:3310',  // California Albers projection
});

// A dictionary is returned; keys are band names, values are the statistic.
print('Median band values, Santa Cruz Mountains ecoregion', stats);

// You can combine reducers to calculate e.g. mean and standard deviation
// simultaneously. The output dictionary keys 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.reduceRegion({
  reducer: reducer,
  geometry: geom,
  scale: 30,
  crs: 'EPSG:3310',
});
print('Mean & SD band values, Santa Cruz Mountains ecoregion', multiStats);

Konfiguracja Pythona

Informacje o interfejsie API dla Pythona oraz o używaniu geemap do interaktywnego programowania znajdziesz na stronie środowiska Python.

import ee
import geemap.core as geemap

Colab (Python)

# A Landsat 8 surface reflectance 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 ecoregion geometry.
geom = (
    ee.FeatureCollection('EPA/Ecoregions/2013/L4')
    .filter('us_l4name == "Santa Cruz Mountains"')
    .geometry()
)

# 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(geom, {'color': 'white'}, 'Santa Cruz Mountains ecoregion')
display(m)

# Calculate median band values within Santa Cruz Mountains ecoregion. 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.reduceRegion(
    reducer=ee.Reducer.median(),
    geometry=geom,
    scale=30,  # meters
    crs='EPSG:3310',  # California Albers projection
)

# A dictionary is returned keys are band names, values are the statistic.
display('Median band values, Santa Cruz Mountains ecoregion', stats)

# You can combine reducers to calculate e.g. mean and standard deviation
# simultaneously. The output dictionary keys 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.reduceRegion(
    reducer=reducer,
    geometry=geom,
    scale=30,
    crs='EPSG:3310',
)
display('Mean & SD band values, Santa Cruz Mountains ecoregion', multi_stats)