Görüntü Görselleştirme

Görüntü verilerinin RGB görsel temsillerini oluşturan çeşitli ee.Image yöntemleri vardır. Örneğin: visualize(), getThumbURL(), getMap(), getMapId() (Colab Folium harita görüntülemede kullanılır) ve, Map.addLayer() (Code Editor harita görüntülemede kullanılır, Python için kullanılamaz). Bu yöntemler varsayılan olarak ilk üç bandı sırasıyla kırmızı, yeşil ve mavi olarak atar. Varsayılan uzatma, bantlardaki veri türüne (ör.kayan noktalı sayılar [0, 1] aralığında, 16 bit veriler ise olası tüm değerler aralığına uzatılır) bağlıdır. Bu uzatma uygun olabilir veya olmayabilir. İstediğiniz görselleştirme efektlerine ulaşmak için görselleştirme parametreleri sağlayabilirsiniz:

Resim görselleştirme parametreleri
Parametre Açıklama Tür
bantlar RGB ile eşlenecek üç bant adının virgülle ayrılmış listesi list
dk. 0 ile eşlenecek değerler Her bant için bir tane olmak üzere üç basamaklı bir sayı veya üç basamaklı sayı listesi
max 255 ile eşlenecek değerler Her bant için bir tane olmak üzere üç basamaklı bir sayı veya üç basamaklı sayı listesi
gain Her piksel değerinin çarpılacağı değerler Her bant için bir tane olmak üzere üç basamaklı sayı veya sayı listesi
yanlılık Her DN'ye eklenecek değerler Her bant için bir tane olmak üzere üç basamaklı bir sayı veya üç basamaklı sayı listesi
gamma Gama düzeltme katsayıları Her bant için bir tane olmak üzere üç basamaklı bir sayı veya üç basamaklı sayı listesi
palet CSS stilinde renk dizelerinin listesi (yalnızca tek bantlı görüntüler) Onaltılık dizelerin virgülle ayrılmış listesi
opaklık Katmanın opaklığı (0,0 tamamen şeffaf, 1,0 tamamen opaktır) sayı
biçim "jpg" veya "png" dize

RGB kompozitleri

Aşağıda, Landsat 8 görüntüsüne yanlış renk kompozisyonu stili vermek için parametrelerin kullanımı gösterilmektedir:

Kod Düzenleyici (JavaScript)

// Load an image.
var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318');

// Define the visualization parameters.
var vizParams = {
  bands: ['B5', 'B4', 'B3'],
  min: 0,
  max: 0.5,
  gamma: [0.95, 1.1, 1]
};

// Center the map and display the image.
Map.setCenter(-122.1899, 37.5010, 10); // San Francisco Bay
Map.addLayer(image, vizParams, 'false color composite');

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 an image.
image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318')

# Define the visualization parameters.
image_viz_params = {
    'bands': ['B5', 'B4', 'B3'],
    'min': 0,
    'max': 0.5,
    'gamma': [0.95, 1.1, 1],
}

# Define a map centered on San Francisco Bay.
map_l8 = geemap.Map(center=[37.5010, -122.1899], zoom=10)

# Add the image layer to the map and display it.
map_l8.add_layer(image, image_viz_params, 'false color composite')
display(map_l8)

Bu örnekte 'B5' bandı kırmızıya, 'B4' yeşile ve 'B3' maviye atanır.

false_color_sf
ABD, Kaliforniya'daki San Francisco Körfez Bölgesi'nin Landsat 8 yanlış renk kompozit görüntüsü.

Renk paletleri

Bir resmin tek bir bandını renkli olarak görüntülemek için palette parametresini, CSS tarzı renk dizelerinin listesiyle temsil edilen bir renk rampasıyla ayarlayın. (Daha fazla bilgi için bu referans sayfasına bakın.) Aşağıdaki örnekte, Normalleştirilmiş Fark Su Düzeyi (NDWI) resmi oluşturmak için mavi ('0000FF') ile turkuaz ('00FFFF') arasındaki renklerin nasıl kullanılacağı gösterilmektedir:

Kod Düzenleyici (JavaScript)

// Load an image.
var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318');

// Create an NDWI image, define visualization parameters and display.
var ndwi = image.normalizedDifference(['B3', 'B5']);
var ndwiViz = {min: 0.5, max: 1, palette: ['00FFFF', '0000FF']};
Map.addLayer(ndwi, ndwiViz, 'NDWI', false);

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 an image.
image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318')

# Create an NDWI image, define visualization parameters and display.
ndwi = image.normalizedDifference(['B3', 'B5'])
ndwi_viz = {'min': 0.5, 'max': 1, 'palette': ['00FFFF', '0000FF']}

# Define a map centered on San Francisco Bay.
map_ndwi = geemap.Map(center=[37.5010, -122.1899], zoom=10)

# Add the image layer to the map and display it.
map_ndwi.add_layer(ndwi, ndwi_viz, 'NDWI')
display(map_ndwi)

Bu örnekte, min ve max parametrelerinin, paletin uygulanması gereken piksel değer aralığını gösterdiğini unutmayın. Ara değerler doğrusal olarak gerilir.

Ayrıca, Kod Düzenleyici örneğinde show parametresinin false olarak ayarlandığını unutmayın. Bu, haritaya eklendiğinde katmanın görünürlüğünün kapalı olmasına neden olur. Kod Düzenleyici haritasının sağ üst köşesindeki Katman Yöneticisi kullanılarak her zaman tekrar etkinleştirilebilir.

ndwi_sf
Landsat 8 NDWI, San Francisco bay area, ABD. Mavi, düşük değerleri, mavi ise yüksek değerleri temsil eder.

Varsayılan renk paletlerini kaydetme

Renk paletlerini bir sınıflandırma resmine kaydederek bunları uygulamayı hatırlamanıza gerek kalmamasını sağlamak için her sınıflandırma bandı için özel olarak adlandırılmış iki dize resim özelliği ayarlayabilirsiniz.

Örneğin, resminizde "su", "orman" ve "diğer" sınıflarına karşılık gelen 0, 1 ve 2 değerlerinin yer aldığı 'landcover' adlı bir bant varsa varsayılan görselleştirmenin her sınıf için belirli bir rengi göstermesi amacıyla aşağıdaki özellikleri ayarlayabilirsiniz (analizde kullanılan değerler etkilenmez):

  • landcover_class_values="0,1,2"
  • landcover_class_palette="0000FF,00FF00,AABBCD"

Öğe meta verilerini nasıl ayarlayacağınızı öğrenmek için öğeleri yönetme sayfasına bakın.

Maskeleme

Maske resmindeki piksellerin sıfır olmayan konumlarına göre tek tek piksellerin opaklığını ayarlamak için image.updateMask()'ü kullanabilirsiniz. Maskede sıfıra eşit olan pikseller hesaplamalardan hariç tutulur ve opaklık, görüntüleme için 0 olarak ayarlanır. Aşağıdaki örnekte, daha önce oluşturulan NDWI katmanındaki maskeyi güncellemek için bir NDWI eşiği (eşikler hakkında bilgi için ilişkisel işlemler bölümüne bakın) kullanılmaktadır:

Kod Düzenleyici (JavaScript)

// Mask the non-watery parts of the image, where NDWI < 0.4.
var ndwiMasked = ndwi.updateMask(ndwi.gte(0.4));
Map.addLayer(ndwiMasked, ndwiViz, 'NDWI masked');

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)

# Mask the non-watery parts of the image, where NDWI < 0.4.
ndwi_masked = ndwi.updateMask(ndwi.gte(0.4))

# Define a map centered on San Francisco Bay.
map_ndwi_masked = geemap.Map(center=[37.5010, -122.1899], zoom=10)

# Add the image layer to the map and display it.
map_ndwi_masked.add_layer(ndwi_masked, ndwi_viz, 'NDWI masked')
display(map_ndwi_masked)

Görselleştirme resimleri

Görüntülemek veya dışa aktarmak için bir resmi 8 bit RGB resmine dönüştürmek üzere image.visualize() yöntemini kullanın. Örneğin, yanlış renk kompozisyonunu ve NDWI'yi 3 bantlı görüntülere dönüştürmek için:

Kod Düzenleyici (JavaScript)

// Create visualization layers.
var imageRGB = image.visualize({bands: ['B5', 'B4', 'B3'], max: 0.5});
var ndwiRGB = ndwiMasked.visualize({
  min: 0.5,
  max: 1,
  palette: ['00FFFF', '0000FF']
});

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)

image_rgb = image.visualize(bands=['B5', 'B4', 'B3'], max=0.5)
ndwi_rgb = ndwi_masked.visualize(min=0.5, max=1, palette=['00FFFF', '0000FF'])

