כמו שצוין במסמך תחילת העבודה, נתוני רסטר מיוצגים כאובייקטים מסוג Image ב-Earth Engine. תמונות מורכבות מרצועה אחת או יותר, ולכל רצועה יש שם, סוג נתונים, קנה מידה, מסכה והיטל משלה. לכל תמונה יש מטא-נתונים שמאוחסנים כקבוצת מאפיינים.
ee.Image constructor
כדי לטעון תמונות, מדביקים מזהה נכס של Earth Engine ב-constructor של 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 שעבר אופטימיזציה לענן, שייצאתם מ-Earth Engine ל-Cloud Storage, כשאתם מבצעים את הייצוא, הגדירו את cloudOptimized כ-true, כמו שמתואר כאן.
הערה לגבי ביצועים: כדי ליהנות מביצועים אופטימליים, מומלץ לרשום את נתוני עלות המכירה כנכסים במקום לטעון אותם ישירות באמצעות ee.Image.loadGeoTIFF(). פרטים והשוואה מופיעים בסקירה הכללית על Cloud optimized GeoTIFF (COG).
תמונות ממערכים של 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)
הפעלה ב-Google Colab
הצגת המקור ב-GitHub