ImageCollection – это стопка или последовательность изображений.
Создание из идентификатора коллекции
Объект ImageCollection можно загрузить, вставив идентификатор объекта Earth Engine в конструктор ImageCollection. Идентификаторы ImageCollection можно найти в каталоге данных. Например, чтобы загрузить коллекцию отражательной способности поверхности Sentinel-2:
Редактор кода (JavaScript)
var sentinelCollection = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED');
import ee import geemap.core as geemap
Colab (Python)
sentinel_collection = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED')
Эта коллекция содержит все изображения Sentinel-2 в общедоступном каталоге. Их много. Обычно коллекцию нужно отфильтровать, как показано здесь или здесь.
Создать из списка изображений
Конструктор ee.ImageCollection() или удобный метод ee.ImageCollection.fromImages() создают коллекции изображений из списков изображений. Вы также можете создавать новые коллекции изображений, объединяя существующие. Пример:
Редактор кода (JavaScript)
// Create arbitrary constant images. var constant1 = ee.Image(1); var constant2 = ee.Image(2); // Create a collection by giving a list to the constructor. var collectionFromConstructor = ee.ImageCollection([constant1, constant2]); print('collectionFromConstructor: ', collectionFromConstructor); // Create a collection with fromImages(). var collectionFromImages = ee.ImageCollection.fromImages( [ee.Image(3), ee.Image(4)]); print('collectionFromImages: ', collectionFromImages); // Merge two collections. var mergedCollection = collectionFromConstructor.merge(collectionFromImages); print('mergedCollection: ', mergedCollection); // Create a toy FeatureCollection var features = ee.FeatureCollection( [ee.Feature(null, {foo: 1}), ee.Feature(null, {foo: 2})]); // Create an ImageCollection from the FeatureCollection // by mapping a function over the FeatureCollection. var images = features.map(function(feature) { return ee.Image(ee.Number(feature.get('foo'))); }); // Print the resultant collection. print('Image collection: ', images);
import ee import geemap.core as geemap
Colab (Python)
# Create arbitrary constant images. constant_1 = ee.Image(1) constant_2 = ee.Image(2) # Create a collection by giving a list to the constructor. collection_from_constructor = ee.ImageCollection([constant_1, constant_2]) display('Collection from constructor:', collection_from_constructor) # Create a collection with fromImages(). collection_from_images = ee.ImageCollection.fromImages( [ee.Image(3), ee.Image(4)] ) display('Collection from images:', collection_from_images) # Merge two collections. merged_collection = collection_from_constructor.merge(collection_from_images) display('Merged collection:', merged_collection) # Create a toy FeatureCollection features = ee.FeatureCollection( [ee.Feature(None, {'foo': 1}), ee.Feature(None, {'foo': 2})] ) # Create an ImageCollection from the FeatureCollection # by mapping a function over the FeatureCollection. images = features.map(lambda feature: ee.Image(ee.Number(feature.get('foo')))) # Display the resultant collection. display('Image collection:', images)
Обратите внимание, что в этом примере ImageCollection создается путем сопоставления функции, которая возвращает Image, с FeatureCollection. Подробнее о сопоставлении в разделе Сопоставление по ImageCollection. Подробнее о коллекциях объектов…
Создать из списка COG
Создайте ImageCollection из оптимизированных для облака файлов GeoTIFF (COG) в Cloud Storage. Пример:
Редактор кода (JavaScript)
// All the GeoTiffs are in this folder. var uriBase = 'gs://gcp-public-data-landsat/LC08/01/001/002/' + 'LC08_L1GT_001002_20160817_20170322_01_T2/'; // List of URIs, one for each band. var uris = ee.List([ uriBase + 'LC08_L1GT_001002_20160817_20170322_01_T2_B2.TIF', uriBase + 'LC08_L1GT_001002_20160817_20170322_01_T2_B3.TIF', uriBase + 'LC08_L1GT_001002_20160817_20170322_01_T2_B4.TIF', uriBase + 'LC08_L1GT_001002_20160817_20170322_01_T2_B5.TIF', ]); // Make a collection from the list of images. var images = uris.map(ee.Image.loadGeoTIFF); var collection = ee.ImageCollection(images); // Get an RGB image from the collection of bands. var rgb = collection.toBands().rename(['B2', 'B3', 'B4', 'B5']); Map.centerObject(rgb); Map.addLayer(rgb, {bands: ['B4', 'B3', 'B2'], min: 0, max: 20000}, 'rgb');
import ee import geemap.core as geemap
Colab (Python)
# All the GeoTiffs are in this folder. uri_base = ( 'gs://gcp-public-data-landsat/LC08/01/001/002/' + 'LC08_L1GT_001002_20160817_20170322_01_T2/' ) # List of URIs, one for each band. uris = ee.List([ uri_base + 'LC08_L1GT_001002_20160817_20170322_01_T2_B2.TIF', uri_base + 'LC08_L1GT_001002_20160817_20170322_01_T2_B3.TIF', uri_base + 'LC08_L1GT_001002_20160817_20170322_01_T2_B4.TIF', uri_base + 'LC08_L1GT_001002_20160817_20170322_01_T2_B5.TIF', ]) # Make a collection from the list of images. images = uris.map(lambda uri: ee.Image.loadGeoTIFF(uri)) collection = ee.ImageCollection(images) # Get an RGB image from the collection of bands. rgb = collection.toBands().rename(['B2', 'B3', 'B4', 'B5']) m = geemap.Map() m.center_object(rgb) m.add_layer(rgb, {'bands': ['B4', 'B3', 'B2'], 'min': 0, 'max': 20000}, 'rgb') m
Подробнее о том, как загружать изображения из файлов GeoTIFF, оптимизированных для облака… Для рабочих коллекций зарегистрируйте COG как объекты. О компромиссах читайте в разделе Чтение COG из Cloud Storage.
Создание из массива Zarr v2
Создайте ImageCollection из массива Zarr v2 в Cloud Storage, взяв срезы изображения по более высокому измерению.
Пример:
Редактор кода (JavaScript)
var timeStart = 1000000; var timeEnd = 1000048; var zarrV2ArrayImages = ee.ImageCollection.loadZarrV2Array({ uri: 'gs://gcp-public-data-arco-era5/ar/full_37-1h-0p25deg-chunk-1.zarr-v3/evaporation/.zarray', proj: 'EPSG:4326', axis: 0, starts: [timeStart], ends: [timeEnd] }); print(zarrV2ArrayImages); Map.addLayer(zarrV2ArrayImages, {min: -0.0001, max: 0.00005}, 'Evaporation');
import ee import geemap.core as geemap
Colab (Python)
time_start = 1000000 time_end = 1000048 zarr_v2_array_images = ee.ImageCollection.loadZarrV2Array( uri='gs://gcp-public-data-arco-era5/ar/full_37-1h-0p25deg-chunk-1.zarr-v3/evaporation/.zarray', proj='EPSG:4326', axis=0, starts=[time_start], ends=[time_end], ) display(zarr_v2_array_images) m = geemap.Map() m.add_layer( zarr_v2_array_images, {'min': -0.0001, 'max': 0.00005}, 'Evaporation' ) m