می توانید با استفاده از reducer.group()
برای گروه بندی خروجی یک کاهنده بر اساس مقدار ورودی مشخص، آماری را در هر ناحیه از یک Image
یا FeatureCollection
بدست آورید. به عنوان مثال، برای محاسبه کل جمعیت و تعداد واحدهای مسکونی در هر ایالت، این مثال خروجی کاهش یک بلوک سرشماری FeatureCollection
را به صورت زیر گروه بندی می کند:
ویرایشگر کد (جاوا اسکریپت)
// 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
کولب (پایتون)
# 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()
می توانید یک باند گروه بندی را مشخص کنید که گروه ها را با مقادیر پیکسل صحیح تعریف می کند. گاهی اوقات به این نوع محاسبات "آمار منطقه ای" گفته می شود که مناطق به عنوان باند گروه بندی مشخص می شوند و آمار توسط کاهنده تعیین می شود. در مثال زیر، تغییر در نور شب در ایالات متحده بر اساس طبقه بندی پوشش زمین گروه بندی شده است:
ویرایشگر کد (جاوا اسکریپت)
// 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
کولب (پایتون)
# 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 و غیره است.