reduceRegion
Bir ee.Image
bölgesindeki piksel değerlerinin istatistiklerini almak için image.reduceRegion()
'i kullanın.
Bu işlem, bölgelerdeki tüm pikselleri bir istatistike veya bölgedeki piksel verilerinin başka bir kompakt temsiline (ör. histogram) indirger. Bölge, Geometry
olarak temsil edilir. Bu, birçok piksel içeren bir çokgen veya tek bir nokta olabilir. Bu durumda bölgede yalnızca bir piksel bulunur. Her iki durumda da, Şekil 1'de gösterildiği gibi çıkış, bölgedeki piksellerden elde edilen bir istatistiktir.

ee.Reducer
görseli.reduceRegion()
kullanarak bir görüntünün bir bölgesinde piksel istatistikleri elde etme örneği olarak, Sierra Nevada İğne Yapraklı Ormanı sınırları içindeki 5 yıllık bir Landsat kompozitinin ortalama spektral değerlerini bulabilirsiniz (Şekil 2'de gösterilmiştir):
// Load input imagery: Landsat 7 5-year composite. var image = ee.Image('LANDSAT/LE7_TOA_5YEAR/2008_2012'); // Load an input region: Sierra Nevada. var region = ee.Feature(ee.FeatureCollection('EPA/Ecoregions/2013/L3') .filter(ee.Filter.eq('us_l3name', 'Sierra Nevada')) .first()); // Reduce the region. The region parameter is the Feature geometry. var meanDictionary = image.reduceRegion({ reducer: ee.Reducer.mean(), geometry: region.geometry(), scale: 30, maxPixels: 1e9 }); // The result is a Dictionary. Print it. print(meanDictionary);
Hesaplamayı zorlamak için sonucu yazdırmak yeterlidir. Kod Düzenleyici, sonucu konsolda Dictionary
olarak gösterir. Çıkış şu şekilde görünecektir:
B1: 25.406029716816853 B2: 23.971497014238988 B3: 22.91059593763103 B4: 54.83164133293403 B5: 38.07655472573677 B6_VCID_2: 198.93216428012906 B7: 24.063261634961563

Bu örnekte, küçültmenin reducer
(ee.Reducer.mean()
), geometry
(region.geometry()
), scale
(30 metre) ve maxPixels
(azaltıcıya girilecek maksimum piksel sayısı) değerlerinin sağlanmasıyla belirtildiğini unutmayın. reduceRegion()
çağrılarında her zaman bir ölçek belirtilmelidir. Bunun nedeni, farklı ölçeklere sahip farklı kaynaklardan gelen verileri içerebilen karmaşık işlem akışlarında çıkışın ölçeğinin girişlerden net bir şekilde belirlenmemesidir. Bu durumda, ölçek varsayılan olarak 1 dereceye ayarlanır. Bu da genellikle tatmin edici olmayan sonuçlar verir. Earth Engine'ın ölçeği nasıl yönettiği hakkında daha fazla bilgi için bu sayfaya bakın.
Ölçeği ayarlamak için iki yöntem vardır: scale
parametresini belirterek veya bir CRS ve CRS dönüşümü belirterek. (CRS'ler ve CRS dönüştürme işlemleri hakkında daha fazla bilgi için terimler sözlüğüne bakın). Örneğin, yukarıdaki meanDictionary
indirimi aşağıdakilere eşittir:
// As an alternative to specifying scale, specify a CRS and a CRS transform. // Make this array by constructing a 4326 projection at 30 meters, // then copying the bounds of the composite, from composite.projection(). var affine = [0.00026949458523585647, 0, -180, 0, -0.00026949458523585647, 86.0000269494563]; // Perform the reduction, print the result. print(image.reduceRegion({ reducer: ee.Reducer.mean(), geometry: region.geometry(), crs: 'EPSG:4326', crsTransform: affine, maxPixels: 1e9 }));
Genel olarak, ölçeği belirtmek yeterlidir ve daha okunaklı kodlar elde edilir. Earth Engine, önce bölgeyi rasterleştirerek azaltıcıya hangi piksellerin girileceğini belirler. Bir ölçek, CRS olmadan belirtilirse bölge, resmin yerel projeksiyonunda rasterleştirilir ve belirtilen çözünürlüğe ölçeklendirilir. Hem bir CRS hem de ölçek belirtilirse bölge bunlara göre rasterleştirilir.
Bölgedeki pikseller
Piksellerin bölgede olup olmadığı (ve ağırlıkları) aşağıdaki kurallara göre belirlenir. Bu kurallar, belirtilen ölçek ve projeksiyonda uygulanır:
- Ağırlıklandırılmamış azaltıcılar (ör.
ee.Reducer.count()
veyaee.Reducer.mean().unweighted()
): Orta noktaları bölgedeyse ve resmin maskesi sıfırdan farklıysa pikseller dahil edilir. - Ağırlıklı azaltıcılar (ör.
ee.Reducer.mean()
): Pikselin en az (yaklaşık) %0,5'i bölgedeyse ve resmin maskesi sıfır değilse pikseller dahil edilir; ağırlıkları, resmin maskesinin ve bölgenin kapladığı pikselin (yaklaşık) kesrinin minimum değeridir.
Hesaplamanın başarılı olması için maxPixels
parametresi gereklidir. Bu parametre örnekten çıkarılırsa aşağıdaki gibi bir hata döndürülür:
Bu hataları aşmak için birden fazla seçenek vardır: Örnekte olduğu gibi maxPixels
değerini artırın, scale
değerini artırın veya bestEffort
değerini doğru olarak ayarlayın. Bu durumda, maxPixels
değerinin aşılmaması için otomatik olarak yeni (daha büyük) bir ölçek hesaplanır. maxPixels
değerini belirtmezseniz varsayılan değer kullanılır.