Bir azaltıcının çıkışını belirtilen bir girişin değerine göre gruplandırmak için reducer.group()
'yi kullanarak Image
veya FeatureCollection
'nin her bölgesinde istatistikler alabilirsiniz. Örneğin, her eyaletteki toplam nüfusu ve konut birimi sayısını hesaplamak için bu örnekte, bir nüfus sayımı bloğunun FeatureCollection
azaltılmasının sonucu şu şekilde gruplandırılmıştır:
Kod Düzenleyici (JavaScript)
// Load a collection of US census blocks. var blocks = ee.FeatureCollection('TIGER/2010/Blocks'); // Compute sums of the specified properties, grouped by state code. var sums = blocks .filter(ee.Filter.and( ee.Filter.neq('pop10', null), ee.Filter.neq('housing10', null))) .reduceColumns({ selectors: ['pop10', 'housing10', 'statefp10'], reducer: ee.Reducer.sum().repeat(2).group({ groupField: 2, groupName: 'state-code', }) }); // Print the resultant Dictionary. print(sums);
import ee import geemap.core as geemap
Colab (Python)
# Load a collection of US census blocks. blocks = ee.FeatureCollection('TIGER/2010/Blocks') # Compute sums of the specified properties, grouped by state code. sums = blocks.filter( ee.Filter.And( ee.Filter.neq('pop10', None), ee.Filter.neq('housing10', None) ) ).reduceColumns( selectors=['pop10', 'housing10', 'statefp10'], reducer=ee.Reducer.sum() .repeat(2) .group(groupField=2, groupName='state-code'), ) # Print the resultant Dictionary. display(sums)
groupField
bağımsız değişkeni, gruplandırılacak kodları içeren seçici dizisi içindeki girişin dizinidir. groupName
bağımsız değişkeni ise gruplandırma değişkeninin değerini depolayacak mülkün adını belirtir. Azaltıcı her giriş için otomatik olarak tekrarlanmadığından repeat(2)
çağrısı gerekir.
image.reduceRegions()
sonucunu gruplandırmak için grupları tam sayı piksel değerlerine göre tanımlayan bir gruplandırma bandı belirtebilirsiniz. Bu tür hesaplamalara bazen "bölgesel istatistikler" denir. Bu hesaplamalarda bölgeler gruplandırma bandı olarak belirtilir ve istatistik azaltıcı tarafından belirlenir. Aşağıdaki örnekte, ABD'deki gece ışıklarındaki değişiklik, arazi örtüsü kategorisine göre gruplandırılmıştır:
Kod Düzenleyici (JavaScript)
// Load a region representing the United States var region = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017') .filter(ee.Filter.eq('country_na', 'United States')); // Load MODIS land cover categories in 2001. var landcover = ee.Image('MODIS/051/MCD12Q1/2001_01_01') // Select the IGBP classification band. .select('Land_Cover_Type_1'); // Load nightlights image inputs. var nl2001 = ee.Image('NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F152001') .select('stable_lights'); var nl2012 = ee.Image('NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F182012') .select('stable_lights'); // Compute the nightlights decadal difference, add land cover codes. var nlDiff = nl2012.subtract(nl2001).addBands(landcover); // Grouped a mean reducer: change of nightlights by land cover category. var means = nlDiff.reduceRegion({ reducer: ee.Reducer.mean().group({ groupField: 1, groupName: 'code', }), geometry: region.geometry(), scale: 1000, maxPixels: 1e8 }); // Print the resultant Dictionary. print(means);
import ee import geemap.core as geemap
Colab (Python)
# Load a region representing the United States region = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017').filter( ee.Filter.eq('country_na', 'United States') ) # Load MODIS land cover categories in 2001. landcover = ee.Image('MODIS/051/MCD12Q1/2001_01_01').select( # Select the IGBP classification band. 'Land_Cover_Type_1' ) # Load nightlights image inputs. nl_2001 = ee.Image('NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F152001').select( 'stable_lights' ) nl_2012 = ee.Image('NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F182012').select( 'stable_lights' ) # Compute the nightlights decadal difference, add land cover codes. nl_diff = nl_2012.subtract(nl_2001).addBands(landcover) # Grouped a mean reducer: change of nightlights by land cover category. means = nl_diff.reduceRegion( reducer=ee.Reducer.mean().group(groupField=1, groupName='code'), geometry=region.geometry(), scale=1000, maxPixels=1e8, ) # Print the resultant Dictionary. display(means)
Bu örnekte groupField
değerinin, çıkışın gruplandırılacağı bölgeleri içeren bandın dizini olduğunu unutmayın. İlk bant 0, ikinci bant 1 şeklinde devam eder.