Существует ряд методов ee.Image
, которые создают визуальные представления данных изображения в формате RGB, например: visualize()
, getThumbURL()
, getMap()
, getMapId()
(используется при отображении карты Colab Folium) и Map.addLayer()
(используется при отображении карты в редакторе кода, недоступно для Python). По умолчанию эти методы присваивают первым трем полосам красный, зеленый и синий цвета соответственно. Растяжение по умолчанию основано на типе данных в полосах (например, числа с плавающей запятой растягиваются на [0, 1], 16-битные данные растягиваются на весь диапазон возможных значений), что может подходить, а может и не подходить. Для достижения желаемых эффектов визуализации вы можете указать параметры визуализации:
Параметр | Описание | Тип |
---|---|---|
группы | Список из трех названий полос, разделенных запятыми, которые будут сопоставлены с RGB. | список |
мин | Значения для сопоставления с 0 | номер или список из трех номеров, по одному на каждый диапазон |
Макс | Значения для сопоставления с 255 | номер или список из трех номеров, по одному на каждый диапазон |
прирост | Значения, на которые умножается значение каждого пикселя | номер или список из трех номеров, по одному на каждый диапазон |
предвзятость | Значения, добавляемые к каждому DN | номер или список из трех номеров, по одному на каждый диапазон |
гамма | Гамма-поправочный коэффициент(ы) | номер или список из трех номеров, по одному на каждый диапазон |
палитра | Список цветовых строк в стиле CSS (только для однополосных изображений) | список шестнадцатеричных строк, разделенных запятыми |
непрозрачность | Непрозрачность слоя (0,0 — полностью прозрачный, 1,0 — полностью непрозрачный). | число |
формат | Либо «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
Колаб (Питон)
# 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
Колаб (Питон)
# 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
. Это приводит к отключению видимости слоя при его добавлении на карту. Его всегда можно включить снова с помощью диспетчера слоев в правом верхнем углу карты редактора кода.

Сохранение цветовых палитр по умолчанию
Чтобы сохранить цветовые палитры в классификационном изображении и не забывать их применять, можно установить два свойства строкового изображения со специальными именами для каждой полосы классификации.
Например, если на вашем изображении есть полоса с именем 'landcover'
с тремя значениями 0, 1 и 2, соответствующими классам «вода», «лес» и «другое», вы можете установить следующие свойства, чтобы визуализация по умолчанию отображала указанный цвет для каждого класса (значения, используемые в анализе, не будут затронуты):
-
landcover_class_values="0,1,2"
-
landcover_class_palette="0000FF,00FF00,AABBCD"
См. страницу управления активами , чтобы узнать, как настроить метаданные актива.
Маскировка
Вы можете использовать image.updateMask()
чтобы установить непрозрачность отдельных пикселей в зависимости от того, где пиксели в изображении маски не равны нулю. Пиксели, равные нулю в маске, исключаются из вычислений, а для отображения непрозрачность устанавливается равной 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
Колаб (Питон)
# 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 для отображения или экспорта. Например, чтобы преобразовать композитное изображение с искусственными цветами и NDWI в трехполосное изображение, используйте:
Редактор кода (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
Колаб (Питон)
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
Колаб (Питон)
# 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
. Порядок списка определяет порядок отображения изображений на карте.

Обрезка
Метод 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
Колаб (Питон)
# 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
Колаб (Питон)
# 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 ) для рендеринга изображений для отображения. Предоставьте image.sldStyle()
XML-описание символов и цветов изображения, в частности, элемент 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
Колаб (Питон)
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
значение «Ramp». В следующем примере сравниваются типы «интервал» и «рампа» для визуализации матрицы высот:
Редактор кода (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
Колаб (Питон)
# 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
Колаб (Питон)
# 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 (прозрачность). Ненулевые значения непрозрачности считаются полностью непрозрачными.
- Определение OverlapBehavior в настоящее время игнорируется.
- Механизм ShadedRelief в настоящее время не поддерживается.
- Механизм ImageOutline в настоящее время не поддерживается.
- Элемент Geometry игнорируется.
- Выходное изображение будет иметь метаданные histogram_bandname, если будет запрошено выравнивание или нормализация гистограммы.
Миниатюры изображений
Используйте метод ee.Image.getThumbURL()
для создания миниатюры изображения PNG или JPEG для объекта ee.Image
. Печать результата выражения, заканчивающегося вызовом getThumbURL()
приводит к печати URL-адреса. Посещение URL-адреса заставляет серверы Earth Engine работать над созданием запрошенного эскиза «на лету». Изображение отображается в браузере после завершения обработки. Его можно загрузить, выбрав соответствующие параметры в контекстном меню изображения, вызываемом правой кнопкой мыши.

Метод getThumbURL()
включает параметры, описанные в таблице параметров визуализации выше. Кроме того, он принимает дополнительные аргументы dimensions
, region
и crs
, которые управляют пространственным экстентом, размером и проекцией отображения миниатюры.
Параметр | Описание | Тип |
---|---|---|
размеры | Размеры миниатюр в пикселях. Если указано одно целое число, оно определяет размер большего аспектного измерения изображения и пропорционально масштабирует меньшее измерение. По умолчанию 512 пикселей для большего размера изображения. | Одно целое число или строка в формате: «ШИРИНАxВЫСОТА». |
область | Геопространственная область изображения для рендеринга. Все изображение по умолчанию или границы предоставленной геометрии. | GeoJSON или двумерный список из как минимум трех координат точек, определяющих линейное кольцо. |
крс | Целевая проекция, например, «EPSG:3857». По умолчанию WGS84 («EPSG:4326»). | Нить |
формат | Определяет формат миниатюр как PNG или JPEG. Формат PNG по умолчанию реализован как RGBA, где альфа-канал представляет допустимые и недопустимые пиксели, определенные с помощью mask() изображения. Недопустимые пиксели прозрачны. Дополнительный формат JPEG реализован как RGB, где недопустимые пиксели изображения заполняются нулями по каналам RGB. | Нить; либо «png», либо «jpg». |
Одноканальное изображение по умолчанию будет иметь оттенки серого, если не указан аргумент palette
. Многоканальное изображение по умолчанию использует RGB-визуализацию первых трех каналов, если не указан аргумент bands
. Если предоставлены только две полосы, первая полоса будет отображаться как красная, вторая — синяя, а зеленый канал будет заполнен нулями.
Ниже приведена серия примеров, демонстрирующих различные комбинации аргументов параметра 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
Колаб (Питон)
# 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)