Istnieje wiele metod ee.Image
, które generują wizualne reprezentacje danych obrazu w RGB, na przykład:
visualize()
,
getThumbURL()
,
getMap()
,
getMapId()
(używane w wyświetlaniu mapy Folium w Colabie) oraz
Map.addLayer()
(używane w wyświetlaniu mapy w Edytorze kodu, niedostępne w Pythonie). Domyślnie te metody przypisują pierwsze 3 pasma odpowiednio do kolorów czerwonego, zielonego i niebieskiego. Domyślne rozciąganie jest określane na podstawie typu danych w pasmach (np. dane typu float są rozciągane w zakresie [0, 1], a dane 16-bitowe są rozciągane do pełnego zakresu możliwych wartości), co może być odpowiednie lub nie. Aby uzyskać pożądane efekty wizualizacji, możesz podać parametry wizualizacji:
Parametr | Opis | Typ |
---|---|---|
pasm | Lista nazw 3 pasm rozdzielona przecinkami, które mają zostać zmapowane na RGB | lista |
min | Wartości do mapowania na 0 | liczba lub lista 3 liczb, po jednej dla każdego pasma |
max | Wartości do zmapowania na 255 | liczba lub lista 3 liczb, po jednej dla każdego pasma |
gain | Wartości, przez które należy pomnożyć każdą wartość piksela | liczba lub lista 3 liczb, po jednej dla każdego pasma |
uprzedzanie | Wartości do dodania do każdego DN | liczba lub lista 3 liczb, po jednej dla każdego pasma |
gamma | Współczynniki korekcji gamma | liczba lub lista 3 liczb, po jednej dla każdego pasma |
palette | Lista ciągów znaków kolorów w stylu CSS (tylko w przypadku obrazów jednopasmowych) | lista ciągów szesnastkowych rozdzielona przecinkami |
przezroczystość | Przezroczystość warstwy (0,0 – całkowicie przezroczysta, 1,0 – całkowicie nieprzezroczysta). | liczba |
format | „jpg” lub „png” | ciąg znaków |
kompozyty RGB,
Poniżej przedstawiamy użycie parametrów do nadania obrazowi Landsat 8 stylu w postaci kompozycji w kolorach fałszywych:
Edytor kodu (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)
W tym przykładzie pasmo 'B5'
ma kolor czerwony, 'B4'
– zielony, a 'B3'
– niebieski.

Palety kolorów
Aby wyświetlić jeden pasek obrazu w kolorze, ustaw parametr palette
za pomocą rampy kolorów reprezentowanej przez listę ciągów znaków kolorów w stylu CSS. (Więcej informacji znajdziesz w tej dokumentacji). Ten przykład pokazuje, jak za pomocą kolorów od turkusowego ('00FFFF'
) do niebieskiego ('0000FF'
) renderować obraz
znormalizowanego wskaźnika różnicy wody (NDWI):
Edytor kodu (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)
W tym przykładzie parametry min
i max
wskazują zakres wartości pikseli, do których należy zastosować paletę. Wartości pośrednie są rozciągane liniowo.
Zwróć też uwagę, że w przykładzie w Edytorze kodu parametr show
ma wartość false
. W efekcie widoczność warstwy jest wyłączona, gdy zostanie dodana do mapy. Można go zawsze włączyć ponownie za pomocą Menedżera warstw w prawym górnym rogu mapy w Edytorze kodu.

Zapisywanie domyślnych palet kolorów
Aby zapisać palety kolorów na obrazie klasyfikacji, aby nie trzeba było pamiętać o ich zastosowaniu, możesz ustawić 2 właściwości łańcucha znaków o specjalnych nazwach dla każdego pasma klasyfikacji.
Jeśli np. obraz zawiera pasmo o nazwie 'landcover'
z 3 wartościami 0, 1 i 2 odpowiadającymi klasom „woda”, „las” i „inne”, możesz ustawić te właściwości, aby domyślna wizualizacja pokazywała określony kolor dla każdej klasy (nie wpłynie to na wartości użyte w analizie):
landcover_class_values="0,1,2"
landcover_class_palette="0000FF,00FF00,AABBCD"
Aby dowiedzieć się, jak ustawić metadane zasobu, przejdź na stronę zarządzania komponentami.
Zamaskowanie
Za pomocą atrybutu image.updateMask()
możesz ustawić przezroczystość poszczególnych pikseli na podstawie tego, czy piksele w obrazie maski mają wartość niezerową. Piksele o wartości 0 w masce są wykluczane z obliczeń, a przezroczystość jest ustawiana na 0. W tym przykładzie do zaktualizowania maski w warstwie NDWI utworzonej wcześniej użyto progu NDWI (informacje o progach znajdziesz w sekcji
Operacje relacyjne).
Edytor kodu (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)
Obrazy wizualizacji
Użyj metody image.visualize()
, aby przekonwertować obraz na 8-bitowy obraz RGB do wyświetlania lub eksportowania. Aby na przykład przekonwertować kompozyt na podstawie nieprawdziwych kolorów i NDWI na obrazy wyświetlane w 3 pasmach, użyj:
Edytor kodu (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
Aby uzyskać różne efekty kartograficzne, możesz użyć maskowania i imageCollection.mosaic()
(informacje o mozaikowaniu znajdziesz w sekcji Mozaikowanie). Metoda mosaic()
renderuje warstwy obrazu wyjściowego zgodnie z ich kolejnością w zbiorze wejściowym. W tym przykładzie funkcja mosaic()
służy do połączenia zamaskowanego NDWI i kompozycji z fałszywymi kolorami w nowej wizualizacji:
Edytor kodu (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)
W tym przykładzie konstruktorowi ImageCollection
przekazywana jest lista 2 wizualizacji. Kolejność na liście określa kolejność, w jakiej obrazy są renderowane na mapie.

Przycinanie
Metoda image.clip()
jest przydatna do uzyskiwania efektów kartograficznych. W tym przykładzie mozaika utworzona wcześniej jest ograniczona do dowolnej strefy buforowej wokół miasta San Francisco:
Edytor kodu (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)
W poprzednim przykładzie zwróć uwagę, że współrzędne są przekazywane do konstruktora Geometry
,a długość bufora jest określona jako 20 tys. metrów. Więcej informacji o geometriach znajdziesz na stronie Geometria.

Renderowanie map kartezjalnych
Palety są też przydatne do renderowania map z wartościami dyskretnymi, np. mapy pokrycia terenu.
W przypadku wielu zajęć użyj palety, aby przypisać inny kolor do każdego z nich.
(w tym kontekście przydatna może być metoda image.remap()
, która służy do konwertowania dowolnych etykiet na kolejne liczby całkowite). W tym przykładzie paleta jest używana do renderowania kategorii okładek:
Edytor kodu (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)

Opisy stylizowanych warstw
Do renderowania obrazów na potrzeby wyświetlania możesz użyć opisanego stylowo opisu warstwy (SLD). Prześlij do image.sldStyle()
opis XML symbolizacji i kolorystyki obrazu, w szczególności elementu RasterSymbolizer
. Więcej informacji o elemencie RasterSymbolizer
znajdziesz tutaj.
Aby na przykład wyrenderować mapę pokrycia terenu opisaną w sekcji Renderowanie map sytuacyjnych za pomocą SLD, użyj:
Edytor kodu (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)
Aby utworzyć obraz wizualizacji z rampą kolorów, ustaw typ ColorMap
na „rampa”. W tym przykładzie porównujemy typy „interval” i „ramp” do renderowania DEM:
Edytor kodu (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)
Wartości te są też przydatne do rozciągania wartości pikseli w celu poprawy wizualizacji danych ciągłych. Na przykład poniższy kod porównuje wyniki dowolnego liniowego rozciągnięcia z normalizacją min-max i wyrównaniem „Histogram”:
Edytor kodu (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)
Uwagi dotyczące korzystania z map SLD w Earth Engine:
- Obsługiwane są OGC SLD 1.0 i OGC SE 1.1.
- Przekazany dokument XML może być kompletny lub zawierać tylko element RasterSymbolizer.
- Pasma można wybierać według nazw lub indeksu w Earth Engine („1”, „2”, itd.).
- Mechanizmy rozciągania kontrastu za pomocą histogramu i normalizacji kontrastu nie są obsługiwane w przypadku obrazów punktowych.
- Wypełnienie jest brane pod uwagę tylko wtedy, gdy wynosi 0,0 (przezroczyste). Wartości niezerowej przejrzystości są traktowane jako całkowicie nieprzejrzyste.
- Definicja OverlapBehavior jest obecnie ignorowana.
- Mechanizm ShadedRelief nie jest obecnie obsługiwany.
- Mechanizm ImageOutline nie jest obecnie obsługiwany.
- Element Geometry jest ignorowany.
- Jeśli zostanie zażądane wyrównanie histogramu lub normalizacja, obraz wyjściowy będzie zawierał metadane histogram_bandname.
miniatury,
Użyj metody ee.Image.getThumbURL()
, aby wygenerować miniaturę PNG lub JPEG obiektu ee.Image
. Wydrukowanie wyniku wyrażenia kończącego się wywołaniem funkcji getThumbURL()
powoduje wydrukowanie adresu URL. Odwiedzenie adresu URL powoduje, że serwery Earth Engine generują na bieżąco żądaną miniaturę. Po zakończeniu przetwarzania obraz wyświetli się w przeglądarce. Można go pobrać, wybierając odpowiednie opcje w menu kontekstowym obrazu.

Metoda getThumbURL()
zawiera parametry opisane w tabeli parametrów wizualizacji powyżej.
Dodatkowo przyjmuje opcjonalne argumenty dimensions
, region
i crs
, które kontrolują zakres przestrzenny, rozmiar i projekcję wyświetlania miniatury.
Parametr | Opis | Typ |
---|---|---|
wymiary | Wymiary miniatury w pikselach. Jeśli podano jedno całkowite, określa ono rozmiar większego wymiaru obrazu, a mniejszy wymiar jest proporcjonalnie skalowany. Domyślnie 512 pikseli dla większego wymiaru obrazu. | Pojedyncza liczba całkowita lub ciąg znaków w formacie: 'SZEROKOŚĆxWYSOKOŚĆ' |
region | Region geoprzestrzenny obrazu do wyrenderowania. Domyślnie cały obraz lub granice podanej geometrii. | GeoJSON lub dwuwymiarowa lista co najmniej 3 współrzędnych punktu definiujących pierścień liniowy |
crs | Projekcja docelowa, np. „EPSG:3857”. Domyślnie jest to WGS84 („EPSG:4326”). | Ciąg znaków |
format | Określa format miniatury jako PNG lub JPEG. Domyślny format PNG jest implementowany jako RGBA, gdzie kanał alfa reprezentuje prawidłowe i nieprawidłowe piksele zdefiniowane przez mask() obrazu. Nieprawidłowe piksele są przezroczyste. Opcjonalny format JPEG jest implementowany jako RGB, gdzie nieprawidłowe piksele obrazu są wypełniane zerami w kanałach RGB.
|
Ciąg znaków: „png” lub „jpg”. |
Obraz jednopasmowy będzie domyślnie wyświetlany w szarościach, chyba że zostanie podany argument palette
. Obraz wielopasmowy będzie domyślnie wyświetlany w kolorach RGB dla pierwszych trzech pasm, chyba że zostanie podany argument bands
. Jeśli podano tylko 2 pasma, pierwsze zostanie zmapowane na czerwony, drugie na niebieski, a kanał zielony zostanie wypełniony zerami.
Poniżej znajdziesz kilka przykładów pokazujących różne kombinacje argumentów parametru getThumbURL()
. Aby wyświetlić miniatury, kliknij adresy URL wydrukowane po uruchomieniu tego skryptu.
Edytor kodu (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)