ee.Image
มีเมธอดหลายรายการที่แสดงข้อมูลภาพเป็นภาพ RGB เช่น visualize()
,
getThumbURL()
,
getMap()
,
getMapId()
(ใช้ในการแสดงแผนที่ Folium ของ Colab) และ
Map.addLayer()
(ใช้ในการแสดงแผนที่ของเครื่องมือแก้ไขโค้ด ไม่พร้อมใช้งานสำหรับ Python) โดยค่าเริ่มต้น วิธีการเหล่านี้จะกําหนดแถบ 3 แถบแรกเป็นสีแดง เขียว และน้ำเงินตามลําดับ การขยายเริ่มต้นจะอิงตามประเภทข้อมูลในย่านความถี่ (เช่น ระบบจะขยายค่าลอยเป็น [0, 1] และขยายข้อมูล 16 บิตเป็นค่าที่เป็นไปได้ทั้งหมด) ซึ่งอาจเหมาะสมหรือไม่ก็ได้ หากต้องการสร้างเอฟเฟกต์การแสดงภาพที่ต้องการ ให้ระบุพารามิเตอร์การแสดงภาพ ดังนี้
พารามิเตอร์ | คำอธิบาย | ประเภท |
---|---|---|
bands | รายการชื่อย่านความถี่ 3 รายการที่คั่นด้วยคอมมาเพื่อแมปกับ RGB | list |
นาที | ค่าที่จะแมปเป็น 0 | ตัวเลขหรือรายการตัวเลข 3 รายการ โดยแต่ละรายการมี 1 วง |
max | ค่าที่จะแมปเป็น 255 | ตัวเลขหรือรายการตัวเลข 3 รายการ โดยแต่ละรายการมี 1 วง |
gain | ค่าที่จะคูณกับค่าพิกเซลแต่ละค่า | ตัวเลขหรือรายการตัวเลข 3 รายการ โดยแต่ละรายการมี 1 วง |
bias | ค่าที่จะเพิ่มลงใน DN แต่ละรายการ | ตัวเลขหรือรายการตัวเลข 3 รายการ โดยแต่ละรายการมี 1 วง |
gamma | ปัจจัยการแก้ไขค่าแกมม่า | หมายเลขหรือรายการตัวเลข 3 รายการ โดยแต่ละรายการมี 1 หมายเลข |
palette | รายการสตริงสีสไตล์ CSS (รูปภาพย่านความถี่เดียวเท่านั้น) | รายการสตริงฐาน 16 ที่คั่นด้วยคอมมา |
ความทึบ | ความทึบแสงของเลเยอร์ (0.0 คือโปร่งแสงทั้งหมดและ 1.0 คือทึบแสงทั้งหมด) | ตัวเลข |
format | "jpg" หรือ "png" | สตริง |
ภาพ RGB แบบคอมโพสิต
ตัวอย่างต่อไปนี้แสดงการใช้พารามิเตอร์เพื่อจัดสไตล์รูปภาพ 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');
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'
กำหนดเป็นสีน้ำเงิน

ชุดสี
หากต้องการแสดงแถบเดียวของรูปภาพเป็นสี ให้ตั้งค่าพารามิเตอร์ palette
ด้วยแถบสีที่แสดงด้วยรายการสตริงสีสไตล์ CSS (ดูข้อมูลเพิ่มเติมได้ในข้อมูลอ้างอิงนี้) ตัวอย่างต่อไปนี้แสดงวิธีใช้สีตั้งแต่สีฟ้าอมเขียว ('00FFFF'
) ไปจนถึงน้ำเงิน ('0000FF'
) เพื่อแสดงผลรูปภาพ
ดัชนีน้ำที่ได้จากความแตกต่างที่ปรับมาตรฐาน (NDWI)
เครื่องมือแก้ไขโค้ด (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);
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
ในตัวอย่างเครื่องมือแก้ไขโค้ด ซึ่งจะทำให้เลเยอร์นั้นปิดอยู่เมื่อเพิ่มลงในแผนที่ คุณเปิดใช้อีกครั้งได้ทุกเมื่อโดยใช้ตัวจัดการเลเยอร์ที่มุมขวาบนของแผนที่เครื่องมือแก้ไขโค้ด

บันทึกชุดสีเริ่มต้น
หากต้องการบันทึกชุดสีในรูปภาพการจัดประเภทเพื่อไม่ต้องจดจำว่าต้องนำไปใช้เมื่อใด คุณสามารถตั้งค่าพร็อพเพอร์ตี้รูปภาพสตริงที่มีชื่อพิเศษ 2 รายการสำหรับแต่ละย่านความถี่การจัดประเภท
เช่น หากรูปภาพมีแถบชื่อ 'landcover'
ซึ่งมีค่า 0, 1 และ 2 สอดคล้องกับคลาส "น้ำ" "ป่า" และ "อื่นๆ"
คุณสามารถตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้เพื่อให้การแสดงภาพเริ่มต้นแสดงสีที่ระบุสำหรับแต่ละคลาส (ค่าที่ใช้ในการวิเคราะห์จะไม่ได้รับผลกระทบ)
landcover_class_values="0,1,2"
landcover_class_palette="0000FF,00FF00,AABBCD"
ดูวิธีตั้งค่าข้อมูลเมตาของเนื้อหาได้ที่หน้าการจัดการเนื้อหา
การมาสก์
คุณสามารถใช้ image.updateMask()
เพื่อตั้งค่าระดับทึบแสงของพิกเซลแต่ละพิกเซลโดยอิงตามตำแหน่งพิกเซลในรูปภาพมาสก์ที่ไม่ใช่ 0 ระบบจะไม่รวมพิกเซลที่เท่ากับ 0 ในมาสก์ไว้ในการคำนวณ และจะตั้งค่าความทึบเป็น 0 สำหรับการแสดงผล ตัวอย่างต่อไปนี้ใช้เกณฑ์ NDWI (ดูข้อมูลเกี่ยวกับเกณฑ์ได้ที่
ส่วนการดำเนินการเชิงสัมพันธ์) เพื่ออัปเดตมาสก์ในเลเยอร์ NDWI ที่สร้างขึ้นก่อนหน้านี้
เครื่องมือแก้ไขโค้ด (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');
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()
เพื่อแปลงรูปภาพเป็นรูปภาพ RGB 8 บิตสำหรับแสดงผลหรือส่งออก เช่น หากต้องการแปลงภาพคอมโพสิตสีเสมือนจริงและ NDWI เป็นภาพแสดงผล 3 ย่านความถี่ ให้ใช้คำสั่งต่อไปนี้
เครื่องมือแก้ไขโค้ด (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'] });
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()
เพื่อรวม NDWI ที่ปกปิดและภาพคอมโพสิตสีเสมือนจริงเข้าด้วยกัน และรับภาพใหม่
เครื่องมือแก้ไขโค้ด (JavaScript)
// Mosaic the visualization layers and display (or export). var mosaic = ee.ImageCollection([imageRGB, ndwiRGB]).mosaic(); Map.addLayer(mosaic, {}, 'mosaic');
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)
ในตัวอย่างนี้ โปรดสังเกตว่ามีการให้รายการรูปภาพการแสดงภาพ 2 รูปแก่คอนสตรคเตอร์ ImageCollection
ลําดับของรายการจะกําหนดลําดับการแสดงผลรูปภาพบนแผนที่

การตัด
วิธี 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');
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 เมตร ดูข้อมูลเพิ่มเติมเกี่ยวกับเรขาคณิตได้ในหน้าเรขาคณิต

การแสดงผลแผนที่เชิงหมวดหมู่
พาเลตยังมีประโยชน์ในการเรนเดอร์แผนที่ที่มีค่าแบบไม่ต่อเนื่อง เช่น แผนที่การปกคลุมดิน
ในกรณีที่มีชั้นเรียนหลายชั้น ให้ใช้ชุดสีเพื่อระบุสีที่แตกต่างกันสำหรับแต่ละชั้นเรียน
(เมธอด 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');
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)

ตัวระบุเลเยอร์ที่ปรับแต่งสไตล์
คุณสามารถใช้ตัวบ่งชี้เลเยอร์ที่มีสไตล์ (SLD) เพื่อแสดงภาพ ระบุคำอธิบาย XML เกี่ยวกับการใช้สัญลักษณ์และการระบายสีของรูปภาพให้กับ image.sldStyle()
โดยเฉพาะองค์ประกอบ RasterSymbolizer
ดูข้อมูลเพิ่มเติมเกี่ยวกับองค์ประกอบ RasterSymbolizer
ได้ที่นี่
เช่น หากต้องการแสดงผลแผนที่การปกคลุมดินที่อธิบายไว้ในส่วนการแสดงผลแผนที่เชิงหมวดหมู่ด้วย SLD ให้ใช้
เครื่องมือแก้ไขโค้ด (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');
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
เป็น "แถบสี" ตัวอย่างต่อไปนี้เปรียบเทียบประเภท "ช่วงเวลา" และ "การเปลี่ยนระดับ" สำหรับการเรนเดอร์ DEM
เครื่องมือแก้ไขโค้ด (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');
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 ยังมีประโยชน์ในการขยายค่าพิกเซลเพื่อปรับปรุงการแสดงภาพข้อมูลแบบต่อเนื่อง ตัวอย่างเช่น โค้ดต่อไปนี้จะเปรียบเทียบผลลัพธ์ของการยืดเชิงเส้นแบบกำหนดเองกับ "การปรับให้เป็นมาตรฐาน" แบบต่ำสุด-สูงสุดและการทำให้เท่ากันแบบ "ฮิสโตแกรม"
เครื่องมือแก้ไขโค้ด (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');
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)
สิ่งที่ควรทราบเกี่ยวกับการใช้ SLD ใน Earth Engine
- รองรับ OGC SLD 1.0 และ OGC SE 1.1
- เอกสาร XML ที่ส่งมาอาจเป็นเอกสารที่สมบูรณ์ หรือจะเป็นเพียงองค์ประกอบ RasterSymbolizer ลงมา
- คุณเลือกย่านความถี่ได้ด้วยชื่อหรือดัชนีของ Earth Engine ('1', '2', ...)
- รูปภาพจุดลอยไม่รองรับกลไกการปรับความคมชัดแบบฮิสโตแกรมและการปรับความคมชัดให้ปกติ
- ระบบจะพิจารณาความทึบแสงเฉพาะเมื่อมีค่าเป็น 0.0 (โปร่งใส) ระบบจะถือว่าค่าความทึบแสงที่ไม่ใช่ 0 เป็นค่าทึบแสงทั้งหมด
- ระบบจะไม่สนใจคําจํากัดความ OverlapBehavior ในขณะนี้
- ขณะนี้ระบบยังไม่รองรับกลไก ShadedRelief
- ขณะนี้ระบบยังไม่รองรับกลไก ImageOutline
- ระบบจะไม่สนใจองค์ประกอบ Geometry
- รูปภาพเอาต์พุตจะมีข้อมูลเมตา histogram_bandname หากมีการขอการปรับสมดุลฮิสโตแกรมหรือการทำให้เป็นมาตรฐาน
รูปภาพขนาดย่อ
ใช้เมธอด ee.Image.getThumbURL()
เพื่อสร้างรูปภาพขนาดย่อ PNG หรือ JPEG สำหรับออบเจ็กต์ ee.Image
การพิมพ์ผลลัพธ์ของนิพจน์ที่ลงท้ายด้วยการเรียกใช้ getThumbURL()
จะส่งผลให้ระบบพิมพ์ URL การไปที่ URL จะตั้งค่าเซิร์ฟเวอร์ Earth Engine ให้สร้างภาพขนาดย่อที่ขอไปขณะนั้น รูปภาพจะแสดงในเบราว์เซอร์เมื่อประมวลผลเสร็จสิ้น โดยดาวน์โหลดได้โดยเลือกตัวเลือกที่เหมาะสมจากเมนูตามบริบทของรูปภาพซึ่งคลิกขวา

เมธอด getThumbURL()
มีพารามิเตอร์ตามที่อธิบายไว้ในตารางพารามิเตอร์การแสดงภาพด้านบน
นอกจากนี้ ยังใช้อาร์กิวเมนต์ dimensions
, region
และ crs
(ไม่บังคับ) ซึ่งควบคุมขอบเขตเชิงพื้นที่ ขนาด และการฉายภาพการแสดงผลของภาพขนาดย่อ
พารามิเตอร์ | คำอธิบาย | ประเภท |
---|---|---|
dimensions | ขนาดภาพขนาดย่อในหน่วยพิกเซล หากระบุจำนวนเต็มเพียงค่าเดียว ระบบจะกำหนดขนาดของมิติข้อมูลสัดส่วนภาพที่ใหญ่กว่าและปรับขนาดมิติข้อมูลขนาดเล็กตามสัดส่วน มีค่าเริ่มต้นเป็น 512 พิกเซลสำหรับขนาดของรูปภาพที่ใหญ่กว่า | จํานวนเต็มหรือสตริงเดียวในรูปแบบ 'WIDTHxHEIGHT' |
region | ภูมิภาคทางภูมิศาสตร์ของรูปภาพที่จะแสดงผล รูปภาพทั้งรูปโดยค่าเริ่มต้น หรือขอบเขตของเรขาคณิตที่ระบุ | GeoJSON หรือรายการ 2 มิติของพิกัดจุดอย่างน้อย 3 รายการที่กําหนดวงแหวนเชิงเส้น |
crs | การฉายภาพเป้าหมาย เช่น "EPSG:3857" ค่าเริ่มต้นคือ WGS84 ("EPSG:4326") | สตริง |
format | กำหนดรูปแบบของภาพปกเป็น PNG หรือ JPEG รูปแบบ PNG เริ่มต้นจะใช้เป็น RGBA โดยที่ช่องทางอัลฟ่าแสดงพิกเซลที่ถูกต้องและไม่ถูกต้อง ซึ่งกำหนดโดย mask() ของรูปภาพ พิกเซลที่ไม่ถูกต้องจะเป็นแบบโปร่งใส รูปแบบ JPEG (ไม่บังคับ) จะใช้เป็น RGB โดยระบบจะเติมค่า 0 ลงในพิกเซลรูปภาพที่ไม่ถูกต้องในช่อง RGB
|
สตริง เช่น "png" หรือ "jpg" |
รูปภาพย่านความถี่เดียวจะแสดงเป็นโมโนโครมโดยค่าเริ่มต้น เว้นแต่จะมีการใช้อาร์กิวเมนต์ palette
รูปภาพหลายย่านความถี่จะใช้การแสดงภาพ RGB ของย่านความถี่ 3 ย่านแรกโดยค่าเริ่มต้น เว้นแต่จะมีการใช้อาร์กิวเมนต์ bands
หากระบุเพียง 2 ย่านความถี่ ย่านความถี่แรกจะแมปกับสีแดง ย่านความถี่ที่ 2 จะแมปกับสีน้ำเงิน และช่องสีเขียวจะเติมด้วย 0
ต่อไปนี้คือชุดตัวอย่างที่แสดงการผสมผสานต่างๆ ของอาร์กิวเมนต์พารามิเตอร์ getThumbURL()
คลิก URL ที่แสดงเมื่อคุณเรียกใช้สคริปต์นี้เพื่อดูภาพขนาดย่อ
เครื่องมือแก้ไขโค้ด (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);
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)