يمكنك الحصول على إحصاءات في كل منطقة من Image
أو
FeatureCollection
باستخدام reducer.group()
لتجميع الإخراج
لمُختزل حسب قيمة إدخال محدّد. على سبيل المثال، لاحتساب إجمالي
عدد السكان وعدد الوحدات السكنية في كل ولاية، يجمع هذا المثال الناتج عن
تقليل مجموعة إحصائية FeatureCollection
على النحو التالي:
محرِّر الرموز البرمجية (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
هي فهرس الإدخال في صفيف المحدّدات
الذي يحتوي على الرموز التي يتم التجميع حسبها، وتحدِّد المَعلمة groupName
اسم السمة لتخزين قيمة متغيّر التجميع. بما أنّ دالة التقليل
لا تتم إعادة تطبيقها تلقائيًا لكل إدخال، يجب استخدام دالة repeat(2)
.
لتجميع ناتج image.reduceRegions()
، يمكنك تحديد نطاق تجميع
يحدّد المجموعات حسب قيم البكسل الصحيحة. يُطلق على هذا النوع من العمليات الحسابية أحيانًا اسم
"الإحصاءات على مستوى المناطق"، حيث يتم تحديد المناطق على أنّها نطاق التجميع ويتم تحديد الإحصاءات
من خلال أداة التقليل. في المثال التالي، تم تجميع التغيير في الأضواء الليلية في
الولايات المتحدة حسب فئة تغطية الأرض:
محرِّر الرموز البرمجية (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)
يُرجى العلم أنّ العنصر groupField
في هذا المثال هو فهرس النطاق
الذي يحتوي على المناطق التي يتم تجميع النتائج حسبها. يكون النطاق الأول هو الفهرس 0، والثاني هو
الفهرس 1، وهكذا.