Earth Engine הוא כלי ניתוח רב עוצמה, אבל יכול להיות שתצטרכו לייצא את תוצאות הניתוח כדי להטמיע תרשימים, תמונות, מפות וכו' בדוחות או בפרסומים. בקטע הזה מוסבר איך ליצור תרשימים ותמונות שאפשר לייצא ולצפות בהם בתוכנות אחרות. כזכור, בקטע הקודם השתמשתם בקוד כמו זה שבהמשך כדי להוסיף פס NDVI לכל תמונה באוסף, כאשר המשתנה l8
מפנה אל אוסף ההחזרות של Landsat 8 TOA:
עורך הקוד (JavaScript)
// Import the Landsat 8 TOA image collection. var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA'); // Map a function over the Landsat 8 TOA collection to add an NDVI band. var withNDVI = l8.map(function(image) { var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI'); return image.addBands(ndvi); });
יצירת תרשימים
נניח שאתם רוצים ליצור תרשים של NDVI לאורך זמן במיקום נתון. כדי ליצור תרשים כזה, השלב הראשון הוא לבחור מיקום שמעניין אתכם. כדי ליצור נקודה, לוחצים על כלי השרטוט של הנקודה () ויוצרים גיאומטריה של נקודה אחת באזור שמעניין אתכם. (אם כבר יש לכם ייבוא, קודם מעבירים את העכבר מעל ייבוא גיאומטרי ולוחצים על + שכבה חדשה).
מאתרים את הנקודה באזור של חקלאות, יער נשיר, שטח עשבוני עונתי או כיסוי קרקע אחר עם מחזור שנתי. נותנים שם לייבוא
roi
. (מידע על יצירת צורות גיאומטריות באופן פרוגרמטי מופיע בדף הזה).
עכשיו נשתמש בנקודה roi
כדי ליצור תרשים של NDVI לאורך זמן בפיקסל שמתחת לנקודה הזו. כדי ליצור תרשימים ב-Earth Engine, צריך להשתמש בחבילת ui.Chart
. (מידע נוסף על יצירת תרשימים ב-Earth Engine)
לדוגמה, כדי ליצור תרשים לאורך זמן, אפשר להשתמש בשיטה ui.Chart.image.series()
:
עורך הקוד (JavaScript)
// Create a chart. var chart = ui.Chart.image.series({ imageCollection: withNDVI.select('NDVI'), region: roi, reducer: ee.Reducer.first(), scale: 30 }).setOptions({title: 'NDVI over time'}); // Display the chart in the console. print(chart);
במקרה של הגיאומטריה roi
, בחרנו נקודה באזור חקלאי, וכתוצאה מכך
קיבלנו תרשים שנראה כמו איור 10. שימו לב שהפרמטרים של בנאי התרשים
כוללים פונקציית צמצום וקנה מידה כמו reduceRegion()
. מכיוון שהנקודה שאנחנו מספקים כאזור יכולה לחתוך רק פיקסל אחד, מספיק להשתמש בפונקציית הצמצום 'first'. אם יש לכם אזור גדול יותר, כדאי להשתמש ב-'mean' או בפונקציית צמצום אחרת שמציינת איך לצבור פיקסלים. חשוב גם לזכור שכדי להציג תרשים, כל מה שצריך לעשות הוא להדפיס אותו.

סטייה מהנושא: מיסוך פשוט של עננים ב-Landsat
יכול להיות ששמתם לב שהסדרה העיתית של ערכי NDVI בנקודה נראית קצת רועשת. הסיבה לכך היא כנראה עננים. כדי לצמצם את ההשפעה הזו, Earth Engine כולל אלגוריתם לסינון עננים לחיישני Landsat עם פס תרמי: ee.Algorithms.Landsat.simpleCloudScore()
. הפונקציה מקבלת כקלט תמונה של השתקפות TOA של Landsat ומוסיפה פס בשם cloud
שהוא אינדקס של עננות בפיקסל מאפס עד 100, מהעננות הנמוכה ביותר ועד העננות הגבוהה ביותר, בהתאמה. כדי לשנות את הפונקציה שמיפיתם על האוסף, אתם יכולים להשתמש בסף שרירותי (20) באינדקס הענן כדי לנקות קצת את התרשים:
עורך הקוד (JavaScript)
var cloudlessNDVI = l8.map(function(image) { // Get a cloud score in [0, 100]. var cloud = ee.Algorithms.Landsat.simpleCloudScore(image).select('cloud'); // Create a mask of cloudy pixels from an arbitrary threshold. var mask = cloud.lte(20); // Compute NDVI. var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI'); // Return the masked image with an NDVI band. return image.addBands(ndvi).updateMask(mask); }); print(ui.Chart.image.series({ imageCollection: cloudlessNDVI.select('NDVI'), region: roi, reducer: ee.Reducer.first(), scale: 30 }).setOptions({title: 'Cloud-masked NDVI over time'}));
תוצאת המיסוך בענן מוצגת באיור 11. שימו לב שסדרת הזמן נראית קצת חלקה יותר, אבל יכול להיות שהיא עדיין מכילה פיקסלים שהושפעו מעננים. משנים את ערך הסף במדד הענן ומתבוננים בסדרת הזמן שמוצגת בתרשים כדי להבין איך ערך הסף הזה יכול להשפיע על התוצאות.

ייצוא תמונות
ראיתם דרך לייצא תרשים של נתונים שחושבו על ידי Earth Engine, אבל מה לגבי תמונה שלמה? נניח, לדוגמה, שיצרתם קומפוזיציה של הפיקסלים הירוקים ביותר כמו שמתואר בקטע הקודם:
עורך הקוד (JavaScript)
var greenest = cloudlessNDVI.qualityMosaic('NDVI');
ההבדל היחיד בקוד הזה לעומת מה שעשיתם קודם הוא שעכשיו אנחנו משתמשים
באיסוף עם מיסוך בענן. אפשר לייצא קבוצת משנה (מוגדרת לפי אזור) של הנתונים האלה באמצעות חבילת Export
. (מידע נוסף על ייצוא נתוני רסטר ונתוני וקטור מ-Earth Engine) לדוגמה, כדי לייצא תמונה שאפשר להטמיע בקלות במסמכים אחרים, ניצור תמונה של ויזואליזציה, כמו שעשיתם בעבר, ונייצא אותה לתיקייה ב-Google Drive:
עורך הקוד (JavaScript)
// Create a 3-band, 8-bit, color-IR composite to export. var visualization = greenest.visualize({ bands: ['B5', 'B4', 'B3'], max: 0.4 }); // Create a task that you can launch from the Tasks tab. Export.image.toDrive({ image: visualization, description: 'Greenest_pixel_composite', scale: 30 });
כשמריצים את הקוד הזה, שימו לב שנוצרת משימה חדשה בכרטיסייה משימות. כדי להפעיל את תיבת הדו-שיח של הגדרות הייצוא, לוחצים על הכפתור RUN (הפעלה) בכרטיסייה Tasks (משימות). אחרי שמגדירים את המשימה, לוחצים על הלחצן הפעלה בתיבת הדו-שיח כדי להתחיל את הייצוא. אבל לפני שתעשו את זה, חשוב שתדעו:
הסיבה לכך שצריך לנקוט משנה זהירות כשמייצאים בלי ארגומנט region
היא שאם מגדירים ערך קטן יחסית ל-scale
, ומקטינים את התצוגה של המפה לאזור גדול, יכול להיות שתייצאו תמונה גדולה מאוד לתיקיית Drive. פרטים נוספים ורשימה של פרמטרים אפשריים להגדרה מופיעים במסמכי התיעוד של Export.image.toDrive()
בכרטיסייה Docs.
זהו סוף המבוא ל-Earth Engine API. עכשיו אתם מכירים את רוב הפונקציות הנפוצות של Earth Engine, ואתם יכולים להמשיך בביטחון לניתוחים מורכבים יותר. מומלץ לקרוא את מסמכי התיעוד ולחפש תשובות לשאלות נוספות בפורום. שיהיה בהצלחה!