קבוצת הנתונים Global Forest Change של Hansen et al. (2013) ב-Earth Engine מייצגת את השינוי ביערות ברזולוציה של 30 מטרים, ברמה הגלובלית, בין השנים 2000 ל-2014. נתחיל בהוספת הנתונים של Hansen et al. למפה. אפשר לייבא את נתוני השינויים ביערות בעולם (מידע נוסף על חיפוש וייבוא של מערכי נתונים) על ידי חיפוש "Hansen forest" ומתן השם gfc2014 לייבוא, או להעתיק את הקוד הבא ל-Code Editor:
Code Editor (JavaScript)
var gfc2014 = ee.Image('UMD/hansen/global_forest_change_2015'); Map.addLayer(gfc2014);
לוחצים על הלחצן Run בחלק העליון של עורך הקוד. אמורה להופיע תמונה דומה לאיור 1.
אל דאגה, בקרוב תוכלו לשפר את המראה שלו. (מידע נוסף על תצוגות ברירת המחדל של תמונות ב-Earth Engine). בסוף החלק הזה, תהיה לכם תמונה שנראית בערך כמו איור 2, שבו הצבע הירוק מייצג את המקומות שבהם זוהה יער במחקר בשנת 2000, הצבע האדום מייצג את אובדן היערות המשוער במהלך תקופת המחקר, הצבע הכחול מייצג את הגידול ביערות במהלך התקופה הזו, הצבע המג'נטה מייצג אזורים שבהם היערות גם אבדו וגם גדלו, ואזורים שאינם יערות מוסתרים.
זכרו שכאשר תמונה מרובת-ערוצים מתווספת למפה, שלושת הערוצים הראשונים של התמונה נבחרים כאדום, ירוק וכחול, בהתאמה, ונמתחים בהתאם לסוג הנתונים של כל ערוץ. הסיבה שהתמונה נראית אדומה היא ששלושת הערוצים הראשונים הם treecover2000, loss ו-gain. הפס
treecover2000 מבוטא באחוזים והערכים שלו גבוהים בהרבה מ-
loss (ירוק) ומ-gain (כחול), שהם בינאריים ({0, 1}). לכן, התמונה מוצגת בעיקר בצבע אדום.
הרצועות בנתוני Global Forest Change הן:
| שם הלהקה | תיאור | טווח |
|---|---|---|
| treecover2000 | אחוז צל העצים בפיקסל. | 0 - 100 |
| הפסד | 1 אם אובדן התרחש במהלך תקופת המחקר. | 0 או 1 |
| עלייה | 1 אם חלה עלייה במהלך תקופת המחקר. | 0 או 1 |
| lossyear | השנה שבה התרחש האובדן, באינדקס של שנה אחת משנת 2001, או אפס אם לא התרחש אובדן. | 0 עד 12 |
| first_b30 | הפס האדום של Landsat 7, שנבנה מהפיקסלים התקינים הראשונים בשנת 2000 (או לפני כן, אם לא היו פיקסלים תקינים בשנת 2000). | 0 - 255 |
| first_b40 | הפס הקרוב לאינפרה-אדום של Landsat 7, שנבנה מהפיקסלים התקינים הראשונים בשנת 2000. | 0 - 255 |
| first_b50 | הרצועה הראשונה של אינפרה-אדום בגלים קצרים של Landsat 7, שנבנתה מהפיקסלים התקינים הראשונים בשנת 2000. | 0 - 255 |
| first_b70 | הרצועה השנייה של אינפרה-אדום בגלים קצרים של Landsat 7, שנוצרה מהפיקסלים התקינים הראשונים בשנת 2000. | 0 - 255 |
| last_b30 | הפס האדום של Landsat 7, שנוצר מהפיקסלים התקינים האחרונים בשנת 2012. | 0 - 255 |
| last_b40 | רצועת האינפרה-אדום הקרוב של Landsat 7, שנבנתה מהפיקסלים התקינים האחרונים בשנת 2012. | 0 - 255 |
| last_b50 | הערוץ הראשון של אינפרה-אדום בגלים קצרים של Landsat 7, שנבנה מהפיקסלים התקינים האחרונים משנת 2012. | 0 - 255 |
| last_b70 | הפס השני של אינפרה-אדום בגלים קצרים של Landsat 7, שנבנה מהפיקסלים התקינים האחרונים משנת 2012. | 0 - 255 |
| datamask | אין נתונים (0), פני שטח ממופים (1) ומאגרי מים קבועים (2). | 0, 1, 2 |
כדי להציג את כיסוי היערות בשנת 2000 כתמונה בגווני אפור, אפשר להשתמש בפס treecover2000, שצוין בארגומנט השני של Map.addLayer():
Code Editor (JavaScript)
Map.addLayer(gfc2014, {bands: ['treecover2000']}, 'treecover2000');
התוצאה היא תמונה שדומה לאיור 3.
הנה תמונה שמשתמשת ב-3 רצועות, רצועות Landsat 5, 4 ו-3 לשנת 2015. בשילוב הערוצים הזה, צמחייה בריאה מוצגת בירוק והקרקע מוצגת בסגול-ורוד:
Code Editor (JavaScript)
Map.addLayer( gfc2014, {bands: ['last_b50', 'last_b40', 'last_b30']}, 'false color');
התוצאה אמורה להיראות בערך כמו באיור 4.
אחת מההדמיות היפות של מערך הנתונים Global Forest Change מציגה את היקף היערות בשנת 2000 בירוק, את אובדן היערות באדום ואת הגידול ביערות בכחול. באופן ספציפי, מגדירים את loss כפס הראשון (אדום), את treecover2000 כפס השני (ירוק) ואת gain כפס השלישי (כחול):
Code Editor (JavaScript)
Map.addLayer(gfc2014, {bands: ['loss', 'treecover2000', 'gain']}, 'green');
ערכי הרצועות של האובדן והרווח הם בינאריים, כך שהם בקושי ייראו בתמונה, שאמורה להיראות בערך כמו באיור 5.
אנחנו רוצים שאובדן יערות יוצג באדום בהיר וצמיחת יערות תוצג בכחול בהיר. כדי לתקן את זה, אפשר להשתמש בפרמטר התצוגה החזותית max כדי להגדיר את הטווח שאליו נתוני התמונה נמתחים. שימו לב שהפרמטר max של התצוגה החזותית מקבל רשימה של ערכים, שתואמים לערכים המקסימליים של כל פס:
Code Editor (JavaScript)
Map.addLayer(gfc2014, { bands: ['loss', 'treecover2000', 'gain'], max: [1, 255, 1] }, 'forest cover, loss, gain');
התוצאה אמורה להיראות כמו באיור 6.
התוצאה היא תמונה שבה אזורים ירוקים מייצגים יער, אזורים אדומים מייצגים אובדן יער, אזורים כחולים מייצגים תוספת יער ואזורים בצבע מגנטה מייצגים גם תוספת וגם אובדן. אבל אם מסתכלים מקרוב, רואים שזה לא בדיוק נכון. במקום שההפסד יסומן באדום, הוא מסומן בכתום. זה קורה כי הפיקסלים האדומים הבהירים מתערבבים עם הפיקסלים הירוקים שמתחתיהם, ונוצרים פיקסלים כתומים. באופן דומה, הפיקסלים שבהם יש יער, אובדן ורווח הם ורודים – שילוב של ירוק, אדום בהיר וכחול בהיר. ראו איור 7 להמחשה.
כדי לקבל את התמונה שהובטחה בתחילת המדריך, אפשר ליצור תמונות נפרדות ליער, לאובדן, לרווח וגם לאובדן וגם לרווח. צריך להוסיף כל אחת מהתמונות האלה למפה בסדר שהכי מתאים לתצוגה.
פלטות
כדי להציג כל תמונה בצבע שונה, אפשר להשתמש בפרמטר palette של Map.addLayer() לתמונות עם פס יחיד. פלטות מאפשרות להגדיר את ערכת הצבעים שבה התמונה מוצגת (מידע נוסף על פלטות). זוכרים מהמדריך של Earth Engine API שהצבעים בלוח נמתחים באופן ליניארי ל-min ול-max?
לדוגמה, כדי להשתמש בפלטת צבעים ירוקה להצגת התמונה של היקף היער, אפשר להשתמש ב:
Code Editor (JavaScript)
Map.addLayer(gfc2014, { bands: ['treecover2000'], palette: ['000000', '00FF00'] }, 'forest cover palette');
התוצאה אמורה להיראות כמו באיור 8.
הגדלת התצוגה מאפשרת להבין טוב יותר את הרזולוציה של התמונות. בתמונה 9 מוצג אזור מסביב למריסקל אסטיגריביה בפרגוואי.
התמונה שמוצגת באיור 3 קצת כהה. הבעיה היא שהרצועה treecover2000 היא מסוג נתונים של בייט ([0, 255]), אבל הערכים הם למעשה אחוזים ([0, 100]). כדי להבהיר את התמונה, אפשר להגדיר את הפרמטרים min ו/או max בהתאם. לאחר מכן, לוח הצבעים נמתח בין ערכי הקיצון האלה.
Code Editor (JavaScript)
Map.addLayer(gfc2014, { bands: ['treecover2000'], palette: ['000000', '00FF00'], max: 100 }, 'forest cover percent');
התוצאה אמורה להיראות בערך כמו באיור 9. שימו לב שבדוגמה הזו, רק max מוגדר. כברירת מחדל, הערך של min הוא אפס.
סימון חלקים
בכל התמונות שהוצגו עד עכשיו היו אזורים שחורים גדולים שבהם הנתונים הם אפס. לדוגמה, אין עצים באוקיינוס. כדי להפוך את האזורים האלה לשקופים, אפשר להסתיר את הערכים שלהם. לכל פיקסל ב-Earth Engine יש גם ערך וגם מסכה. התמונה מוצגת עם שקיפות שמוגדרת על ידי המסכה, כאשר אפס הוא שקוף לחלוטין ואחד הוא אטום לחלוטין.
אפשר להסתיר תמונה באמצעות התמונה עצמה. לדוגמה, אם מסתירים את הרצועה treecover2000
באמצעות עצמה, כל האזורים שבהם הכיסוי של היער הוא אפס יהיו שקופים:
Code Editor (JavaScript)
Map.addLayer(gfc2014.mask(gfc2014), { bands: ['treecover2000'], palette: ['000000', '00FF00'], max: 100 }, 'forest cover masked');
התוצאה אמורה להיראות כמו באיור 10.
דוגמה
עכשיו אפשר ליצור תצוגה חזותית של נתוני Hansen, כמו זו שמופיעה בתחילת המדריך. בדוגמה הזו, אנחנו משלבים את כל מה שלמדנו, עם הבדל קטן אחד. במקום לציין את הפרמטר bands בקריאה ל-Map.addLayer, אנחנו יוצרים תמונות חדשות באמצעות select():
Code Editor (JavaScript)
var treeCover = gfc2014.select(['treecover2000']); var lossImage = gfc2014.select(['loss']); var gainImage = gfc2014.select(['gain']); // Add the tree cover layer in green. Map.addLayer(treeCover.updateMask(treeCover), {palette: ['000000', '00FF00'], max: 100}, 'Forest Cover'); // Add the loss layer in red. Map.addLayer(lossImage.updateMask(lossImage), {palette: ['FF0000']}, 'Loss'); // Add the gain layer in blue. Map.addLayer(gainImage.updateMask(gainImage), {palette: ['0000FF']}, 'Gain');
התוצאה אמורה להיראות בערך כמו באיור 11.
שימו לב שיש שלוש קריאות ל-addLayer(). כל קריאה ל-addLayer() מוסיפה שכבה למפה. כדי לראות את השכבות האלה, מעבירים את העכבר מעל הלחצן Layers בפינה הימנית העליונה של המפה. אפשר להפעיל או להשבית כל שכבה באמצעות תיבת הסימון שלצידה, ואפשר לשנות את האטימות של השכבה באמצעות פס ההזזה שלצד שם השכבה.
אנחנו כמעט יכולים ליצור את התמונה שמוצגת בתחילת המדריך. עם זאת, השכבה שמציגה את הפיקסלים עם אובדן וגם עם רווח חסרה. הוא חסר כי אנחנו צריכים לדעת איך לבצע חישובים מסוימים על ערוצי תמונה לפני שנוכל לחשב אילו פיקסלים מראים גם אובדן וגם רווח. זה הנושא של החלק הבא.