Có một số phương thức ee.Image
tạo ra bản trình bày hình ảnh RGB của dữ liệu hình ảnh, ví dụ: visualize()
, getThumbURL()
, getMap()
, getMapId()
(dùng trong màn hình bản đồ Folium của Colab) và Map.addLayer()
(dùng trong màn hình bản đồ của Trình soạn thảo mã, không dùng được cho Python). Theo mặc định, các phương thức này sẽ gán lần lượt ba dải đầu tiên cho màu đỏ, xanh lục và xanh dương. Độ giãn mặc định dựa trên loại dữ liệu trong các dải (ví dụ: số thực được kéo giãn trong [0, 1], dữ liệu 16 bit được kéo giãn đến toàn bộ phạm vi giá trị có thể có), có thể phù hợp hoặc không. Để đạt được hiệu ứng trực quan mong muốn, bạn có thể cung cấp các tham số trực quan:
Thông số | Mô tả | Loại |
---|---|---|
dải tần số | Danh sách được phân tách bằng dấu phẩy gồm 3 tên dải tần số cần liên kết với RGB | danh sách |
phút | (Các) giá trị ánh xạ đến 0 | số hoặc danh sách gồm 3 số, mỗi số tương ứng với một dải tần |
max | (Các) giá trị liên kết đến 255 | số hoặc danh sách gồm 3 số, mỗi số tương ứng với một dải tần |
gain | (Các) giá trị để nhân với từng giá trị pixel | số hoặc danh sách gồm 3 số, mỗi số tương ứng với một dải tần |
thiên vị | (Các) giá trị cần thêm vào mỗi DN | số hoặc danh sách gồm 3 số, mỗi số tương ứng với một dải tần |
gamma | (Các) hệ số hiệu chỉnh gamma | số hoặc danh sách gồm 3 số, mỗi số tương ứng với một dải tần |
palette | Danh sách chuỗi màu theo kiểu CSS (chỉ dành cho hình ảnh đơn băng) | danh sách các chuỗi hex được phân tách bằng dấu phẩy |
độ mờ | Độ mờ của lớp (0.0 là hoàn toàn trong suốt và 1.0 là hoàn toàn mờ) | số |
định dạng | "jpg" hoặc "png" | chuỗi |
Cấu trúc kết hợp RGB
Phần sau đây minh hoạ cách sử dụng các tham số để tạo kiểu cho hình ảnh Landsat 8 dưới dạng một tổng hợp màu giả:
Trình soạn thảo mã (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)
Trong ví dụ này, dải 'B5'
được gán cho màu đỏ, 'B4'
được gán cho màu xanh lục và 'B3'
được gán cho màu xanh dương.

Bảng màu
Để hiển thị một dải màu của hình ảnh, hãy đặt tham số palette
bằng một dải màu được biểu thị bằng danh sách các chuỗi màu theo kiểu CSS. (Xem tài liệu tham khảo này để biết thêm thông tin). Ví dụ sau đây minh hoạ cách sử dụng màu từ xanh lục lam ('00FFFF'
) đến xanh dương ('0000FF'
) để kết xuất hình ảnh
Chỉ số chênh lệch nước chuẩn hoá (NDWI):
Trình soạn thảo mã (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)
Trong ví dụ này, hãy lưu ý rằng các tham số min
và max
cho biết phạm vi giá trị pixel mà bảng màu sẽ được áp dụng. Các giá trị trung gian được kéo giãn theo tuyến tính.
Ngoài ra, hãy lưu ý rằng tham số show
được đặt thành false
trong ví dụ về Trình soạn thảo mã. Điều này dẫn đến việc lớp bị tắt khi được thêm vào bản đồ. Bạn luôn có thể bật lại tính năng này bằng cách sử dụng Trình quản lý lớp ở góc trên cùng bên phải của bản đồ Trình soạn thảo mã.

Lưu bảng màu mặc định
Để lưu bảng màu trên hình ảnh phân loại để không cần phải nhớ áp dụng các bảng màu đó, bạn có thể đặt hai thuộc tính hình ảnh chuỗi được đặt tên đặc biệt cho mỗi dải phân loại.
Ví dụ: nếu hình ảnh của bạn có một dải có tên 'landcover'
với ba giá trị 0, 1 và 2 tương ứng với các lớp "nước", "rừng" và "khác", bạn có thể đặt các thuộc tính sau để hình ảnh trực quan mặc định hiển thị một màu được chỉ định cho mỗi lớp (các giá trị dùng trong phân tích sẽ không bị ảnh hưởng):
landcover_class_values="0,1,2"
landcover_class_palette="0000FF,00FF00,AABBCD"
Hãy xem trang quản lý thành phần để tìm hiểu cách đặt siêu dữ liệu thành phần.
Mặt nạ
Bạn có thể sử dụng image.updateMask()
để đặt độ mờ của từng pixel dựa trên vị trí các pixel trong hình ảnh mặt nạ khác 0. Các pixel bằng 0 trong mặt nạ sẽ bị loại trừ khỏi phép tính và độ mờ được đặt thành 0 để hiển thị. Ví dụ sau đây sử dụng ngưỡng NDWI (xem
phần Toán tử quy chiếu để biết thông tin về ngưỡng) để cập nhật mặt nạ trên lớp NDWI đã tạo trước đó:
Trình soạn thảo mã (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)
Hình ảnh trực quan
Sử dụng phương thức image.visualize()
để chuyển đổi hình ảnh thành hình ảnh RGB 8 bit để hiển thị hoặc xuất. Ví dụ: để chuyển đổi ảnh tổng hợp giả màu và NDWI thành hình ảnh hiển thị 3 băng tần, hãy sử dụng:
Trình soạn thảo mã (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'])
Mosaicking
Bạn có thể sử dụng tính năng che và imageCollection.mosaic()
(xem phần Tạo ảnh ghép để biết thông tin về việc tạo ảnh ghép) để đạt được nhiều hiệu ứng bản đồ. Phương thức mosaic()
hiển thị các lớp trong hình ảnh đầu ra theo thứ tự của các lớp đó trong tập hợp đầu vào. Ví dụ sau sử dụng mosaic()
để kết hợp NDWI được che và thành phần kết hợp màu giả để có được hình ảnh trực quan mới:
Trình soạn thảo mã (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)
Trong ví dụ này, hãy quan sát danh sách gồm hai hình ảnh trực quan được cung cấp cho hàm khởi tạo ImageCollection
. Thứ tự của danh sách xác định thứ tự hiển thị hình ảnh trên bản đồ.

Cắt
Phương thức image.clip()
hữu ích cho việc tạo hiệu ứng bản đồ. Ví dụ sau đây cắt ảnh ghép đã tạo trước đó thành một vùng đệm tuỳ ý xung quanh thành phố San Francisco:
Trình soạn thảo mã (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)
Trong ví dụ trước, lưu ý rằng các toạ độ được cung cấp cho hàm khởi tạo Geometry
và chiều dài vùng đệm được chỉ định là 20.000 mét. Tìm hiểu thêm về hình học trên trang Hình học.

Kết xuất bản đồ phân loại
Bảng màu cũng hữu ích cho việc kết xuất bản đồ có giá trị riêng biệt, chẳng hạn như bản đồ về thảm thực vật.
Trong trường hợp có nhiều lớp, hãy sử dụng bảng màu để cung cấp màu riêng cho từng lớp.
(Phương thức image.remap()
có thể hữu ích trong ngữ cảnh này, để chuyển đổi các nhãn tuỳ ý thành số nguyên liên tiếp). Ví dụ sau đây sử dụng bảng màu để hiển thị các danh mục ảnh bìa trên đất liền:
Trình soạn thảo mã (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)

Trình mô tả lớp theo kiểu
Bạn có thể sử dụng Trình mô tả lớp theo kiểu (SLD) để kết xuất hình ảnh cho màn hình. Cung cấp cho image.sldStyle()
nội dung mô tả bằng XML về việc biểu tượng hoá và tô màu hình ảnh, cụ thể là phần tử RasterSymbolizer
. Tìm hiểu thêm về phần tử RasterSymbolizer
tại đây.
Ví dụ: để kết xuất bản đồ lớp phủ đất được mô tả trong phần Kết xuất bản đồ phân loại bằng SLD, hãy sử dụng:
Trình soạn thảo mã (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)
Để tạo hình ảnh trực quan bằng dải màu, hãy đặt loại của ColorMap
thành "dải màu". Ví dụ sau đây so sánh các loại "khoảng thời gian" và "dải chuyển màu" để kết xuất DEM:
Trình soạn thảo mã (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 cũng hữu ích trong việc kéo giãn các giá trị pixel để cải thiện hình ảnh của dữ liệu liên tục. Ví dụ: mã sau đây so sánh kết quả của một độ giãn tuyến tính tuỳ ý với "Chuẩn hoá" tối thiểu-tối đa và "Biểu đồ" cân bằng:
Trình soạn thảo mã (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)
Lưu ý khi sử dụng SLD trong Earth Engine:
- Hỗ trợ OGC SLD 1.0 và OGC SE 1.1.
- Tài liệu XML được truyền vào có thể là hoàn chỉnh hoặc chỉ là phần tử RasterSymbolizer trở xuống.
- Bạn có thể chọn các dải bằng tên hoặc chỉ mục Earth Engine ('1', '2', ...).
- Cơ chế kéo giãn độ tương phản chuẩn hoá và Biểu đồ không được hỗ trợ cho hình ảnh điểm nổi.
- Độ mờ chỉ được tính khi có giá trị là 0.0 (trong suốt). Các giá trị độ mờ khác 0 được coi là hoàn toàn mờ.
- Định nghĩa OverlapBehavior hiện bị bỏ qua.
- Cơ chế ShadedRelief hiện không được hỗ trợ.
- Cơ chế ImageOutline hiện không được hỗ trợ.
- Phần tử Hình học sẽ bị bỏ qua.
- Hình ảnh đầu ra sẽ có siêu dữ liệu histogram_bandname nếu bạn yêu cầu cân bằng hoặc chuẩn hoá biểu đồ.
Hình thu nhỏ
Sử dụng phương thức ee.Image.getThumbURL()
để tạo hình thu nhỏ PNG hoặc JPEG cho đối tượng ee.Image
. Việc in kết quả của một biểu thức kết thúc bằng lệnh gọi đến getThumbURL()
sẽ dẫn đến việc in một URL. Việc truy cập vào URL sẽ thiết lập các máy chủ Earth Engine để tạo hình thu nhỏ được yêu cầu ngay lập tức. Hình ảnh sẽ hiển thị trong trình duyệt khi quá trình xử lý hoàn tất. Bạn có thể tải tệp này xuống bằng cách chọn các tuỳ chọn phù hợp trong trình đơn theo bối cảnh nhấp chuột phải của hình ảnh.

Phương thức getThumbURL()
bao gồm các tham số được mô tả trong bảng tham số trực quan hoá ở trên.
Ngoài ra, hàm này còn nhận các đối số dimensions
, region
và crs
không bắt buộc để kiểm soát phạm vi không gian, kích thước và chế độ chiếu màn hình của hình thu nhỏ.
Thông số | Mô tả | Loại |
---|---|---|
phương diện | Kích thước hình thu nhỏ tính bằng đơn vị pixel. Nếu bạn cung cấp một số nguyên, thì số nguyên đó sẽ xác định kích thước của kích thước khung hình lớn hơn của hình ảnh và điều chỉnh theo tỷ lệ kích thước nhỏ hơn. Mặc định là 512 pixel cho kích thước khung hình hình ảnh lớn hơn. | Một số nguyên hoặc chuỗi duy nhất ở định dạng: 'WIDTHxHEIGHT' |
region | Khu vực không gian địa lý của hình ảnh cần kết xuất. Toàn bộ hình ảnh theo mặc định hoặc giới hạn của một hình học được cung cấp. | GeoJSON hoặc danh sách 2D gồm ít nhất 3 toạ độ điểm xác định một vòng tròn tuyến tính |
crs | Hình chiếu mục tiêu, ví dụ: "EPSG:3857". Giá trị mặc định là WGS84 ("EPSG:4326"). | Chuỗi |
định dạng | Xác định định dạng hình thu nhỏ là PNG hoặc JPEG. Định dạng PNG mặc định được triển khai dưới dạng RGBA, trong đó kênh alpha đại diện cho các pixel hợp lệ và không hợp lệ, được xác định bởi mask() của hình ảnh. Các pixel không hợp lệ sẽ có màu trong suốt. Định dạng JPEG không bắt buộc được triển khai dưới dạng RGB, trong đó các pixel hình ảnh không hợp lệ được điền bằng 0 trên các kênh RGB.
|
Chuỗi; "png" hoặc "jpg" |
Hình ảnh đơn băng sẽ mặc định chuyển sang thang màu xám trừ khi bạn cung cấp đối số palette
. Hình ảnh nhiều băng sẽ mặc định hiển thị RGB của ba băng đầu tiên, trừ phi bạn cung cấp đối số bands
. Nếu bạn chỉ cung cấp 2 dải tần, thì dải tần đầu tiên sẽ liên kết với màu đỏ, dải tần thứ hai sẽ liên kết với màu xanh dương và kênh màu xanh lục sẽ được điền bằng 0.
Sau đây là một loạt ví dụ minh hoạ nhiều cách kết hợp đối số tham số getThumbURL()
. Nhấp vào các URL được in khi bạn chạy tập lệnh này để xem hình thu nhỏ.
Trình soạn thảo mã (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)