Présentation de l'image

Comme indiqué dans le document Premiers pas, les données matricielles sont représentées sous forme d'objets Image dans Earth Engine. Les images sont composées d'une ou de plusieurs bandes, et chaque bande possède ses propres nom, type de données, échelle, masque et projection. Chaque image possède des métadonnées stockées sous la forme d'un ensemble de propriétés.

Constructeur ee.Image

Les images peuvent être chargées en collant un ID d'asset Earth Engine dans le constructeur ee.Image. Vous trouverez les ID d'image dans le catalogue de données. Par exemple, à un modèle numérique d'élévation (NASADEM) :

Éditeur de code (JavaScript)

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

Configuration de Python

Consultez la page Environnement Python pour en savoir plus sur l'API Python et l'utilisation de geemap pour le développement interactif.

import ee
import geemap.core as geemap

Colab (Python)

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

Notez que vous pouvez également trouver une image à l'aide de l'outil de recherche de l'éditeur de code. Lorsque vous importez l'asset, le code de construction de l'image est écrit pour vous dans la section "Imports" de l'éditeur de code. Vous pouvez également utiliser un ID d'élément personnel comme argument du constructeur ee.Image.

Obtenir un ee.Image à partir d'un ee.ImageCollection

La méthode standard pour obtenir une image à partir d'une collection consiste à filtrer la collection, avec des filtres par ordre de spécificité décroissante. Par exemple, pour obtenir une image de la collection de réflectance de surface Sentinel-2 :

Éditeur de code (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');

Configuration de Python

Consultez la page Environnement Python pour en savoir plus sur l'API Python et l'utilisation de geemap pour le développement interactif.

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)

Notez que le tri est effectué après les filtres. Évitez de trier l'ensemble de la collection.

Images à partir de GeoTIFF optimisés pour le cloud

Vous pouvez utiliser ee.Image.loadGeoTIFF() pour charger des images à partir de GeoTIFF optimisés pour le cloud (COG) dans Google Cloud Storage. Le bucket doit se trouver dans un emplacement compatible. Par exemple, l'ensemble de données public Landsat hébergé dans Google Cloud contient ce GeoTIFF, correspondant à la bande 5 d'une scène Landsat 8. Vous pouvez charger cette image depuis Cloud Storage à l'aide de ee.Image.loadGeoTIFF() :

Éditeur de code (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);

Configuration de Python

Consultez la page Environnement Python pour en savoir plus sur l'API Python et l'utilisation de geemap pour le développement interactif.

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)

Notez que si vous souhaitez actualiser un fichier GeoTIFF optimisé pour le cloud que vous exportez d'Earth Engine vers Cloud Storage, définissez cloudOptimized sur true lors de l'exportation.

Remarque sur les performances : Pour des performances optimales, nous vous recommandons d'enregistrer vos COG en tant qu'assets plutôt que de les charger directement avec ee.Image.loadGeoTIFF(). Pour en savoir plus et obtenir une comparaison, consultez la présentation de Cloud Optimized GeoTIFF (COG).

Images de tableaux Zarr v2

Vous pouvez utiliser ee.Image.loadZarrV2Array() pour charger une image à partir d'un tableau Zarr v2 dans Google Cloud Storage. Par exemple, l'ensemble de données ERA5 public hébergé dans Google Cloud contient ce tableau Zarr v2, qui correspond aux mètres d'eau qui se sont évaporés de la surface de la Terre. Vous pouvez charger ce tableau à partir de Cloud Storage à l'aide de ee.Image.loadZarrV2Array() :

Éditeur de code (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');

Configuration de Python

Consultez la page Environnement Python pour en savoir plus sur l'API Python et l'utilisation de geemap pour le développement interactif.

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

Images constantes

En plus de charger des images par ID, vous pouvez également créer des images à partir de constantes, de listes ou d'autres objets Earth Engine appropriés. Les exemples suivants illustrent les méthodes permettant de créer des images, d'obtenir des sous-ensembles de bandes et de manipuler des bandes :

Éditeur de code (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);

Configuration de Python

Consultez la page Environnement Python pour en savoir plus sur l'API Python et l'utilisation de geemap pour le développement interactif.

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)