ee.Image.sample

تعرض هذه الدالة عيّنات من وحدات البكسل في صورة، وتعيدها كـ FeatureCollection. سيتضمّن كل عنصر موقعًا واحدًا لكل نطاق في الصورة المُدخَلة. يُرجى العِلم أنّ السلوك التلقائي هو حذف العناصر التي تتقاطع مع وحدات البكسل المخفية، ما يؤدي إلى خصائص ذات قيم فارغة (راجِع وسيط dropNulls).

الاستخدامالمرتجعات
Image.sample(region, scale, projection, factor, numPixels, seed, dropNulls, tileScale, geometries)FeatureCollection
الوسيطةالنوعالتفاصيل
هذا: imageصورةالصورة المطلوب أخذ عيّنة منها
regionGeometry, default: nullالمنطقة التي سيتم أخذ عيّنات منها في حال عدم تحديدها، يتم استخدام مساحة الصورة بالكامل.
scaleالعدد العائم، القيمة التلقائية: nullمقياس اسمي بالأمتار للإسقاط الذي سيتم أخذ عينات منه
projectionالتوقّع، القيمة التلقائية: nullنظام الإسقاط الذي سيتم أخذ العيّنة فيه. في حال عدم تحديدها، يتم استخدام إسقاط النطاق الأول للصورة. إذا تم تحديدها بالإضافة إلى المقياس، سيتم إعادة قياسها وفقًا للمقياس المحدّد.
factorالعدد العائم، القيمة التلقائية: nullعامل جمع عيّنات جزئية، ضمن (0, 1]. في حال تحديدها، يجب عدم تحديد "numPixels". القيمة التلقائية هي عدم أخذ عينات فرعية.
numPixelsLong، القيمة التلقائية: nullالعدد التقريبي لوحدات البكسل التي سيتم أخذ عيّنات منها في حال تحديد هذه السمة، يجب عدم تحديد السمة "العامل".
seedعدد صحيح، القيمة التلقائية: 0قيمة أساسية عشوائية تُستخدَم لأخذ عينات فرعية.
dropNullsقيمة منطقية، القيمة التلقائية: trueفلترة النتيجة بعد المعالجة لإزالة العناصر التي تتضمّن سمات ذات قيم فارغة
tileScaleعدد عائم، القيمة التلقائية: 1عامل قياس يُستخدَم لتقليل حجم مربّع التجميع، ويؤدي استخدام قيمة أكبر لـ tileScale (مثل 2 أو 4) قد تتيح إجراء عمليات حسابية تنفد فيها الذاكرة مع القيمة التلقائية.
geometriesقيمة منطقية، القيمة التلقائية: falseفي حال ضبط القيمة على "صحيح"، تتم إضافة مركز البكسل الذي تم أخذ عينات منه كسمة هندسية للعنصر الناتج. وإلا سيتم حذف الأشكال الهندسية (لتوفير مساحة في الذاكرة).

أمثلة

محرّر الرموز البرمجية (JavaScript)

// Demonstrate extracting pixels from an image as features with
// ee.Image.sample(), and show how the features are aligned with the pixels.

// An image with one band of elevation data.
var image = ee.Image('CGIAR/SRTM90_V4');
var VIS_MIN = 1620;
var VIS_MAX = 1650;
Map.addLayer(image, {min: VIS_MIN, max: VIS_MAX}, 'SRTM');

// Region to sample.
var region = ee.Geometry.Polygon(
  [[[-110.006, 40.002],
    [-110.006, 39.999],
    [-109.995, 39.999],
    [-109.995, 40.002]]], null, false);
// Show region on the map.
Map.setCenter(-110, 40, 16);
Map.addLayer(ee.FeatureCollection([region]).style({"color": "00FF0022"}));

// Perform sampling; convert image pixels to features.
var samples = image.sample({
  region: region,

  // Default (false) is no geometries in the output.
  // When set to true, each feature has a Point geometry at the center of the
  // image pixel.
  geometries: true,

  // The scale is not specified, so the resolution of the image will be used,
  // and there is a feature for every pixel. If we give a scale parameter, the
  // image will be resampled and there will be more or fewer features.
  //
  // scale: 200,
});

// Visualize sample data using ee.FeatureCollection.style().
var styled = samples
  .map(function (feature) {
    return feature.set('style', {
      pointSize: feature.getNumber('elevation').unitScale(VIS_MIN, VIS_MAX)
          .multiply(15),
    });
  })
  .style({
    color: '000000FF',
    fillColor: '00000000',
    styleProperty: 'style',
    neighborhood: 6,  // increase to correctly draw large points
  });
Map.addLayer(styled);

// Each sample feature has a point geometry and a property named 'elevation'
// corresponding to the band named 'elevation' of the image. If there are
// multiple bands they will become multiple properties. This will print:
//
// geometry: Point (-110.01, 40.00)
// properties:
//   elevation: 1639
print(samples.first());

إعداد Python

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

import ee
import geemap.core as geemap

Colab (Python)

# Demonstrate extracting pixels from an image as features with
# ee.Image.sample(), and show how the features are aligned with the pixels.

# An image with one band of elevation data.
image = ee.Image('CGIAR/SRTM90_V4')
vis_min = 1620
vis_max = 1650
m = geemap.Map()
m.add_layer(image, {'min': vis_min, 'max': vis_max}, 'SRTM')

# Region to sample.
region = ee.Geometry.Polygon(
    [[
        [-110.006, 40.002],
        [-110.006, 39.999],
        [-109.995, 39.999],
        [-109.995, 40.002],
    ]],
    None,
    False,
)
# Show region on the map.
m.set_center(-110, 40, 16)

m.add_layer(ee.FeatureCollection([region]).style(color='00FF0022'))

# Perform sampling convert image pixels to features.
samples = image.sample(
    region=region,
    # Default (False) is no geometries in the output.
    # When set to True, each feature has a Point geometry at the center of the
    # image pixel.
    geometries=True,
    # The scale is not specified, so the resolution of the image will be used,
    # and there is a feature for every pixel. If we give a scale parameter, the
    # image will be resampled and there will be more or fewer features.
    #
    # scale=200,
)


def scale_point_size(feature):
  elevation = feature.getNumber('elevation')
  point_size = elevation.unitScale(vis_min, vis_max).multiply(15)
  feature.set('style', {'pointSize': point_size})
  return feature


# Visualize sample data using ee.FeatureCollection.style().
styled = samples.map(scale_point_size).style(
    color='000000FF',
    fillColor='00000000',
    styleProperty='style',
    neighborhood=6,  # increase to correctly draw large points
)
m.add_layer(styled)
display(m)

# Each sample feature has a point geometry and a property named 'elevation'
# corresponding to the band named 'elevation' of the image. If there are
# multiple bands they will become multiple properties. This will print:
#
# geometry: Point (-110.01, 40.00)
# properties:
#   elevation: 1639
display(samples.first())