Comme indiqué dans le document Premiers pas, les données raster 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 son propre nom, type de données, échelle, masque
et projection. Chaque image comporte des métadonnées stockées sous forme d'ensemble de propriétés.
Constructeur ee.Image
Vous pouvez charger des images en collant un ID de composant Earth Engine dans le ee.Image
constructeur. Vous trouverez les ID d'image dans le catalogue de données.
Par exemple, pour un modèle numérique d'élévation (NASADEM) :
Éditeur de code (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')
Notez que la recherche d'une image à l'aide de
l'outil de recherche de l'éditeur de code
est équivalente. Lorsque vous importez le composant, le code de construction de l'image est écrit
pour vous dans la section des importations de l'éditeur de code. Vous pouvez également utiliser un
ID d'élément personnel comme argument du
ee.Image constructeur.
Obtenir un ee.Image à partir d'un ee.ImageCollection
La méthode standard pour extraire une image d'une collection consiste à filtrer la collection, avec des filtres par ordre décroissant de spécificité. Par exemple, pour extraire une image de la collection de réflectance de surface Sentinel-2 :
Éditeur de code (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');
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)
Notez que le tri est effectué après les filtres. Évitez de trier l'ensemble de la collection.
Images à partir de GeoTIFF Cloud
Vous pouvez utiliser ee.Image.loadGeoTIFF() pour charger des images à partir de
GeoTIFF Cloud optimisés dans Google Cloud Storage.
Par exemple, l'
ensemble de données
public Landsat hébergé dans Google Cloud contient
ce
GeoTIFF, qui correspond à la bande 5 d'une scène Landsat 8. Vous pouvez charger cette image à partir de
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);
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 recharger un GeoTIFF Cloud optimisé que vous
exportez d'Earth Engine vers
Cloud Storage, lorsque vous effectuez l'exportation, définissez
cloudOptimized sur true (vrai), comme décrit ici.
Remarque sur les performances : Pour des performances optimales, nous vous recommandons
d'enregistrer vos COG en tant que composants plutôt que de les charger
directement avec ee.Image.loadGeoTIFF(). Pour en savoir plus et comparer les deux méthodes, consultez la
présentation de GeoTIFF Cloud optimisé (COG).
Images à partir 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 public
ERA5 hébergé dans Google Cloud contient
ce tableau Zarr v2,
qui correspond aux mètres d'eau é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');
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. L'exemple suivant illustre les méthodes de création d'images, d'obtention de sous-ensembles de bandes et de manipulation de 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);
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)
Exécuter dans Google Colab
Afficher la source sur GitHub