Mozaik oluşturma

Çeşitli kartografik efektler elde etmek için maskeleme ve imageCollection.mosaic() (mozaik oluşturma hakkında bilgi için Mozaik oluşturma bölümüne bakın) kullanabilirsiniz. mosaic() yöntemi, çıkış resmindeki katmanları giriş koleksiyonundaki sıralarına göre oluşturur. Aşağıdaki örnekte, maskelenmiş NDWI ve yanlış renk kompozisyonunu birleştirip yeni bir görselleştirme elde etmek için mosaic() kullanılmaktadır:

Kod Düzenleyici (JavaScript)

// Mosaic the visualization layers and display (or export).
var mosaic = ee.ImageCollection([imageRGB, ndwiRGB]).mosaic();
Map.addLayer(mosaic, {}, 'mosaic');

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)

# Mosaic the visualization layers and display (or export).
mosaic = ee.ImageCollection([image_rgb, ndwi_rgb]).mosaic()

# Define a map centered on San Francisco Bay.
map_mosaic = geemap.Map(center=[37.5010, -122.1899], zoom=10)

# Add the image layer to the map and display it.
map_mosaic.add_layer(mosaic, None, 'mosaic')
display(map_mosaic)

Bu örnekte, ImageCollection yapıcısına iki görselleştirme resminin listesinin sağlandığına dikkat edin. Listenin sırası, resimlerin haritada oluşturulma sırasını belirler.

mosaic_sf
Landsat 8 yanlış renk kompozit ve NDWI mozaiğinin görünümü. San Francisco Körfez Bölgesi, ABD.

Kırpma

image.clip() yöntemi, kartografik efektler elde etmek için kullanışlıdır. Aşağıdaki örnekte, daha önce oluşturulan mozaik San Francisco şehrinin etrafındaki rastgele bir tampon bölgeye kliplenmiştir:

Kod Düzenleyici (JavaScript)

// Create a circle by drawing a 20000 meter buffer around a point.
var roi = ee.Geometry.Point([-122.4481, 37.7599]).buffer(20000);

// Display a clipped version of the mosaic.
Map.addLayer(mosaic.clip(roi), null, 'mosaic clipped');

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)

# Create a circle by drawing a 20000 meter buffer around a point.
roi = ee.Geometry.Point([-122.4481, 37.7599]).buffer(20000)
mosaic_clipped = mosaic.clip(roi)

# Define a map centered on San Francisco.
map_mosaic_clipped = geemap.Map(center=[37.7599, -122.4481], zoom=10)

# Add the image layer to the map and display it.
map_mosaic_clipped.add_layer(mosaic_clipped, None, 'mosaic clipped')
display(map_mosaic_clipped)

Önceki örnekte, koordinatların Geometry sınıfının kurucusuna sağlandığını ve arabellek uzunluğunun 20.000 metre olarak belirtildiğini unutmayın. Geometriler sayfasında geometriler hakkında daha fazla bilgi edinin.

clipped_sf
Yukarıdaki mozaik, ABD'nin Kaliforniya eyaletinde San Francisco'nun etrafındaki bir tampona kırpılmıştır.

Kategorik haritalar oluşturma

Paletler, ayrık değerli haritaları (ör. arazi örtüsü haritası) oluşturmak için de yararlıdır. Birden fazla sınıf varsa her sınıf için farklı bir renk sağlamak üzere paleti kullanın. (image.remap() yöntemi, rastgele etiketleri art arda tam sayılara dönüştürmek için bu bağlamda yararlı olabilir). Aşağıdaki örnekte, kapak kategorilerini oluşturmak için bir palet kullanılmaktadır:

Kod Düzenleyici (JavaScript)

// Load 2012 MODIS land cover and select the IGBP classification.
var cover = ee.Image('MODIS/051/MCD12Q1/2012_01_01')
  .select('Land_Cover_Type_1');

// Define a palette for the 18 distinct land cover classes.
var igbpPalette = [
  'aec3d4', // water
  '152106', '225129', '369b47', '30eb5b', '387242', // forest
  '6a2325', 'c3aa69', 'b76031', 'd9903d', '91af40',  // shrub, grass
  '111149', // wetlands
  'cdb33b', // croplands
  'cc0013', // urban
  '33280d', // crop mosaic
  'd7cdcc', // snow and ice
  'f7e084', // barren
  '6f6f6f'  // tundra
];

// Specify the min and max labels and the color palette matching the labels.
Map.setCenter(-99.229, 40.413, 5);
Map.addLayer(cover,
             {min: 0, max: 17, palette: igbpPalette},
             'IGBP classification');

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 2012 MODIS land cover and select the IGBP classification.
cover = ee.Image('MODIS/051/MCD12Q1/2012_01_01').select('Land_Cover_Type_1')

# Define a palette for the 18 distinct land cover classes.
igbp_palette = [
    'aec3d4',  # water
    '152106',
    '225129',
    '369b47',
    '30eb5b',
    '387242',  # forest
    '6a2325',
    'c3aa69',
    'b76031',
    'd9903d',
    '91af40',  # shrub, grass
    '111149',  # wetlands
    'cdb33b',  # croplands
    'cc0013',  # urban
    '33280d',  # crop mosaic
    'd7cdcc',  # snow and ice
    'f7e084',  # barren
    '6f6f6f',  # tundra
]

# Define a map centered on the United States.
map_palette = geemap.Map(center=[40.413, -99.229], zoom=5)

# Add the image layer to the map and display it. Specify the min and max labels
# and the color palette matching the labels.
map_palette.add_layer(
    cover, {'min': 0, 'max': 17, 'palette': igbp_palette}, 'IGBP classes'
)
display(map_palette)
landcover_palettized
IGBP sınıflandırmasını kullanan MODIS 2012 arazi örtüsü.

Stilize Katman Tanımları

Görüntüleri görüntülemek için stillendirilmiş katman tanımlayıcısı (SLD) kullanabilirsiniz. image.sldStyle() için resmin, özellikle RasterSymbolizer öğesinin sembolleştirilmesi ve renklendirilmesinin XML açıklamasını sağlayın. RasterSymbolizer öğesi hakkında daha fazla bilgiyi burada bulabilirsiniz. Örneğin, Kategorik haritaları oluşturma bölümünde açıklanan arazi örtüsü haritasını bir SLD ile oluşturmak için:

Kod Düzenleyici (JavaScript)

var cover = ee.Image('MODIS/051/MCD12Q1/2012_01_01').select('Land_Cover_Type_1');

// Define an SLD style of discrete intervals to apply to the image.
var sld_intervals =
'<RasterSymbolizer>' +
  '<ColorMap type="intervals" extended="false">' +
    '<ColorMapEntry color="#aec3d4" quantity="0" label="Water"/>' +
    '<ColorMapEntry color="#152106" quantity="1" label="Evergreen Needleleaf Forest"/>' +
    '<ColorMapEntry color="#225129" quantity="2" label="Evergreen Broadleaf Forest"/>' +
    '<ColorMapEntry color="#369b47" quantity="3" label="Deciduous Needleleaf Forest"/>' +
    '<ColorMapEntry color="#30eb5b" quantity="4" label="Deciduous Broadleaf Forest"/>' +
    '<ColorMapEntry color="#387242" quantity="5" label="Mixed Deciduous Forest"/>' +
    '<ColorMapEntry color="#6a2325" quantity="6" label="Closed Shrubland"/>' +
    '<ColorMapEntry color="#c3aa69" quantity="7" label="Open Shrubland"/>' +
    '<ColorMapEntry color="#b76031" quantity="8" label="Woody Savanna"/>' +
    '<ColorMapEntry color="#d9903d" quantity="9" label="Savanna"/>' +
    '<ColorMapEntry color="#91af40" quantity="10" label="Grassland"/>' +
    '<ColorMapEntry color="#111149" quantity="11" label="Permanent Wetland"/>' +
    '<ColorMapEntry color="#cdb33b" quantity="12" label="Cropland"/>' +
    '<ColorMapEntry color="#cc0013" quantity="13" label="Urban"/>' +
    '<ColorMapEntry color="#33280d" quantity="14" label="Crop, Natural Veg. Mosaic"/>' +
    '<ColorMapEntry color="#d7cdcc" quantity="15" label="Permanent Snow, Ice"/>' +
    '<ColorMapEntry color="#f7e084" quantity="16" label="Barren, Desert"/>' +
    '<ColorMapEntry color="#6f6f6f" quantity="17" label="Tundra"/>' +
  '</ColorMap>' +
'</RasterSymbolizer>';
Map.addLayer(cover.sldStyle(sld_intervals), {}, 'IGBP classification styled');

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)

cover = ee.Image('MODIS/051/MCD12Q1/2012_01_01').select('Land_Cover_Type_1')

# Define an SLD style of discrete intervals to apply to the image.
sld_intervals = """
<RasterSymbolizer>
  <ColorMap  type="intervals" extended="false" >
    <ColorMapEntry color="#aec3d4" quantity="0" label="Water"/>
    <ColorMapEntry color="#152106" quantity="1" label="Evergreen Needleleaf Forest"/>
    <ColorMapEntry color="#225129" quantity="2" label="Evergreen Broadleaf Forest"/>
    <ColorMapEntry color="#369b47" quantity="3" label="Deciduous Needleleaf Forest"/>
    <ColorMapEntry color="#30eb5b" quantity="4" label="Deciduous Broadleaf Forest"/>
    <ColorMapEntry color="#387242" quantity="5" label="Mixed Deciduous Forest"/>
    <ColorMapEntry color="#6a2325" quantity="6" label="Closed Shrubland"/>
    <ColorMapEntry color="#c3aa69" quantity="7" label="Open Shrubland"/>
    <ColorMapEntry color="#b76031" quantity="8" label="Woody Savanna"/>
    <ColorMapEntry color="#d9903d" quantity="9" label="Savanna"/>
    <ColorMapEntry color="#91af40" quantity="10" label="Grassland"/>
    <ColorMapEntry color="#111149" quantity="11" label="Permanent Wetland"/>
    <ColorMapEntry color="#cdb33b" quantity="12" label="Cropland"/>
    <ColorMapEntry color="#cc0013" quantity="13" label="Urban"/>
    <ColorMapEntry color="#33280d" quantity="14" label="Crop, Natural Veg. Mosaic"/>
    <ColorMapEntry color="#d7cdcc" quantity="15" label="Permanent Snow, Ice"/>
    <ColorMapEntry color="#f7e084" quantity="16" label="Barren, Desert"/>
    <ColorMapEntry color="#6f6f6f" quantity="17" label="Tundra"/>
  </ColorMap>
</RasterSymbolizer>"""

# Apply the SLD style to the image.
cover_sld = cover.sldStyle(sld_intervals)

# Define a map centered on the United States.
map_sld_categorical = geemap.Map(center=[40.413, -99.229], zoom=5)

# Add the image layer to the map and display it.
map_sld_categorical.add_layer(cover_sld, None, 'IGBP classes styled')
display(map_sld_categorical)

Renk rampası içeren bir görselleştirme resmi oluşturmak için ColorMap türünü "rampa" olarak ayarlayın. Aşağıdaki örnekte, DEM oluşturma için "aralık" ve "rampa" türleri karşılaştırılmaktadır:

Kod Düzenleyici (JavaScript)

// Load SRTM Digital Elevation Model data.
var image = ee.Image('CGIAR/SRTM90_V4');

// Define an SLD style of discrete intervals to apply to the image. Use the
// opacity keyword to set pixels less than 0 as completely transparent. Pixels
// with values greater than or equal to the final entry quantity are set to
// fully transparent by default.
var sld_intervals =
  '<RasterSymbolizer>' +
    '<ColorMap type="intervals" extended="false" >' +
      '<ColorMapEntry color="#0000ff" quantity="0" label="0 ﹤ x" opacity="0" />' +
      '<ColorMapEntry color="#00ff00" quantity="100" label="0 ≤ x ﹤ 100" />' +
      '<ColorMapEntry color="#007f30" quantity="200" label="100 ≤ x ﹤ 200" />' +
      '<ColorMapEntry color="#30b855" quantity="300" label="200 ≤ x ﹤ 300" />' +
      '<ColorMapEntry color="#ff0000" quantity="400" label="300 ≤ x ﹤ 400" />' +
      '<ColorMapEntry color="#ffff00" quantity="900" label="400 ≤ x ﹤ 900" />' +
    '</ColorMap>' +
  '</RasterSymbolizer>';

// Define an sld style color ramp to apply to the image.
var sld_ramp =
  '<RasterSymbolizer>' +
    '<ColorMap type="ramp" extended="false" >' +
      '<ColorMapEntry color="#0000ff" quantity="0" label="0"/>' +
      '<ColorMapEntry color="#00ff00" quantity="100" label="100" />' +
      '<ColorMapEntry color="#007f30" quantity="200" label="200" />' +
      '<ColorMapEntry color="#30b855" quantity="300" label="300" />' +
      '<ColorMapEntry color="#ff0000" quantity="400" label="400" />' +
      '<ColorMapEntry color="#ffff00" quantity="500" label="500" />' +
    '</ColorMap>' +
  '</RasterSymbolizer>';

// Add the image to the map using both the color ramp and interval schemes.
Map.setCenter(-76.8054, 42.0289, 8);
Map.addLayer(image.sldStyle(sld_intervals), {}, 'SLD intervals');
Map.addLayer(image.sldStyle(sld_ramp), {}, 'SLD ramp');

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 SRTM Digital Elevation Model data.
image = ee.Image('CGIAR/SRTM90_V4')

# Define an SLD style of discrete intervals to apply to the image.
sld_intervals = """
    <RasterSymbolizer>
      <ColorMap type="intervals" extended="false" >
        <ColorMapEntry color="#0000ff" quantity="0" label="0"/>
        <ColorMapEntry color="#00ff00" quantity="100" label="1-100" />
        <ColorMapEntry color="#007f30" quantity="200" label="110-200" />
        <ColorMapEntry color="#30b855" quantity="300" label="210-300" />
        <ColorMapEntry color="#ff0000" quantity="400" label="310-400" />
        <ColorMapEntry color="#ffff00" quantity="1000" label="410-1000" />
      </ColorMap>
    </RasterSymbolizer>"""

# Define an sld style color ramp to apply to the image.
sld_ramp = """
    <RasterSymbolizer>
      <ColorMap type="ramp" extended="false" >
        <ColorMapEntry color="#0000ff" quantity="0" label="0"/>
        <ColorMapEntry color="#00ff00" quantity="100" label="100" />
        <ColorMapEntry color="#007f30" quantity="200" label="200" />
        <ColorMapEntry color="#30b855" quantity="300" label="300" />
        <ColorMapEntry color="#ff0000" quantity="400" label="400" />
        <ColorMapEntry color="#ffff00" quantity="500" label="500" />
      </ColorMap>
    </RasterSymbolizer>"""

# Define a map centered on the United States.
map_sld_interval = geemap.Map(center=[40.413, -99.229], zoom=5)

# Add the image layers to the map and display it.
map_sld_interval.add_layer(
    image.sldStyle(sld_intervals), None, 'SLD intervals'
)
map_sld_interval.add_layer(image.sldStyle(sld_ramp), None, 'SLD ramp')
display(map_sld_interval)

SLD'ler, sürekli verilerin görselleştirmelerini iyileştirmek için piksel değerlerini uzatmak amacıyla da yararlıdır. Örneğin, aşağıdaki kodda rastgele bir doğrusal uzama işleminin sonuçları, minimum-maksimum "normalleştirme" ve "Histogram" eşitleme ile karşılaştırılmaktadır:

Kod Düzenleyici (JavaScript)

// Load a Landsat 8 raw image.
var image = ee.Image('LANDSAT/LC08/C02/T1/LC08_044034_20140318');

// Define a RasterSymbolizer element with '_enhance_' for a placeholder.
var template_sld =
  '<RasterSymbolizer>' +
    '<ContrastEnhancement><_enhance_/></ContrastEnhancement>' +
    '<ChannelSelection>' +
      '<RedChannel>' +
        '<SourceChannelName>B5</SourceChannelName>' +
      '</RedChannel>' +
      '<GreenChannel>' +
        '<SourceChannelName>B4</SourceChannelName>' +
      '</GreenChannel>' +
      '<BlueChannel>' +
        '<SourceChannelName>B3</SourceChannelName>' +
      '</BlueChannel>' +
    '</ChannelSelection>' +
  '</RasterSymbolizer>';

// Get SLDs with different enhancements.
var equalize_sld = template_sld.replace('_enhance_', 'Histogram');
var normalize_sld = template_sld.replace('_enhance_', 'Normalize');

// Display the results.
Map.centerObject(image, 10);
Map.addLayer(image, {bands: ['B5', 'B4', 'B3'], min: 0, max: 15000}, 'Linear');
Map.addLayer(image.sldStyle(equalize_sld), {}, 'Equalized');
Map.addLayer(image.sldStyle(normalize_sld), {}, 'Normalized');

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 Landsat 8 raw image.
image = ee.Image('LANDSAT/LC08/C02/T1/LC08_044034_20140318')

# Define a RasterSymbolizer element with '_enhance_' for a placeholder.
template_sld = """
<RasterSymbolizer>
  <ContrastEnhancement><_enhance_/></ContrastEnhancement>
  <ChannelSelection>
    <RedChannel>
      <SourceChannelName>B5</SourceChannelName>
    </RedChannel>
    <GreenChannel>
      <SourceChannelName>B4</SourceChannelName>
    </GreenChannel>
    <BlueChannel>
      <SourceChannelName>B3</SourceChannelName>
    </BlueChannel>
  </ChannelSelection>
</RasterSymbolizer>"""

# Get SLDs with different enhancements.
equalize_sld = template_sld.replace('_enhance_', 'Histogram')
normalize_sld = template_sld.replace('_enhance_', 'Normalize')

# Define a map centered on San Francisco Bay.
map_sld_continuous = geemap.Map(center=[37.5010, -122.1899], zoom=10)

# Add the image layers to the map and display it.
map_sld_continuous.add_layer(
    image, {'bands': ['B5', 'B4', 'B3'], 'min': 0, 'max': 15000}, 'Linear'
)
map_sld_continuous.add_layer(image.sldStyle(equalize_sld), None, 'Equalized')
map_sld_continuous.add_layer(
    image.sldStyle(normalize_sld), None, 'Normalized'
)
display(map_sld_continuous)

Earth Engine'da SLD'lerin kullanımıyla ilgili dikkat edilmesi gereken noktalar:

  • OGC SLD 1.0 ve OGC SE 1.1 desteklenir.
  • İletilen XML dokümanı eksik veya yalnızca RasterSymbolizer öğesi ve alt öğeleri olabilir.
  • Bantlar, Earth Engine adlarına veya dizinlerine göre ("1", "2", ...) seçilebilir.
  • Histogramma ve normalleştirilmiş kontrast uzatma mekanizmaları, kayan nokta görüntüleri için desteklenmez.
  • Opaklığın dikkate alınması için değerin 0,0 (şeffaf) olması gerekir. Sıfır olmayan opaklık değerleri tamamen opak olarak kabul edilir.
  • OverlapBehavior tanımı şu anda yoksayılıyor.
  • ShadedRelief mekanizması şu anda desteklenmemektedir.
  • ImageOutline mekanizması şu anda desteklenmemektedir.
  • Geometri öğesi yoksayılır.
  • Histogram eşitleme veya normalleştirme istenirse çıkış resminde histogram_bandname meta verisi bulunur.

Küçük resimler

ee.Image nesnesi için PNG veya JPEG küçük resim oluşturmak üzere ee.Image.getThumbURL() yöntemini kullanın. getThumbURL() çağrısıyla biten bir ifadenin sonucunu yazdırmak, bir URL'nin yazdırılmasına neden olur. URL'yi ziyaret ettiğinizde Earth Engine sunucuları, istenen küçük resmi anında oluşturmaya başlar. İşlem tamamlandığında resim bir tarayıcıda görüntülenir. Resmin sağ tıklama içerik menüsünden uygun seçenekler seçilerek indirilebilir.

thumbnail_in_browser
Tarayıcıda PNG küçük resmi olarak görüntülenen SRTM dijital yükseklik modeli.

getThumbURL() yöntemi, yukarıdaki görselleştirme parametreleri tablosunda açıklanan parametreleri içerir. Ayrıca, küçük resmin uzamsal kapsamını, boyutunu ve görüntü projeksiyonunu kontrol eden isteğe bağlı dimensions, region ve crs bağımsız değişkenlerini alır.

Biçim ile ilgili not içeren ee.Image.getThumbURL() için ek parametreler
Parametre Açıklama Tür
dimensions Küçük resim boyutları (piksel cinsinden). Tek bir tam sayı sağlanırsa bu sayı, resmin daha büyük en boy oranının boyutunu tanımlar ve daha küçük boyutu orantılı olarak ölçekler. Varsayılan olarak, daha büyük resim en boy oranı için 512 pikseldir. Şu biçimde tek bir tam sayı veya dize: "GENIŞLIKxYUKSEKLIK"
region Oluşturulacak resmin coğrafi bölgesi. Varsayılan olarak resmin tamamı veya sağlanan bir geometrinin sınırları. GeoJSON veya lineer bir halkayı tanımlayan en az üç nokta koordinatının 2 boyutlu listesi
crs Hedef projeksiyon (ör. "EPSG:3857"). Varsayılan olarak WGS84 ("EPSG:4326") kullanılır. Dize
biçim Küçük resim biçimini PNG veya JPEG olarak tanımlar. Varsayılan PNG biçimi, alfa kanalının resmin mask() tarafından tanımlanan geçerli ve geçersiz pikselleri temsil ettiği RGBA olarak uygulanır. Geçersiz pikseller şeffaftır. İsteğe bağlı JPEG biçimi, RGB olarak uygulanır. Bu biçimde geçersiz resim pikselleri RGB kanallarında sıfırla doldurulur. Dize; "png" veya "jpg"

