Raster'den Vektöre Dönüşüm

Image (raster) veri türünden FeatureCollection (vektor) veri türüne dönüştürmek için image.reduceToVectors()'yi kullanın. Bu, Earth Engine'da vektörleştirme için birincil mekanizmadır ve diğer türde azaltıcılara giriş olarak kullanılacak bölgeler oluşturmak için yararlı olabilir. reduceToVectors() yöntemi, bağlı piksellerden oluşan homojen grupların sınırında poligon kenarları (isteğe bağlı olarak merkez noktaları veya sınır kutuları) oluşturur.

Örneğin, 2012'de çekilmiş bir Japonya gece ışıkları resmini ele alalım. Gece ışıklarının dijital sayısının, geliştirme yoğunluğu için proxy olarak kullanılmasına izin verin. Gece ışıklarında keyfi eşikler kullanarak bölgeleri tanımlayın, bölgeleri tek bantlı bir resimde birleştirin, reduceToVectors() kullanarak bölgeleri vektörleştirin:

Kod Düzenleyici (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 kurulumu

Python API'si ve etkileşimli geliştirme için geemap kullanımı hakkında bilgi edinmek üzere Python Ortamı sayfasına bakın.

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

Girişteki ilk bandın homojen bölgeleri tanımlamak için kullanıldığını ve kalan bantların, sağlanan azaltıcıya göre azaltıldığını ve çıkışının elde edilen vektörlere bir özellik olarak eklendiğini unutmayın. geometry parametresi, vektörlerin oluşturulacağı alanı belirtir. Genel olarak, vektör oluşturmak için minimum bir bölge belirtmek iyi bir uygulamadır. Belirsizliği önlemek için scale ve crs değerlerini belirtmek de iyi bir uygulamadır. Çıkış türü, poligonların dört bağlantılı komşuların homojen bölgelerinden oluştuğu ‘polygon’'tür (yani eightConnected yanlıştır). Son iki parametre(labelProperty ve reducer), çıkış poligonlarının sırasıyla bölge etiketini ve gece ışıkları bandının ortalamasını içeren bir özellik alması gerektiğini belirtir.

Haritadaki sonuç, Şekil 1'de gösterilen Tokyo bölgesine benzer şekilde görünmelidir. Çıkış poligonlarının incelenmesi, her poligonun ortalama azaltıcı belirtildiği için bölgenin ({1, 2, 3}) etiketini ve gece ışıkları bandının ortalamasını depolayan bir özelliğe sahip olduğunu gösterir.

reduceToVectors çıkışı
Şekil 1. Japonya'nın Tokyo bölgesindeki gece ışıkları bölgeleri. Vektör sınırları siyah renkte gösterilir.