إحصاءات أعمدة FeatureCollection

لتقليل خصائص العناصر في 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']
}));

إعداد لغة Python

اطّلِع على صفحة بيئة Python للحصول على معلومات عن واجهة برمجة التطبيقات Python API واستخدام IDE geemap لتطوير التطبيقات التفاعلي.

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);

إعداد لغة Python

اطّلِع على صفحة بيئة Python للحصول على معلومات عن واجهة برمجة التطبيقات Python API واستخدام IDE geemap لتطوير التطبيقات التفاعلي.

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. قد يتم طرح الخطأ التالي نتيجة عدم تكرار المُخفِّض: