इमेज विज़ुअलाइज़ेशन

ee.Image के कई तरीके हैं, जो इमेज डेटा के आरजीबी विज़ुअल को दिखाते हैं. उदाहरण के लिए: visualize(), getThumbURL(), getMap(), getMapId() (Colab Folium मैप डिसप्ले में इस्तेमाल किया जाता है) और, Map.addLayer() (Code Editor मैप डिसप्ले में इस्तेमाल किया जाता है, यह Python के लिए उपलब्ध नहीं है). डिफ़ॉल्ट रूप से, ये तरीके पहले तीन बैंड को क्रमशः लाल, हरे, और नीले रंग पर असाइन करते हैं. डिफ़ॉल्ट स्ट्रेच, बैंड में मौजूद डेटा के टाइप पर आधारित होता है.उदाहरण के लिए, फ़्लोट को [0, 1] में स्ट्रेच किया जाता है, 16-बिट डेटा को संभावित वैल्यू की पूरी रेंज में स्ट्रेच किया जाता है. यह स्ट्रेच सही हो सकता है या नहीं. अपनी पसंद के विज़ुअलाइज़ेशन इफ़ेक्ट पाने के लिए, विज़ुअलाइज़ेशन पैरामीटर दिए जा सकते हैं:

इमेज विज़ुअलाइज़ेशन पैरामीटर
पैरामीटर ब्यौरा टाइप
बैंड आरजीबी में मैप किए जाने वाले तीन बैंड के नामों की सूची, जिसमें कॉमा लगा हो सूची
मिनट 0 पर मैप करने के लिए वैल्यू तीन नंबरों की सूची या नंबर, हर बैंड के लिए एक
max 255 पर मैप करने के लिए वैल्यू तीन नंबरों की सूची या नंबर, हर बैंड के लिए एक
gain वह वैल्यू जिससे हर पिक्सल वैल्यू को गुणा करना है तीन नंबरों की सूची या नंबर, हर बैंड के लिए एक
बायस हर डीएन में जोड़ी जाने वाली वैल्यू तीन नंबरों की सूची या नंबर, हर बैंड के लिए एक
gamma गामा सुधार फ़ैक्टर तीन नंबरों की सूची या नंबर, हर बैंड के लिए एक
पैलेट सीएसएस-स्टाइल कलर स्ट्रिंग की सूची (सिर्फ़ सिंगल-बैंड इमेज के लिए) हेक्स स्ट्रिंग की कॉमा से अलग की गई सूची
ओपैसिटी लेयर की ओपैसिटी (0.0 पूरी तरह पारदर्शी और 1.0 पूरी तरह अपारदर्शी) संख्या
format "jpg" या "png" स्ट्रिंग

आरजीबी कंपोजिट

यहां Landsat 8 इमेज को फ़ॉल्स-कलर कंपोजिट के तौर पर स्टाइल करने के लिए, पैरामीटर के इस्तेमाल के बारे में बताया गया है:

कोड एडिटर (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 सेटअप

Python API के बारे में जानकारी पाने और इंटरैक्टिव डेवलपमेंट के लिए geemap का इस्तेमाल करने के लिए, Python एनवायरमेंट पेज देखें.

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)

इस उदाहरण में, बैंड 'B5' को लाल, 'B4' को हरे, और 'B3' को नीले रंग के लिए असाइन किया गया है.

false_color_sf
अमेरिका के कैलिफ़ोर्निया में सैन फ़्रांसिस्को बे एरिया का Landsat 8 फ़ॉल्स कलर कंपोजिट.

रंग पैलेट

किसी इमेज के एक बैंड को रंग में दिखाने के लिए, palette पैरामीटर को सेट करें. साथ ही, सीएसएस स्टाइल की कलर स्ट्रिंग की सूची से दिखाए गए कलर रेंप का इस्तेमाल करें. ज़्यादा जानकारी के लिए, यह रेफ़रंस देखें. यहां दिए गए उदाहरण में, नॉर्मलाइज़्ड डिफ़रेंस वॉटर इंडेक्स (NDWI) इमेज को रेंडर करने के लिए, साइयान ('00FFFF') से लेकर नीले ('0000FF') रंग तक का इस्तेमाल करने का तरीका बताया गया है:

कोड एडिटर (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 सेटअप

Python API के बारे में जानकारी पाने और इंटरैक्टिव डेवलपमेंट के लिए geemap का इस्तेमाल करने के लिए, Python एनवायरमेंट पेज देखें.

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)

इस उदाहरण में, ध्यान दें कि min और max पैरामीटर, पिक्सल वैल्यू की उस रेंज के बारे में बताते हैं जिस पर पैलेट लागू किया जाना चाहिए. इंटरमीडिएट वैल्यू को लीनियर तौर पर स्ट्रेच किया जाता है.

यह भी ध्यान दें कि कोड एडिटर के उदाहरण में, show पैरामीटर को false पर सेट किया गया है. इस वजह से, मैप में जोड़ने पर लेयर दिखती नहीं है. कोड एडिटर मैप के ऊपर दाएं कोने में मौजूद लेयर मैनेजर का इस्तेमाल करके, इसे कभी भी फिर से चालू किया जा सकता है.

ndwi_sf
Landsat 8 NDWI, सैन फ़्रांसिस्को बे एरिया, अमेरिका. सियान रंग, कम वैल्यू के लिए होता है और नीला रंग, ज़्यादा वैल्यू के लिए होता है.

डिफ़ॉल्ट कलर पैलेट सेव करना

क्लासिफ़िकेशन इमेज पर कलर पैलेट सेव करने के लिए, हर क्लासिफ़िकेशन बैंड के लिए, खास नाम वाली दो स्ट्रिंग इमेज प्रॉपर्टी सेट की जा सकती हैं, ताकि उन्हें लागू करने के लिए याद रखने की ज़रूरत न पड़े.

उदाहरण के लिए, अगर आपकी इमेज में 'landcover' नाम का एक बैंड है, जिसमें 'पानी', 'जंगल', और 'अन्य' क्लास के हिसाब से तीन वैल्यू 0, 1, और 2 हैं, तो डिफ़ॉल्ट विज़ुअलाइज़ेशन में हर क्लास के लिए कोई रंग दिखाने के लिए, ये प्रॉपर्टी सेट की जा सकती हैं. इससे विश्लेषण में इस्तेमाल की गई वैल्यू पर कोई असर नहीं पड़ेगा:

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

ऐसेट का मेटाडेटा सेट करने का तरीका जानने के लिए, ऐसेट मैनेज करने वाला पेज देखें.

मास्क करना

image.updateMask() का इस्तेमाल करके, अलग-अलग पिक्सल की ओपैसिटी सेट की जा सकती है. ऐसा, मास्क इमेज में मौजूद उन पिक्सल के आधार पर किया जाता है जो शून्य नहीं हैं. मास्क में शून्य वाले पिक्सल को कैलकुलेशन से बाहर रखा जाता है और डिसप्ले के लिए ओपैसिटी को 0 पर सेट किया जाता है. यहां दिए गए उदाहरण में, पहले से बनाई गई एनडीडब्ल्यूआई लेयर पर मौजूद मास्क को अपडेट करने के लिए, एनडीडब्ल्यूआई थ्रेशोल्ड का इस्तेमाल किया गया है. थ्रेशोल्ड के बारे में जानने के लिए, संबंधी ऑपरेशन सेक्शन देखें:

कोड एडिटर (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 सेटअप

Python API के बारे में जानकारी पाने और इंटरैक्टिव डेवलपमेंट के लिए geemap का इस्तेमाल करने के लिए, Python एनवायरमेंट पेज देखें.

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)

विज़ुअलाइज़ेशन इमेज

किसी इमेज को डिसप्ले या एक्सपोर्ट करने के लिए, image.visualize() तरीके का इस्तेमाल करके उसे 8-बिट RGB इमेज में बदलें. उदाहरण के लिए, फ़ॉल्स-कलर कंपोजिट और एनडीडब्ल्यूआई को तीन-बैंड वाली डिसप्ले इमेज में बदलने के लिए, इनका इस्तेमाल करें:

कोड एडिटर (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 सेटअप

Python API के बारे में जानकारी पाने और इंटरैक्टिव डेवलपमेंट के लिए geemap का इस्तेमाल करने के लिए, Python एनवायरमेंट पेज देखें.

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'])

मोज़ेक करना

अलग-अलग तरह के कार्टोग्राफ़िक इफ़ेक्ट पाने के लिए, मास्किंग और imageCollection.mosaic() (मोज़ेक करने के बारे में जानकारी के लिए, मोज़ेक करने का सेक्शन देखें) का इस्तेमाल किया जा सकता है. mosaic() तरीका, आउटपुट इमेज में लेयर को रेंडर करता है. ऐसा, इनपुट कलेक्शन में उनके क्रम के हिसाब से किया जाता है. यहां दिए गए उदाहरण में, mosaic() का इस्तेमाल करके, मास्क किए गए एनडीडब्ल्यूआई और फ़ॉल्स कलर कंपोज़िट को जोड़ा गया है. इससे नया विज़ुअलाइज़ेशन मिलता है:

कोड एडिटर (JavaScript)

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

Python सेटअप

Python API के बारे में जानकारी पाने और इंटरैक्टिव डेवलपमेंट के लिए geemap का इस्तेमाल करने के लिए, Python एनवायरमेंट पेज देखें.

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)

इस उदाहरण में, देखें कि ImageCollection कन्स्ट्रक्टर को विज़ुअलाइज़ेशन की दो इमेज की सूची दी गई है. सूची के क्रम से यह तय होता है कि मैप पर इमेज किस क्रम में रेंडर की जाएंगी.

mosaic_sf
Landsat 8 फ़ॉल्स कलर कंपोजिट और एनडीडब्ल्यूआई का मोज़ेक. सैन फ़्रांसिस्को बे एरिया, अमेरिका.

क्लिप करना

image.clip() तरीका, कार्टोग्राफ़िक इफ़ेक्ट पाने के लिए काम का है. यहां दिए गए उदाहरण में, पहले से बनाए गए मोज़ेक को सैन फ़्रांसिस्को शहर के आस-पास के किसी भी बफ़र ज़ोन में क्लिप किया गया है:

कोड एडिटर (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 सेटअप

Python API के बारे में जानकारी पाने और इंटरैक्टिव डेवलपमेंट के लिए geemap का इस्तेमाल करने के लिए, Python एनवायरमेंट पेज देखें.

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)

पिछले उदाहरण में, ध्यान दें कि निर्देशांक Geometry कन्स्ट्रक्टर को दिए गए हैं और बफ़र की लंबाई 20,000 मीटर के तौर पर तय की गई है. ज्यामिति वाले पेज पर, ज्यामिति के बारे में ज़्यादा जानें.

clipped_sf
ऊपर दिखाया गया मोज़ेक, अमेरिका के कैलिफ़ोर्निया में सैन फ़्रांसिस्को के आस-पास के बफ़र में क्लिप किया गया है.

कैटगरी वाले मैप रेंडर करना

अलग-अलग वैल्यू वाले मैप को रेंडर करने के लिए भी पैलेट का इस्तेमाल किया जा सकता है. जैसे, लैंड कवर मैप. एक से ज़्यादा क्लास के मामले में, हर क्लास के लिए अलग-अलग रंग देने के लिए पैलेट का इस्तेमाल करें. (image.remap() तरीका इस संदर्भ में, मनमुताबिक लेबल को एक के बाद एक पूर्णांक में बदलने के लिए मददगार हो सकता है). इस उदाहरण में, पैलेट का इस्तेमाल करके लैंडस्केप कवर की कैटगरी को रेंडर किया गया है:

कोड एडिटर (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 सेटअप

Python API के बारे में जानकारी पाने और इंटरैक्टिव डेवलपमेंट के लिए geemap का इस्तेमाल करने के लिए, Python एनवायरमेंट पेज देखें.

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
आईजीबीपी क्लासिफ़िकेशन का इस्तेमाल करके, MODIS 2012 का लैंड कवर.

स्टाइल वाले लेयर डिस्क्रिप्टर

डिसप्ले के लिए इमेज को रेंडर करने के लिए, स्टाइल लेयर डिस्क्रिप्टर (SLD) का इस्तेमाल किया जा सकता है. image.sldStyle() एट्रिब्यूट के लिए, इमेज के रंग और चिह्न के बारे में जानकारी दें. खास तौर पर, RasterSymbolizer एलिमेंट के लिए. RasterSymbolizer एलिमेंट के बारे में ज़्यादा जानने के लिए, यहां जाएं. उदाहरण के लिए, कैटगरी वाले मैप को रेंडर करने वाले सेक्शन में बताए गए, ज़मीन के कवर वाले मैप को एसएलडी के साथ रेंडर करने के लिए, इनका इस्तेमाल करें:

कोड एडिटर (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 सेटअप

Python API के बारे में जानकारी पाने और इंटरैक्टिव डेवलपमेंट के लिए geemap का इस्तेमाल करने के लिए, Python एनवायरमेंट पेज देखें.

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)

कलर रेंप वाली विज़ुअलाइज़ेशन इमेज बनाने के लिए, ColorMap का टाइप 'रैंप' पर सेट करें. नीचे दिए गए उदाहरण में, डीईएम को रेंडर करने के लिए 'इंटरवल' और 'रैंप' टाइप की तुलना की गई है:

कोड एडिटर (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 सेटअप

Python API के बारे में जानकारी पाने और इंटरैक्टिव डेवलपमेंट के लिए geemap का इस्तेमाल करने के लिए, Python एनवायरमेंट पेज देखें.

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)

एसएलडी, पिक्सल वैल्यू को स्ट्रेच करने के लिए भी काम के होते हैं, ताकि लगातार डेटा के विज़ुअलाइज़ेशन को बेहतर बनाया जा सके. उदाहरण के लिए, यह कोड किसी भी लीनियर स्ट्रेच के नतीजों की तुलना, कम से ज़्यादा 'नॉर्मलाइज़ेशन' और 'हिस्टोग्राम' के बराबर करने की सुविधा के साथ करता है:

कोड एडिटर (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 सेटअप

Python API के बारे में जानकारी पाने और इंटरैक्टिव डेवलपमेंट के लिए geemap का इस्तेमाल करने के लिए, Python एनवायरमेंट पेज देखें.

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 में एसएलडी इस्तेमाल करने के बारे में ध्यान देने वाली बातें:

  • OGC SLD 1.0 और OGC SE 1.1 का इस्तेमाल किया जा सकता है.
  • सबमिट किया गया एक्सएमएल दस्तावेज़ पूरा हो सकता है या सिर्फ़ RasterSymbolizer एलिमेंट और उसके बाद का हिस्सा हो सकता है.
  • बैंड को उनके Earth Engine नाम या इंडेक्स ('1', '2', ...) के हिसाब से चुना जा सकता है.
  • फ़्लोटिंग पॉइंट इमेजरी के लिए, हिस्टोग्राम और नॉर्मलाइज़ कंट्रास्ट स्ट्रेच की सुविधाएं काम नहीं करतीं.
  • ओपैसिटी का ध्यान सिर्फ़ तब रखा जाता है, जब वह 0.0 (पारदर्शी) हो. शून्य से ज़्यादा ऑपैसिटी वाली वैल्यू को पूरी तरह से ऑपैस माना जाता है.
  • फ़िलहाल, OverlapBehavior की परिभाषा को अनदेखा किया जाता है.
  • फ़िलहाल, ShadedRelief सुविधा काम नहीं करती.
  • फ़िलहाल, ImageOutline का इस्तेमाल नहीं किया जा सकता.
  • ज्यामिति एलिमेंट को अनदेखा किया जाता है.
  • अगर हिस्टोग्राम की बराबरी करने या उसका सामान्यीकरण करने का अनुरोध किया जाता है, तो आउटपुट इमेज में histogram_bandname मेटाडेटा होगा.

थंबनेल इमेज

ee.Image ऑब्जेक्ट के लिए PNG या JPEG थंबनेल इमेज जनरेट करने के लिए, ee.Image.getThumbURL() तरीके का इस्तेमाल करें. getThumbURL() को कॉल करके खत्म होने वाले किसी एक्सप्रेशन का नतीजा प्रिंट करने पर, यूआरएल प्रिंट होता है. यूआरएल पर जाने से, Earth Engine सर्वर, अनुरोध किए गए थंबनेल को तुरंत जनरेट करने के लिए काम करना शुरू कर देते हैं. प्रोसेस पूरी होने के बाद, इमेज किसी ब्राउज़र में दिखती है. इमेज पर राइट क्लिक करके, संदर्भ मेन्यू से सही विकल्प चुनकर इसे डाउनलोड किया जा सकता है.

thumbnail_in_browser
ब्राउज़र में PNG थंबनेल के तौर पर दिखाया गया SRTM डिजिटल एलिवेशन मॉडल.

getThumbURL() तरीके में ऐसे पैरामीटर शामिल होते हैं जिनके बारे में ऊपर दी गई विज़ुअलाइज़ेशन पैरामीटर टेबल में बताया गया है. इसके अलावा, इसमें dimensions, region, और crs आर्ग्युमेंट भी इस्तेमाल किए जा सकते हैं. इनसे थंबनेल के स्पेस, साइज़, और डिसप्ले प्रोजेक्शन को कंट्रोल किया जा सकता है.

फ़ॉर्मैट के बारे में जानकारी के साथ ee.Image.getThumbURL() के लिए अतिरिक्त पैरामीटर
पैरामीटर ब्यौरा टाइप
डाइमेंशन पिक्सल में थंबनेल के डाइमेंशन. अगर एक पूर्णांक दिया जाता है, तो इससे इमेज के बड़े आसपेक्ट डाइमेंशन का साइज़ तय होता है. साथ ही, छोटे डाइमेंशन को उसी अनुपात में स्केल किया जाता है. बड़े आसपेक्ट रेशियो वाली इमेज के लिए, डिफ़ॉल्ट रूप से 512 पिक्सल का इस्तेमाल किया जाता है. इस फ़ॉर्मैट में एक पूर्णांक या स्ट्रिंग: 'WIDTHxHEIGHT'
region इमेज का जियोस्पेशल क्षेत्र, जिसे रेंडर करना है. डिफ़ॉल्ट रूप से पूरी इमेज या दी गई ज्यामिति के दायरे. GeoJSON या कम से कम तीन पॉइंट निर्देशांक की 2-D सूची, जो लीनियर रिंग तय करती है
crs टारगेट प्रोजेक्शन, जैसे कि 'EPSG:3857'. डिफ़ॉल्ट रूप से, WGS84 ('EPSG:4326') पर सेट होता है. स्ट्रिंग
फ़ॉर्मैट थंबनेल के फ़ॉर्मैट को PNG या JPEG के तौर पर तय करता है. डिफ़ॉल्ट PNG फ़ॉर्मैट को RGBA के तौर पर लागू किया जाता है. इसमें अल्फा चैनल, मान्य और अमान्य पिक्सल दिखाता है. इन्हें इमेज के mask() से तय किया जाता है. अमान्य पिक्सल पारदर्शी होते हैं. वैकल्पिक JPEG फ़ॉर्मैट को RGB के तौर पर लागू किया जाता है. इसमें अमान्य इमेज पिक्सल, RGB चैनलों में शून्य से भरे जाते हैं. स्ट्रिंग; 'png' या 'jpg'

एक बैंड वाली इमेज, डिफ़ॉल्ट रूप से ग्रेस्केल में दिखेगी. ऐसा तब तक होगा, जब तक palette आर्ग्युमेंट नहीं दिया जाता. एक से ज़्यादा बैंड वाली इमेज, डिफ़ॉल्ट रूप से पहले तीन बैंड के आरजीबी विज़ुअलाइज़ेशन के तौर पर दिखेगी. ऐसा तब तक होगा, जब तक bands आर्ग्युमेंट नहीं दिया जाता. अगर सिर्फ़ दो बैंड दिए गए हैं, तो पहला बैंड लाल रंग में, दूसरा बैंड नीले रंग में मैप होगा. साथ ही, हरे रंग के चैनल में शून्य भरा जाएगा.

यहां उदाहरणों की एक सीरीज़ दी गई है, जिसमें getThumbURL() पैरामीटर आर्ग्युमेंट के अलग-अलग कॉम्बिनेशन दिखाए गए हैं. थंबनेल देखने के लिए, स्क्रिप्ट को चलाने पर प्रिंट किए गए यूआरएल पर क्लिक करें.

कोड एडिटर (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 सेटअप

Python API के बारे में जानकारी पाने और इंटरैक्टिव डेवलपमेंट के लिए geemap का इस्तेमाल करने के लिए, Python एनवायरमेंट पेज देखें.

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)