המחשה של תמונות ופסים של תמונות

עכשיו אתם מוכנים להתחיל לכתוב JavaScript ב-Earth Engine. מתחילים בהעתקת הקוד הבא אל הכלי לעריכת קוד:

עורך הקוד (JavaScript)

// Instantiate an image with the Image constructor.
var image = ee.Image('CGIAR/SRTM90_V4');

// Zoom to a location.
Map.setCenter(-112.8598, 36.2841, 9); // Center on the Grand Canyon.

// Display the image on the map.
Map.addLayer(image);

לוחצים על הלחצן Run (הפעלה) בחלק העליון של כלי עריכת הקוד, ורואים שתמונה אפורה מאוד מופיעה במפה. אל דאגה, בקרוב תדעו איך לשפר את המראה. אם אתם לא מכירים את התחביר של חלק כלשהו בדוגמה הזו, כדאי לעיין במדריך בנושא JavaScript ל-Earth Engine.

Image Constructor

הדבר החדש הראשון בדוגמה הזו הוא הבונה של התמונה ee.Image(). הארגומנט שמועבר לקונסטרוקטור הוא מזהה המחרוזת של תמונה בקטלוג הנתונים של Earth Engine. (בכרטיסייה Docs, בצד ימין של הכלי לעריכת קוד, מופיעה רשימה מלאה של הארגומנטים האפשריים של בנאי התמונות. הכרטיסייה Docs מייצגת את המידע העדכני ביותר על היכולות של Earth Engine.

כדי למצוא מזהה תמונה, מחפשים בקטלוג הנתונים של Earth Engine באמצעות כלי החיפוש בחלק העליון של כלי עריכת הקוד. לדוגמה, מקלידים 'גובה' בשדה החיפוש ורואים שמוחזרת רשימה של נתוני רסטר. כדי לראות מידע נוסף על מערך הנתונים, לוחצים על הרשומה 'SRTM Digital Elevation Data Version 4' (נתוני גובה דיגיטליים של SRTM, גרסה 4). בצד שמאל של תיאור מערך הנתונים יש שדה מזהה תמונה. שימו לב שמזהה התמונה בדוגמה מועתק ממזהה התמונה שמוצג בתיאור מערך הנתונים.

אפשרות נוספת במקום להעתיק ולהדביק מזהי תמונות היא להשתמש בלחצן ייבוא בתיאור של מערך הנתונים או בקישור ייבוא בצד שמאל של תוצאות החיפוש. אם לוחצים על הקישור או על הלחצן לייבוא, נוצר משתנה באופן אוטומטי בקטע מיוחד שנקרא Imports (ייבוא) בחלק העליון של הסקריפט. כדי לשנות את השם של המשתנה, לוחצים על השם שלו בקטע imports.

הגדרת המפה

החלק החדש השני בדוגמה הזו הוא הקריאה Map.setCenter(). השיטה הזו באובייקט Map, שמייצג את תצוגת המפה בעורך הקוד, ממקמת את המפה במרכז לפי קו האורך, קו הרוחב (במעלות עשרוניות) ורמת הזום שצוינו, כאשר 1 הוא מצב מוקטן שבו מוצג כל פני השטח של כדור הארץ. מספרים גדולים יותר יגדילו את התצוגה משם. כדי לראות את כל השיטות באובייקט Map, בודקים את הקטע Map בכרטיסייה Docs בצד ימין של עורך הקוד.

הוספת שכבה למפה

בשורה האחרונה בדוגמה כתוב: צריך להשתמש בשיטה Map של האובייקט addLayer() כדי להוסיף תמונה לתצוגת המפה בכלי לעריכת קוד.

מעולה! יצרתם את הסקריפט הראשון שלכם ב-Earth Engine. בקטע הבא נסביר איך לשפר את התמונה.

הערה: תמונות ב-Earth Engine

תמונות ב-Earth Engine (פרטים נוספים זמינים בדף הזה) מורכבות מרצועה אחת או יותר. לכל פס בתמונה יש שם משלו, ערכי פיקסלים, רזולוציית פיקסלים והיטל. כפי שתגלו בקרוב, לתמונה של SRTM יש פס אחד: 'elevation'.

כשמוסיפים תמונה למפה באמצעות Map.addLayer(), מערכת Earth Engine צריכה לקבוע איך למפות את הערכים בפסי התמונה לצבעים בתצוגה. אם מוסיפים למפה תמונה עם פס אחד, כברירת מחדל Earth Engine מציג את הפס בגווני אפור, כאשר הערך המינימלי מוקצה לשחור והערך המקסימלי מוקצה ללבן. אם לא מציינים מה צריך להיות המינימום והמקסימום, Earth Engine ישתמש בערכי ברירת מחדל. לדוגמה, התמונה שהוספתם למפה מוצגת כתמונה בגווני אפור שנמתחה לטווח המלא של הנתונים, או כמספר שלם חתום של 16 ביט [‎-32768, 32767]. (כברירת מחדל, הטווח של רצועות float הוא [0, 1] והטווח של רצועות byte הוא [0, 255]).

כדי לגלות את סוג הנתונים של התמונה, מדפיסים אותה ובודקים את אובייקט התמונה בכרטיסייה Console. לדוגמה, מדביקים את הקוד הבא אחרי הקוד הקודם:

עורך הקוד (JavaScript)

print('SRTM image', image);

כשלוחצים על 'הפעלה', שימו לב שאובייקט מופיע במסוף. כדי לבדוק את מאפייני האובייקט, מרחיבים אותו בלחיצה על החץ () שמשמאל לאובייקט או למאפיין. מרחיבים את אובייקט התמונה, את המאפיין bands, את רצועת הגובה (elevation) באינדקס 0 ואת המאפיין data_type של רצועת הגובה כדי לגלות שזהו סוג הנתונים signed int16.

התאמה אישית של התצוגה החזותית של שכבה

כדי לשנות את אופן המתיחה של הנתונים, אפשר לספק פרמטר אחר לקריאה Map.addLayer(). בפרט, הפרמטר השני, visParams, מאפשר לכם לציין את ערכי המינימום והמקסימום שיוצגו. כדי לגלות באילו ערכים כדאי להשתמש, מפעילים את הכרטיסייה Inspector ולוחצים על המפה כדי לקבל מושג לגבי טווח ערכי הפיקסלים. אפשרות אחרת היא להשתמש בכלי לניהול שכבות כדי למתוח את הנתונים באופן אינטראקטיבי, ואז לבחון את הערכים המינימליים והמקסימליים שמתאימים למתיחות של אחוזונים או סטיות תקן. נניח שבאמצעות ניסוי כזה, קבעתם שהנתונים צריכים להיות מורחבים לטווח [0, 3000]. כדי להציג את התמונה באמצעות הטווח הזה, משתמשים ב:

עורך הקוד (JavaScript)

Map.addLayer(image, {min: 0, max: 3000}, 'custom visualization');

שימו לב שהפרמטר visParams הוא אובייקט עם מאפיינים שמציינים את min ואת max. (מידע נוסף על אובייקטים של JavaScript זמין במדריך ל-JavaScript או במאמר הזה). שימו לב שהפרמטר השלישי של Map.addLayer() הוא שם השכבה שמוצג בכלי לניהול שכבות. התוצאה אמורה להיראות כמו באיור 1. מעבירים את העכבר מעל התיבה Layers (שכבות) בצד שמאל כדי לראות את ההשפעה של שינוי השם של השכבה.

Tutorial_api_01_elevation.png
איור 1. תמונת גובה כגווני אפור, מתוחה לטווח [0, 3000].

כדי להציג פס יחיד באמצעות פלטת צבעים, מוסיפים מאפיין palette לאובייקט visParams:

עורך הקוד (JavaScript)

Map.addLayer(image, {min: 0, max: 3000, palette: ['blue', 'green', 'red']},
    'custom palette');

התוצאה אמורה להיראות כמו באיור 2.

Tutorial_api_02_palette.png
איור 2. תמונה של גובה פני השטח כשיפוע צבעים מכחול לאדום, שנמתח לטווח [0, 3000].

סטייה מהנושא: פלטות

לוחות צבעים מאפשרים להגדיר את ערכת הצבעים לתמונות עם פס אחד. פלטה היא רשימה של מחרוזות צבעים שמופרדות באמצעות פסיקים. הצבעים האלה עוברים אינטרפולציה לינארית בין ערכי המקסימום והמינימום בפרמטרים של הוויזואליזציה (או ערכי ברירת המחדל בהתאם לסוג הפס, כפי שמתואר למעלה). לדוגמה, פיקסלים שערכם קטן מהערך המינימלי או שווה לו יוצגו בצבע הראשון ברשימה, ופיקסלים שערכם גדול מהערך המקסימלי או שווה לו יוצגו בצבע האחרון ברשימה. צבעי הביניים נמתחים באופן לינארי לערכי פיקסלים של ביניים.

הצבעים מוגדרים באמצעות סכמת ערכי הצבעים של CSS, שהיא תקן אינטרנט (מידע נוסף זמין במאמר הזה). אפשר לציין צבעים לפי שם או כמחרוזות הקסדצימליות שמציינות את השילוב של אדום, ירוק וכחול. הערך הנמוך ביותר בכל אחד משלושת המיקומים הוא 00 (שמייצג את המספר העשרוני 0), והערך הגבוה ביותר הוא FF (שמייצג את המספר העשרוני 255). המחרוזת '000000' מייצגת את הצבע שחור, 'FFFFFF' מייצגת את הצבע לבן, 'FF0000' מייצגת את הצבע אדום, '00FF00' מייצגת את הצבע ירוק ו-'0000FF' מייצגת את הצבע כחול. פרטים נוספים זמינים בקטע בנושא פלטות צבעים. אפשר להשתמש בתיאורי שכבות עם סגנון כדי להגדיר מתיחות אחרות, כמו שמתואר בקטע הזה.

בהמשך המדריך הזה נסביר איך להציג תמונות מרובות פסים. אבל לפני כן, כדאי לעבור לדף הבא כדי לקרוא על ביצוע חישובים באמצעות תמונות.