כמו שצוין במסמך תחילת העבודה, נתוני רסטר מיוצגים כאובייקטים מסוג Image
ב-Earth Engine. תמונות מורכבות מרצועה אחת או יותר, ולכל רצועה יש שם, סוג נתונים, קנה מידה, מסכה והטלה משלה. לכל תמונה יש מטא-נתונים שמאוחסנים כקבוצה של מאפיינים.
ee.Image
constructor
אפשר לטעון תמונות על ידי הדבקת מזהה נכס של Earth Engine בבונה ee.Image
. אפשר למצוא את מזהי התמונות בקטלוג הנתונים.
לדוגמה, למודל גובה דיגיטלי (NASADEM):
Code Editor (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')
שימו לב: אפשר גם למצוא תמונה באמצעות כלי החיפוש של עורך הקוד. כשמייבאים את הנכס, קוד בניית התמונה נכתב בשבילכם בקטע imports של Code Editor. אפשר גם להשתמש במזהה נכס אישי כארגומנט של בנאי ee.Image
.
קבלת ee.Image
מ-ee.ImageCollection
הדרך הרגילה להוציא תמונה מאוסף היא לסנן את האוסף, עם מסננים בסדר יורד של ספציפיות. לדוגמה, כדי להוציא תמונה מאוסף נתוני ההחזרת אור השמש של Sentinel-2:
Code Editor (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)
חשוב לזכור שהמיון מתבצע אחרי הסינון. לא מומלץ למיין את כל האוסף.
תמונות מקובצי GeoTIFF בענן
אפשר להשתמש ב-ee.Image.loadGeoTIFF()
כדי לטעון תמונות מ-Cloud Optimized
GeoTIFFs ב-Google Cloud Storage.
לדוגמה, מערך הנתונים הציבורי של Landsat שמתארח ב-Google Cloud מכיל את הקובץ GeoTIFF הזה, שמתאים לפס 5 מסצנת Landsat 8. אפשר לטעון את התמונה הזו מ-Cloud Storage באמצעות ee.Image.loadGeoTIFF()
:
Code Editor (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)
שימו לב: אם אתם רוצים לטעון מחדש קובץ GeoTIFF שעבר אופטימיזציה ל-Cloud ויוצא מ-Earth Engine אל Cloud Storage, אתם צריכים להגדיר את cloudOptimized
לערך true כשאתם מייצאים את הקובץ, כמו שמתואר כאן.
תמונות ממערכים של Zarr v2
אפשר להשתמש ב-ee.Image.loadZarrV2Array()
כדי לטעון תמונה ממערך Zarr v2 ב-Google Cloud Storage. לדוגמה, מערך הנתונים הציבורי ERA5 שמתארח ב-Google Cloud מכיל מערך Zarr v2, שמתאים למדידת מים שהתאדו מפני השטח של כדור הארץ. אפשר לטעון את המערך הזה מ-Cloud Storage באמצעות ee.Image.loadZarrV2Array()
:
Code Editor (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
תמונות קבועות
בנוסף לטעינת תמונות לפי מזהה, אפשר גם ליצור תמונות מקבועים, מרשימות או מאובייקטים מתאימים אחרים של Earth Engine. באיור הבא מוצגות שיטות ליצירת תמונות, לקבלת קבוצות משנה של רצועות ולשינוי רצועות:
Code Editor (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)