palette bağımsız değişkeni sağlanmadığı sürece tek bantlı resimler varsayılan olarak gri tonlamaya ayarlanır. bands bağımsız değişkeni sağlanmadığı sürece, çok bantlı bir resim varsayılan olarak ilk üç bandın RGB görselleştirmesini kullanır. Yalnızca iki bant sağlanırsa ilk bant kırmızı, ikinci bant mavi ile eşlenir ve yeşil kanal sıfırla doldurulur.

Aşağıda, getThumbURL() parametre bağımsız değişkenlerinin çeşitli kombinasyonlarını gösteren bir dizi örnek verilmiştir. Küçük resimleri görüntülemek için bu komut dosyasını çalıştırdığınızda yazdırılan URL'leri tıklayın.

Kod Düzenleyici (JavaScript)

// Fetch a digital elevation model.
var image = ee.Image('CGIAR/SRTM90_V4');

// Request a default thumbnail of the DEM with defined linear stretch.
// Set masked pixels (ocean) to 1000 so they map as gray.
var thumbnail1 = image.unmask(1000).getThumbURL({
  'min': 0,
  'max': 3000,
  'dimensions': 500,
});
print('Default extent:', thumbnail1);

// Specify region by rectangle, define palette, set larger aspect dimension size.
var thumbnail2 = image.getThumbURL({
  'min': 0,
  'max': 3000,
  'palette': ['00A600','63C600','E6E600','E9BD3A','ECB176','EFC2B3','F2F2F2'],
  'dimensions': 500,
  'region': ee.Geometry.Rectangle([-84.6, -55.9, -32.9, 15.7]),
});
print('Rectangle region and palette:', thumbnail2);

// Specify region by a linear ring and set display CRS as Web Mercator.
var thumbnail3 = image.getThumbURL({
  'min': 0,
  'max': 3000,
  'palette': ['00A600','63C600','E6E600','E9BD3A','ECB176','EFC2B3','F2F2F2'],
  'region': ee.Geometry.LinearRing([[-84.6, 15.7], [-84.6, -55.9], [-32.9, -55.9]]),
  'dimensions': 500,
  'crs': 'EPSG:3857'
});
print('Linear ring region and specified crs', thumbnail3);

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)

# Fetch a digital elevation model.
image = ee.Image('CGIAR/SRTM90_V4')

# Request a default thumbnail of the DEM with defined linear stretch.
# Set masked pixels (ocean) to 1000 so they map as gray.
thumbnail_1 = image.unmask(1000).getThumbURL({
    'min': 0,
    'max': 3000,
    'dimensions': 500,
})
print('Default extent:', thumbnail_1)

# Specify region by rectangle, define palette, set larger aspect dimension size.
thumbnail_2 = image.getThumbURL({
    'min': 0,
    'max': 3000,
    'palette': [
        '00A600',
        '63C600',
        'E6E600',
        'E9BD3A',
        'ECB176',
        'EFC2B3',
        'F2F2F2',
    ],
    'dimensions': 500,
    'region': ee.Geometry.Rectangle([-84.6, -55.9, -32.9, 15.7]),
})
print('Rectangle region and palette:', thumbnail_2)

# Specify region by a linear ring and set display CRS as Web Mercator.
thumbnail_3 = image.getThumbURL({
    'min': 0,
    'max': 3000,
    'palette': [
        '00A600',
        '63C600',
        'E6E600',
        'E9BD3A',
        'ECB176',
        'EFC2B3',
        'F2F2F2',
    ],
    'region': ee.Geometry.LinearRing(
        [[-84.6, 15.7], [-84.6, -55.9], [-32.9, -55.9]]
    ),
    'dimensions': 500,
    'crs': 'EPSG:3857',
})
print('Linear ring region and specified crs:', thumbnail_3)
adresini ziyaret edin.