Rozważmy przykład, w którym trzeba obliczyć medianę na podstawie sekwencji obrazów w czasie reprezentowanych przez ImageCollection
. Aby zmniejszyć ImageCollection
, użyj imageCollection.reduce()
. W ten sposób zbiór obrazów zostanie ograniczony do jednego obrazu, jak pokazano na rysunku 1. W szczególności dane wyjściowe są obliczane dla poszczególnych pikseli, co oznacza, że każdy piksel w danych wyjściowych składa się z wartości mediany wszystkich obrazów w zbiorze w danej lokalizacji. Aby uzyskać inne statystyki, takie jak średnia, suma, wariancja, dowolny przedział ćwiartkowy itp., należy wybrać odpowiedni reduktor i go zastosować. (listę wszystkich dostępnych obecnie reduktorów znajdziesz na karcie Dokumenty w Edytorze kodu). podstawowe statystyki, takie jak minimum, maksimum, średnia itp.;
ImageCollection
ma metody skrótu, takie jak min()
,
max()
, mean()
itp. Działa ona dokładnie tak samo jak wywołanie funkcji reduce()
, z tym, że nazwy powstałych pasm nie będą zawierać dołączonej nazwy reduktora.

Przykładem zmniejszenia ImageCollection
może być kolekcja obrazów Landsat 5, filtrowana według ścieżki i wiersza. Ten kod używa funkcji reduce()
do zredukowania zbioru do jednego Image
(w tym przykładzie użyliśmy reduktora mediany tylko w celu zilustrowania działania funkcji):
Edytor kodu (JavaScript)
// Load an image collection, filtered so it's not too much data. var collection = ee.ImageCollection('LANDSAT/LT05/C02/T1') .filterDate('2008-01-01', '2008-12-31') .filter(ee.Filter.eq('WRS_PATH', 44)) .filter(ee.Filter.eq('WRS_ROW', 34)); // Compute the median in each band, each pixel. // Band names are B1_median, B2_median, etc. var median = collection.reduce(ee.Reducer.median()); // The output is an Image. Add it to the map. var vis_param = {bands: ['B4_median', 'B3_median', 'B2_median'], gamma: 1.6}; Map.setCenter(-122.3355, 37.7924, 9); Map.addLayer(median, vis_param);
import ee import geemap.core as geemap
Colab (Python)
# Load an image collection, filtered so it's not too much data. collection = ( ee.ImageCollection('LANDSAT/LT05/C02/T1') .filterDate('2008-01-01', '2008-12-31') .filter(ee.Filter.eq('WRS_PATH', 44)) .filter(ee.Filter.eq('WRS_ROW', 34)) ) # Compute the median in each band, each pixel. # Band names are B1_median, B2_median, etc. median = collection.reduce(ee.Reducer.median()) # The output is an Image. Add it to the map. vis_param = {'bands': ['B4_median', 'B3_median', 'B2_median'], 'gamma': 1.6} m = geemap.Map() m.set_center(-122.3355, 37.7924, 9) m.add_layer(median, vis_param) m
Zwraca to wielopasmowy obraz Image
, w którym każdy piksel jest medianą wszystkich niezamaskowanych pikseli w ImageCollection
w danej lokalizacji piksela. W szczególności reduktor został powtórzony dla każdego pasma obrazu wejściowego, co oznacza, że mediana jest obliczana niezależnie w każdym paśmie. Pamiętaj, że nazwy pasm mają dołączoną nazwę reduktora: 'B1_median'
, 'B2_median'
itd. Wynik powinien wyglądać jak na rysunku 2.
Więcej informacji o zmniejszaniu liczby kolekcji zdjęć znajdziesz w sekcji poświęconej zmniejszaniu liczby kolekcji zdjęć w dokumentacji ImageCollection
. Zwróć uwagę, że obrazy utworzone przez pomniejszenie ImageCollection
nie mają projekcji. Oznacza to, że należy wyraźnie ustawić skalę dla wszystkich obliczeń z udziałem obliczonych obrazów generowanych przez ImageCollection
.
