لتقليل خصائص العناصر في FeatureCollection
، استخدِم
featureCollection.reduceColumns()
. راجِع المثال التالي على لعبة:
محرِّر الرموز البرمجية (JavaScript)
// Make a toy FeatureCollection. var aFeatureCollection = ee.FeatureCollection([ ee.Feature(null, {foo: 1, weight: 1}), ee.Feature(null, {foo: 2, weight: 2}), ee.Feature(null, {foo: 3, weight: 3}), ]); // Compute a weighted mean and display it. print(aFeatureCollection.reduceColumns({ reducer: ee.Reducer.mean(), selectors: ['foo'], weightSelectors: ['weight'] }));
import ee import geemap.core as geemap
Colab (Python)
# Make a toy FeatureCollection. a_feature_collection = ee.FeatureCollection([ ee.Feature(None, {'foo': 1, 'weight': 1}), ee.Feature(None, {'foo': 2, 'weight': 2}), ee.Feature(None, {'foo': 3, 'weight': 3}), ]) # Compute a weighted mean and display it. display( a_feature_collection.reduceColumns( reducer=ee.Reducer.mean(), selectors=['foo'], weightSelectors=['weight'] ) )
يُرجى العلم أنّه يتمّ احتساب وزن المدخلات وفقًا للسمة weight
المحدّدة. وبالتالي، تكون النتيجة:
mean: 2.333333333333333
في ما يلي مثال أكثر تعقيدًا، وهو FeatureCollection
من الكتل الإحصائية للولايات المتحدة
مع بيانات التعداد السكاني كسمات. المتغيّرات المعنيّة هي إجمالي عدد السكان
وإجمالي عدد الوحدات السكنية. يمكنك الحصول على مجموع القيم من خلال تقديم وسيطة لتجميع القيم
إلى reduceColumns()
وطباعة النتيجة:
محرِّر الرموز البرمجية (JavaScript)
// Load US census data as a FeatureCollection. var census = ee.FeatureCollection('TIGER/2010/Blocks'); // Filter the collection to include only Benton County, OR. var benton = census.filter( ee.Filter.and( ee.Filter.eq('statefp10', '41'), ee.Filter.eq('countyfp10', '003') ) ); // Display Benton County census blocks. Map.setCenter(-123.27, 44.57, 13); Map.addLayer(benton); // Compute sums of the specified properties. var properties = ['pop10', 'housing10']; var sums = benton .filter(ee.Filter.notNull(properties)) .reduceColumns({ reducer: ee.Reducer.sum().repeat(2), selectors: properties }); // Print the resultant Dictionary. print(sums);
import ee import geemap.core as geemap
Colab (Python)
# Load US census data as a FeatureCollection. census = ee.FeatureCollection('TIGER/2010/Blocks') # Filter the collection to include only Benton County, OR. benton = census.filter( ee.Filter.And( ee.Filter.eq('statefp10', '41'), ee.Filter.eq('countyfp10', '003') ) ) # Display Benton County census blocks. m = geemap.Map() m.set_center(-123.27, 44.57, 13) m.add_layer(benton) display(m) # Compute sums of the specified properties. properties = ['pop10', 'housing10'] sums = benton.filter(ee.Filter.notNull(properties)).reduceColumns( reducer=ee.Reducer.sum().repeat(2), selectors=properties ) # Print the resultant Dictionary. display(sums)
الناتج هو Dictionary
يمثّل السمة المجمّعة وفقًا
للعامل المُختزل المحدّد:
sum: [85579,36245]
يُرجى العلم أنّ المثال أعلاه يستخدم الفلتر notNull()
لتضمين
الميزات التي تحتوي فقط على إدخالات غير فارغة للمواقع المحدّدة في المجموعة التي يتم تقليلها.
من الممارسات الجيدة التحقّق من الإدخالات الخالية من القيمة لرصد البيانات المفقودة غير المتوقّعة وتجنُّب
الأخطاء الناتجة عن العمليات الحسابية التي تتضمّن قيمًا خالية.
يُرجى العلم أيضًا أنّه على عكس imageCollection.reduce()
، حيث يتم تكرار المُخفِّضات
تلقائيًا لكل نطاق، يجب تكرار المُخفِّضات في FeatureCollection
بشكل صريح باستخدام repeat()
. على وجه التحديد، كرِّر المُخفِّض m
مرّات لمدخلات m. قد يتم طرح الخطأ التالي نتيجة عدم تكرار
المُخفِّض: