כפי שצוין במאמר תחילת העבודה, נתוני רסטר מיוצגים כאובייקטים מסוג Image
ב-Earth Engine. תמונות מורכבות מפס אחד או יותר, וכל פס כולל שם, סוג נתונים, קנה מידה, מסכה ותצוגה משלו. לכל תמונה יש מטא-נתונים שמאוחסנים כקבוצה של מאפיינים.
ה-constructor של ee.Image
כדי לטעון תמונות, מדביקים מזהה נכס של Earth Engine ב-constructor של ee.Image
. מזהי התמונות מופיעים בקטלוג הנתונים.
לדוגמה, כדי לטעון את DSM של ALOS של JAXA:
Code Editor (JavaScript)
var loadedImage = ee.Image('JAXA/ALOS/AW3D30/V2_2');
import ee import geemap.core as geemap
Colab (Python)
loaded_image = ee.Image('JAXA/ALOS/AW3D30/V2_2')
הערה: אפשר גם לחפש תמונה באמצעות כלי החיפוש של Code Editor. כשמייבאים את הנכס, קוד היצירה של התמונה נכתב בשבילכם בקטע 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 ב-Cloud
אפשר להשתמש ב-ee.Image.loadGeoTIFF()
כדי לטעון תמונות מ-GeoTIFFs שהותאמו ל-Cloud ב-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 בזמן הייצוא, כפי שמתואר כאן.
תמונות קבועות
בנוסף לטעינה של תמונות לפי מזהה, אפשר גם ליצור תמונות מתוך קבועים, רשימות או אובייקטים מתאימים אחרים ב-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)