Como mencionado no documento Primeiros passos, os dados rasterizados são representados como objetos Image no Earth Engine. As imagens são
compostas por uma ou mais bandas, e cada banda tem o próprio nome, tipo de dados, escala, máscara
e projeção. Cada imagem tem metadados armazenados como um conjunto de propriedades.
Construtor ee.Image
As imagens podem ser carregadas colando um código do recurso do Earth Engine no construtor ee.Image. Encontre os IDs de imagem no Data Catalog.
Por exemplo, para um modelo de elevação digital (NASADEM):
Editor de código (JavaScript)
var loadedImage = ee.Image('NASA/NASADEM_HGT/001');
import ee import geemap.core as geemap
Colab (Python)
loaded_image = ee.Image('NASA/NASADEM_HGT/001')
Encontrar uma imagem usando
a ferramenta de pesquisa do Editor de código
é equivalente. Quando você importa o recurso, o código de construção da imagem é escrito
para você na seção de importações do
Editor de Código. Você também pode usar um código do recurso pessoal como argumento para o construtor ee.Image.
Receber um ee.Image de um ee.ImageCollection
A maneira padrão de extrair uma imagem de uma coleção é filtrar a coleção, com filtros em ordem decrescente de especificidade. Por exemplo, para extrair uma imagem do conjunto de reflectância de superfície do Sentinel-2:
Editor de código (JavaScript)
var first = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED') .filterBounds(ee.Geometry.Point(-70.48, 43.3631)) .filterDate('2019-01-01', '2019-12-31') .sort('CLOUDY_PIXEL_PERCENTAGE') .first(); Map.centerObject(first, 11); Map.addLayer(first, {bands: ['B4', 'B3', 'B2'], min: 0, max: 2000}, 'first');
import ee import geemap.core as geemap
Colab (Python)
first = ( ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED') .filterBounds(ee.Geometry.Point(-70.48, 43.3631)) .filterDate('2019-01-01', '2019-12-31') .sort('CLOUDY_PIXEL_PERCENTAGE') .first() ) # Define a map centered on southern Maine. m = geemap.Map(center=[43.7516, -70.8155], zoom=11) # Add the image layer to the map and display it. m.add_layer( first, {'bands': ['B4', 'B3', 'B2'], 'min': 0, 'max': 2000}, 'first' ) display(m)
A classificação é feita depois dos filtros. Evite classificar toda a coleção.
Imagens de GeoTIFFs otimizados para a nuvem
Use ee.Image.loadGeoTIFF() para carregar imagens de
GeoTIFFs otimizados para nuvem (COGs) no Google Cloud Storage.
O bucket precisa estar em um
local
compatível.
Por exemplo, o
conjunto de dados público
do Landsat hospedado no Google Cloud contém
este
GeoTIFF, que corresponde à banda 5 de uma cena do Landsat 8. É possível carregar essa imagem do
Cloud Storage usando ee.Image.loadGeoTIFF():
Editor de código (JavaScript)
var uri = 'gs://gcp-public-data-landsat/LC08/01/001/002/' + 'LC08_L1GT_001002_20160817_20170322_01_T2/' + 'LC08_L1GT_001002_20160817_20170322_01_T2_B5.TIF'; var cloudImage = ee.Image.loadGeoTIFF(uri); print(cloudImage);
import ee import geemap.core as geemap
Colab (Python)
uri = ( 'gs://gcp-public-data-landsat/LC08/01/001/002/' + 'LC08_L1GT_001002_20160817_20170322_01_T2/' + 'LC08_L1GT_001002_20160817_20170322_01_T2_B5.TIF' ) cloud_image = ee.Image.loadGeoTIFF(uri) display(cloud_image)
Se você quiser recarregar um GeoTIFF otimizado para nuvem que foi
exportado do Earth
Engine para o Cloud Storage, defina
cloudOptimized como true ao fazer a exportação.
Observação sobre desempenho: para um desempenho ideal, recomendamos
registrar seus COGs como recursos em vez de carregá-los
diretamente com ee.Image.loadGeoTIFF(). Consulte a
visão geral do GeoTIFF otimizado para nuvem (COG, na sigla em inglês) para detalhes e comparação.
Imagens de matrizes Zarr v2
Use ee.Image.loadZarrV2Array() para carregar uma imagem de uma
matriz Zarr v2 no
Google Cloud Storage. Por exemplo, o conjunto de dados público
ERA5 hospedado no Google Cloud contém
esta matriz Zarr v2,
que corresponde aos metros de água que evaporaram da superfície da Terra. É possível carregar
essa matriz do Cloud Storage usando ee.Image.loadZarrV2Array():
Editor de código (JavaScript)
var timeStart = 1000000; var timeEnd = 1000010; var zarrV2ArrayImage = ee.Image.loadZarrV2Array({ uri: 'gs://gcp-public-data-arco-era5/ar/full_37-1h-0p25deg-chunk-1.zarr-v3/evaporation/.zarray', proj: 'EPSG:4326', starts: [timeStart], ends: [timeEnd] }); print(zarrV2ArrayImage); Map.addLayer(zarrV2ArrayImage, {min: -0.0001, max: 0.00005}, 'Evaporation');
import ee import geemap.core as geemap
Colab (Python)
time_start = 1000000 time_end = 1000010 zarr_v2_array_image = ee.Image.loadZarrV2Array( uri='gs://gcp-public-data-arco-era5/ar/full_37-1h-0p25deg-chunk-1.zarr-v3/evaporation/.zarray', proj='EPSG:4326', starts=[time_start], ends=[time_end], ) display(zarr_v2_array_image) m.add_layer( zarr_v2_array_image, {'min': -0.0001, 'max': 0.00005}, 'Evaporation' ) m
Imagens constantes
Além de carregar imagens por ID, também é possível criar imagens com base em constantes, listas ou outros objetos adequados do Earth Engine. Veja a seguir métodos para criar imagens, receber subconjuntos de bandas e manipular bandas:
Editor de código (JavaScript)
// Create a constant image. var image1 = ee.Image(1); print(image1); // Concatenate two images into one multi-band image. var image2 = ee.Image(2); var image3 = ee.Image.cat([image1, image2]); print(image3); // Create a multi-band image from a list of constants. var multiband = ee.Image([1, 2, 3]); print(multiband); // Select and (optionally) rename bands. var renamed = multiband.select( ['constant', 'constant_1', 'constant_2'], // old names ['band1', 'band2', 'band3'] // new names ); print(renamed); // Add bands to an image. var image4 = image3.addBands(ee.Image(42)); print(image4);
import ee import geemap.core as geemap
Colab (Python)
# Create a constant image. image_1 = ee.Image(1) display(image_1) # Concatenate two images into one multi-band image. image_2 = ee.Image(2) image_3 = ee.Image.cat([image_1, image_2]) display(image_3) # Create a multi-band image from a list of constants. multiband = ee.Image([1, 2, 3]) display(multiband) # Select and (optionally) rename bands. renamed = multiband.select( ['constant', 'constant_1', 'constant_2'], # old names ['band1', 'band2', 'band3'], # new names ) display(renamed) # Add bands to an image. image_4 = image_3.addBands(ee.Image(42)) display(image_4)
Executar no Google Colab
Ver código-fonte no GitHub