Descripción general de la imagen

Como se mencionó en el documento de Primeros pasos, los datos ráster se representan como objetos Image en Earth Engine. Las imágenes se componen de una o más bandas, y cada banda tiene su propio nombre, tipo de datos, escala, máscara y proyección. Cada imagen tiene metadatos almacenados como un conjunto de propiedades.

Constructor ee.Image.

Para cargar imágenes, pega un ID de recurso de Earth Engine en el constructor ee.Image. Puedes encontrar los IDs de las imágenes en el catálogo de datos. Por ejemplo, a un modelo digital de elevación (NASADEM):

Editor de código (JavaScript)

var loadedImage = ee.Image('NASA/NASADEM_HGT/001');

Configuración de Python

Consulta la página Entorno de Python para obtener información sobre la API de Python y el uso de geemap para el desarrollo interactivo.

import ee
import geemap.core as geemap

Colab (Python)

loaded_image = ee.Image('NASA/NASADEM_HGT/001')

Ten en cuenta que encontrar una imagen a través de la herramienta de búsqueda del editor de código es equivalente. Cuando importas el recurso, el código de construcción de la imagen se escribe automáticamente en la sección de importaciones del Editor de código. También puedes usar un ID de recurso personal como argumento para el constructor ee.Image.

Obtén un ee.Image de un ee.ImageCollection

La forma estándar de obtener una imagen de una colección es filtrar la colección, con filtros en orden de especificidad decreciente. Por ejemplo, para obtener una imagen de la colección de reflectancia de la superficie de Sentinel-2, haz lo siguiente:

Editor de código (JavaScript)

var first = ee.ImageCollection('COPERNICUS/S2_SR')
                .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');

Configuración de Python

Consulta la página Entorno de Python para obtener información sobre la API de Python y el uso de geemap para el desarrollo interactivo.

import ee
import geemap.core as geemap

Colab (Python)

first = (
    ee.ImageCollection('COPERNICUS/S2_SR')
    .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)

Ten en cuenta que la ordenación se realiza después de los filtros. Evita ordenar toda la colección.

Imágenes de archivos GeoTIFF de Cloud

Puedes usar ee.Image.loadGeoTIFF() para cargar imágenes desde GeoTIFFs optimizados para la nube en Google Cloud Storage. Por ejemplo, el conjunto de datos públicos de Landsat alojado en Google Cloud contiene este GeoTIFF, que corresponde a la banda 5 de una escena de Landsat 8. Puedes cargar esta imagen desde Cloud Storage con 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);

Configuración de Python

Consulta la página Entorno de Python para obtener información sobre la API de Python y el uso de geemap para el desarrollo interactivo.

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)

Ten en cuenta que, si deseas volver a cargar un archivo GeoTIFF optimizado para la nube que exportaste de Earth Engine a Cloud Storage, cuando realices la exportación, establece cloudOptimized en true como se describe aquí.

Imágenes de arrays de Zarr v2

Puedes usar ee.Image.loadZarrV2Array() para cargar una imagen desde un array de Zarr v2 en Google Cloud Storage. Por ejemplo, el conjunto de datos públicos de ERA5 alojado en Google Cloud contiene este array de Zarr v2, que corresponde a los metros de agua que se evaporaron de la superficie de la Tierra. Puedes cargar este array desde Cloud Storage con 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');

Configuración de Python

Consulta la página Entorno de Python para obtener información sobre la API de Python y el uso de geemap para el desarrollo interactivo.

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

Imágenes constantes

Además de cargar imágenes por ID, también puedes crear imágenes a partir de constantes, listas o cualquier otro objeto de Earth Engine adecuado. En la siguiente ilustración, se muestran los métodos para crear imágenes, obtener subconjuntos de bandas y 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);

Configuración de Python

Consulta la página Entorno de Python para obtener información sobre la API de Python y el uso de geemap para el desarrollo interactivo.

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)