ee.Image.sampleRegions

تحويل كل بكسل في صورة (بمقياس معيّن) يتقاطع مع منطقة واحدة أو أكثر إلى عنصر جغرافي، وإرجاعها كـ FeatureCollection سيتضمّن كل عنصر ناتج سمة واحدة لكل نطاق من الصورة المدخلة، بالإضافة إلى أي سمات محدّدة تم نسخها من العنصر المدخل.

يُرجى العِلم أنّه سيتم محاذاة الأشكال الهندسية مع مراكز وحدات البكسل.

الاستخدامالمرتجعات
Image.sampleRegions(collection, properties, scale, projection, tileScale, geometries)FeatureCollection
الوسيطةالنوعالتفاصيل
هذا: imageصورةالصورة المطلوب أخذ عيّنة منها
collectionFeatureCollectionالمناطق التي سيتم أخذ عيّنات منها.
propertiesقائمة، القيمة التلقائية: nullقائمة بالسمات التي سيتم نسخها من كل معلم إدخال. يتم ضبط القيمة تلقائيًا على جميع الخصائص غير التابعة للنظام.
scaleعدد عائم، القيمة التلقائية: nullمقياس اسمي بالأمتار للعرض الذي سيتم أخذ عينات منه في حال عدم تحديدها، يتم استخدام مقياس النطاق الأول للصورة.
projectionالتوقعات، القيمة التلقائية: nullنظام الإحداثيات الذي سيتم أخذ العيّنات فيه. في حال عدم تحديدها، يتم استخدام إسقاط النطاق الأول للصورة. إذا تم تحديدها بالإضافة إلى المقياس، سيتم إعادة قياسها وفقًا للمقياس المحدّد.
tileScaleعدد عشري، القيمة التلقائية: 1عامل قياس يُستخدَم لتقليل حجم مربّع التجميع، وقد يتيح استخدام tileScale أكبر (مثل 2 أو 4) إجراء عمليات حسابية تنفد فيها الذاكرة مع القيمة التلقائية.
geometriesقيمة منطقية، القيمة التلقائية: falseإذا كانت القيمة صحيحة، ستتضمّن النتائج هندسة نقطية لكل بكسل تم أخذ عينات منه. وإلا سيتم حذف الأشكال الهندسية (لتوفير مساحة تخزين).

أمثلة

أداة تعديل الرموز (JavaScript)

// A Sentinel-2 surface reflectance image.
var img = ee.Image('COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG');
Map.setCenter(-122.503881, 37.765588, 18);
Map.addLayer(img, {bands: ['B11', 'B8', 'B3'], min: 100, max: 4500}, 'img');

// A feature collection with two polygon regions each intersecting 36
// pixels at 10 m scale.
var fcPolygon = ee.FeatureCollection([
  ee.Feature(ee.Geometry.Rectangle(
    -122.50620929, 37.76502806, -122.50552264, 37.76556663), {id: 0}),
  ee.Feature(ee.Geometry.Rectangle(
    -122.50530270, 37.76565568, -122.50460533, 37.76619425), {id: 1})
]);
Map.addLayer(fcPolygon, {color: 'yellow'}, 'fcPolygon');

var fcPolygonSamp = img.sampleRegions({
  collection: fcPolygon,
  scale: 10,
  geometries: true
});
// Note that 7 pixels are missing from the sample. If a pixel contains a masked
// band value it will be excluded from the sample. In this case, the TCI_B band
// is masked for each unsampled pixel.
print('A feature per pixel (at given scale) in each region', fcPolygonSamp);
Map.addLayer(fcPolygonSamp, {color: 'purple'}, 'fcPolygonSamp');

// A feature collection with two points intersecting two different pixels.
// This example is included to show the behavior for point geometries. In
// practice, if the feature collection is all points, ee.Image.reduceRegions
// should be used instead to save memory.
var fcPoint = ee.FeatureCollection([
  ee.Feature(ee.Geometry.Point([-122.50309256, 37.76605006]), {id: 0}),
  ee.Feature(ee.Geometry.Point([-122.50344661, 37.76560903]), {id: 1})
]);
Map.addLayer(fcPoint, {color: 'cyan'}, 'fcPoint');

var fcPointSamp = img.sampleRegions({
  collection: fcPoint,
  scale: 10
});
print('A feature per point', fcPointSamp);

إعداد Python

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

import ee
import geemap.core as geemap

Colab (Python)

# A Sentinel-2 surface reflectance image.
img = ee.Image('COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG')
m = geemap.Map()
m.set_center(-122.503881, 37.765588, 18)
m.add_layer(
    img, {'bands': ['B11', 'B8', 'B3'], 'min': 100, 'max': 4500}, 'img'
)
display(m)

# A feature collection with two polygon regions each intersecting 36
# pixels at 10 m scale.
fc_polygon = ee.FeatureCollection([
    ee.Feature(
        ee.Geometry.Rectangle(
            -122.50620929, 37.76502806, -122.50552264, 37.76556663
        ),
        {'id': 0},
    ),
    ee.Feature(
        ee.Geometry.Rectangle(
            -122.50530270, 37.76565568, -122.50460533, 37.76619425
        ),
        {'id': 1},
    ),
])
m.add_layer(fc_polygon, {'color': 'yellow'}, 'fc_polygon')

fc_polygon_samp = img.sampleRegions(
    collection=fc_polygon, scale=10, geometries=True
)
# Note that 7 pixels are missing from the sample. If a pixel contains a masked
# band value it will be excluded from the sample. In this case, the TCI_B band
# is masked for each unsampled pixel.
display('A feature per pixel (at given scale) in each region', fc_polygon_samp)
m.add_layer(fc_polygon_samp, {'color': 'purple'}, 'fc_polygon_samp')

# A feature collection with two points intersecting two different pixels.
# This example is included to show the behavior for point geometries. In
# practice, if the feature collection is all points, ee.Image.reduceRegions
# should be used instead to save memory.
fc_point = ee.FeatureCollection([
    ee.Feature(ee.Geometry.Point([-122.50309256, 37.76605006]), {'id': 0}),
    ee.Feature(ee.Geometry.Point([-122.50344661, 37.76560903]), {'id': 1}),
])
m.add_layer(fc_point, {'color': 'cyan'}, 'fc_point')

fc_point_samp = img.sampleRegions(collection=fc_point, scale=10)
display('A feature per point', fc_point_samp)