Earth Engine הוא כלי ניתוח רב-עוצמה, אבל יכול להיות שתצטרכו לייצא את תוצאות הניתוח כדי להטמיע תרשימים, תמונות, מפות וכו' בדוחות או בפרסומים. בקטע הזה נסביר איך ליצור תרשימים ותמונות שאפשר לייצא ולצפות בהם בתוכנות אחרות. זוכרים שבקטע הקודם השתמשתם בקוד כמו הקוד הבא כדי להוסיף פס NDVI לכל תמונה באוסף, כשהמשתנה l8 מפנה לאוסף ההחזרה של Landsat 8 TOA:
Code Editor (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():
Code Editor (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. שימו לב שהפרמטרים של ה-constructor של התרשים כוללים reducer וקנה מידה כמו reduceRegion(). מכיוון שהנקודה שאנחנו מספקים כאזור יכולה להצטלב רק עם פיקסל אחד, מספיק להשתמש במפחית "ראשון". אם יש לכם אזור גדול יותר, כדאי להשתמש ב-mean או במפחית אחר שמציין איך לצבור פיקסלים. שימו לב שכדי להציג תרשים, כל מה שצריך לעשות הוא להדפיס אותו.
סטייה מהנושא: מיסוך עננים פשוט ב-Landsat
אולי שמתם לב שסדרת הזמנים של ערכי NDVI בנקודה הזו נראית קצת רועשת. כנראה בגלל עננים. כדי לשפר את האפקט הזה, Earth Engine כולל אלגוריתם של מיסוך עננים לחיישני Landsat עם פס תרמי: ee.Algorithms.Landsat.simpleCloudScore(). הוא מקבל כקלט תמונת החזרת TOA של Landsat ומוסיף פס בשם cloud, שהוא אינדקס של מידת העננות בפיקסל מ-0 עד 100, מהכי פחות מעונן להכי מעונן, בהתאמה. כדי לנקות קצת את התרשים, אפשר לשנות את הפונקציה שמיפיתם באוסף ולהשתמש בסף שרירותי (20) במדד העננים:
Code Editor (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, אבל מה לגבי תמונה שלמה? לדוגמה, נניח שיצרתם תמונה משולבת של הפיקסל הירוק ביותר, כפי שמתואר בקטע הקודם:
Code Editor (JavaScript)
var greenest = cloudlessNDVI.qualityMosaic('NDVI');
ההבדל היחיד בקוד הזה לעומת מה שעשיתם קודם הוא שעכשיו אנחנו משתמשים באוסף עם מסכת העננים. אפשר לייצא קבוצת משנה (שמוגדרת לפי אזור) של הנתונים האלה באמצעות החבילה Export. (מידע נוסף על ייצוא נתוני רסטר ונתונים וקטוריים מ-Earth Engine) לדוגמה, כדי לייצא תמונה שאפשר להטמיע בקלות במסמכים אחרים, ניצור תמונה של תרשים, כמו שעשינו קודם, ונייצא אותה לתיקיית Google Drive:
Code Editor (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 });
כשמריצים את הקוד הזה, נוצרת משימה חדשה בכרטיסייה Tasks. כדי לפתוח את תיבת הדו-שיח של הגדרת הייצוא, לוחצים על הכפתור RUN בכרטיסייה Tasks. אחרי שמגדירים את המשימה, לוחצים על הכפתור Run בתיבת הדו-שיח כדי להתחיל את הייצוא. אבל לפני שאתם עושים את זה, חשוב לדעת:
הסיבה לכך שצריך להיזהר כשמייצאים בלי ארגומנט region היא שאם מגדירים ערך קטן יחסית ל-scale, והמפה מוקטנת לאזור גדול, תייצאו תמונה שעלולה להיות גדולה מאוד לתיקיית Drive. במסמכי התיעוד של Export.image.toDrive() בכרטיסייה Docs מפורטים פרטים נוספים ורשימה של פרמטרים אפשריים להגדרה.
זהו סוף המבוא ל-Earth Engine API. עכשיו אתם מכירים את רוב הפונקציונליות הנפוצה של Earth Engine, ואתם יכולים להמשיך בביטחון לניתוחים מורכבים יותר. חשוב לקרוא את המסמכים ולחפש בפורום תשובות לשאלות אחרות. בהצלחה!