تحويل الصور المركّبة إلى صور متجهة

لتحويل البيانات من نوع Image (مصفوفة نقطية) إلى نوع FeatureCollection (متجه)، استخدِم image.reduceToVectors(). هذه هي الآلية الأساسية لتحويل البيانات إلى أشكال هندسية في Earth Engine، ويمكن أن تكون مفيدة لإنشاء مناطق لإدخالها إلى أنواع أخرى من أدوات التقليل. تنشئ طريقة reduceToVectors() حواف المضلّعات (أو مراكز الكتلة أو المربّعات الحدودية اختياريًا) عند حدود المجموعات المتجانسة من وحدات البكسل المتصلة.

على سبيل المثال، نأخذ صورة للأضواء الليلية في اليابان من عام 2012. يمكنك استخدام الرقم الرقمي للمصابيح الليلية كعنصر تمثيلي لكثافة التطوير. حدِّد المناطق باستخدام حدود عشوائية على مصابيح الإضاءة الليلية، واجمع المناطق في صورة ذات نطاق واحد، وحوِّل المناطق إلى شكل مخطّط باستخدام reduceToVectors():

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

// Load a Japan boundary from the Large Scale International Boundary dataset.
var japan = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017')
  .filter(ee.Filter.eq('country_na', 'Japan'));

// Load a 2012 nightlights image, clipped to the Japan border.
var nl2012 = ee.Image('NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F182012')
  .select('stable_lights')
  .clipToCollection(japan);

// Define arbitrary thresholds on the 6-bit nightlights image.
var zones = nl2012.gt(30).add(nl2012.gt(55)).add(nl2012.gt(62));
zones = zones.updateMask(zones.neq(0));

// Convert the zones of the thresholded nightlights to vectors.
var vectors = zones.addBands(nl2012).reduceToVectors({
  geometry: japan,
  crs: nl2012.projection(),
  scale: 1000,
  geometryType: 'polygon',
  eightConnected: false,
  labelProperty: 'zone',
  reducer: ee.Reducer.mean()
});

// Display the thresholds.
Map.setCenter(139.6225, 35.712, 9);
Map.addLayer(zones, {min: 1, max: 3, palette: ['0000FF', '00FF00', 'FF0000']}, 'raster');

// Make a display image for the vectors, add it to the map.
var display = ee.Image(0).updateMask(0).paint(vectors, '000000', 3);
Map.addLayer(display, {palette: '000000'}, 'vectors');

إعداد لغة Python

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

import ee
import geemap.core as geemap

Colab (Python)

# Load a Japan boundary from the Large Scale International Boundary dataset.
japan = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017').filter(
    ee.Filter.eq('country_na', 'Japan')
)

# Load a 2012 nightlights image, clipped to the Japan border.
nl_2012 = (
    ee.Image('NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F182012')
    .select('stable_lights')
    .clipToCollection(japan)
)

# Define arbitrary thresholds on the 6-bit nightlights image.
zones = nl_2012.gt(30).add(nl_2012.gt(55)).add(nl_2012.gt(62))
zones = zones.updateMask(zones.neq(0))

# Convert the zones of the thresholded nightlights to vectors.
vectors = zones.addBands(nl_2012).reduceToVectors(
    geometry=japan,
    crs=nl_2012.projection(),
    scale=1000,
    geometryType='polygon',
    eightConnected=False,
    labelProperty='zone',
    reducer=ee.Reducer.mean(),
)

# Display the thresholds.
m = geemap.Map()
m.set_center(139.6225, 35.712, 9)
m.add_layer(
    zones,
    {'min': 1, 'max': 3, 'palette': ['0000FF', '00FF00', 'FF0000']},
    'raster',
)

# Make a display image for the vectors, add it to the map.
display_image = ee.Image(0).updateMask(0).paint(vectors, '000000', 3)
m.add_layer(display_image, {'palette': '000000'}, 'vectors')
m

يُرجى العِلم أنّ النطاق الأول في الإدخال يُستخدَم لتحديد المناطق المتجانسة ويتم تقليل النطاقات المتبقية وفقًا للعامل المُختزل المقدَّم، ويتم إضافة النتيجة بصفتها خاصية إلى المتجهات الناتجة. تحدِّد المَعلمة geometry النطاق الذي يجب إنشاء المتجهات عليه. بشكل عام، من الجيد تحديد منطقة صغيرة لإنشاء المتجهات عليها. من الممارسات الجيدة أيضًا تحديد scale وcrs لتجنُّب الغموض. نوع الإخراج هو "‘polygon’" حيث يتم تشكيل المضلّعات من مناطق متجانسة من العناصر المجاورة المرتبطة بأربعة جوانب (أي أنّ "eightConnected" خطأ). تحدّد المَعلمتَان الأخيرتان، labelProperty وreducer، أنّ مضلّعات المخرج يجب أن تتلقّى خاصيّة تتضمّن تصنيف المنطقة ومتوسّط نطاقات أضواء الليل، على التوالي.

من المفترض أن تبدو النتيجة المُحدَّدة على الخريطة مثل منطقة طوكيو الموضَّحة في الشكل 1. يشير فحص مضلّعات الإخراج إلى أنّ كل مضلّع يحتوي على خاصيّة تخزّن تصنيف المنطقة ({1, 2, 3}) ومتوسّط نطاق أضواء الليل، لأنّه تم تحديد مُخفِّض المتوسط.

ناتج reduceToVectors
الشكل 1. مناطق الإضاءة الليلية في منطقة طوكيو، اليابان يتم عرض حدود الخطوط المتّجه باللون الأسود.