מבוא ל-JavaScript ב-Earth Engine

המדריך הזה כולל מספיק מידע על JavaScript כדי שתוכלו להתחיל לכתוב סקריפטים של Earth Engine. מדריכים מקיפים יותר ל-JavaScript זמינים במשאבים האלה למפתחים של Mozilla. כדי לקבל מבוא לתכנות עם דוגמאות ב-JavaScript, אפשר לעיין במאמר Eloquent JavaScript. הצעות לסגנון קידוד ב-JavaScript מופיעות במדריך הסגנון של Google JavaScript. במדריך הזה תכתבו JavaScript בכלי לעריכת קוד של Earth Engine. לפני שמתחילים, כדאי לעיין במדריך לעורך הקוד כדי להכיר את סביבת עורך הקוד.

שלום עולם!

הגיע הזמן לכתוב את קוד ה-JavaScript הראשון שלך ל-Earth Engine! בדפדפן Chrome, נכנסים לכתובת code.earthengine.google.com ומעתיקים את הקוד הבא אל עורך הקוד:

עורך הקוד (JavaScript)

print('Hello World!');

לוחצים על Run ורואים שהטקסט 'Hello world!' מודפס בכרטיסייה Console. השורה שלמעלה היא הצהרת JavaScript. ב-JavaScript, משפטים מסתיימים בנקודה ופסיק. תוכניות Earth Engine מורכבות מקבוצה של הצהרות כמו זו. כדי למנוע את הרצת הקוד בלי למחוק אותו, אפשר להוסיף לו הערות. אחת הדרכים להוסיף הערות לקוד היא להוסיף שני קווים נטויים // לפני הקוד שלא רוצים להפעיל. לדוגמה:

עורך הקוד (JavaScript)

// print('Hello World!');

מומלץ להוסיף הרבה הערות לקוד כדי לתאר את הפעולות שאתם מנסים לבצע. כדאי גם למחוק קוד עם הערות שלא מבצע יותר פעולות. שתי השיטות האלה ישפרו את קריאות הקוד.

סוגי נתונים בסיסיים ב-JavaScript

מיתרים

שימוש במשתנים לאחסון אובייקטים ופרימיטיבים עוזר לשפר את קריאות הקוד. לדוגמה, משתנה שמאחסן אובייקט מחרוזת מוגדר על ידי מירכאות יחידות ' או כפולות " (אבל לא משלבים ביניהן), כאשר מירכאות יחידות מקבלות עדיפות. יוצרים מחרוזת חדשה ומאחסנים אותה במשתנה שנקרא greetString: <x0A> <x0A> <x0A>

עורך הקוד (JavaScript)

// Use single (or double) quotes to make a string.
var greetString = 'Ahoy there!';
// Use parentheses to pass arguments to functions.
print(greetString);

מספרים

שימו לב: משתנים מוגדרים באמצעות מילת המפתח var. משתנים יכולים גם לאחסן מספרים:

עורך הקוד (JavaScript)

// Store a number in a variable.
var number = 42;
print('The answer is:', number);

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

רשימות

הגדרת רשימות באמצעות סוגריים מרובעים []. רשימת מספרים, לדוגמה:

עורך הקוד (JavaScript)

// Use square brackets [] to make a list.
var listOfNumbers = [0, 1, 1, 2, 3, 5];
print('List of numbers:', listOfNumbers);

רשימות יכולות גם לאחסן מחרוזות או אובייקטים אחרים. לדוגמה:

עורך הקוד (JavaScript)

// Make a list of strings.
var listOfStrings = ['a', 'b', 'c', 'd'];
print('List of strings:', listOfStrings);

אובייקטים

אובייקטים ב-JavaScript הם מילונים של זוגות key: value. יוצרים אובייקט (או מילון) באמצעות סוגריים מסולסלים {}, לדוגמה:

עורך הקוד (JavaScript)

// Use curly brackets {} to make a dictionary of key:value pairs.
var object = {
  foo: 'bar',
  baz: 13,
  stuff: ['this', 'that', 'the other thing']
};
print('Dictionary:', object);
// Access dictionary items using square brackets.
print('Print foo:', object['foo']);
// Access dictionary items using dot notation.
print('Print stuff:', object.stuff);

שימו לב שאפשר לקבל ערך ממילון על ידי ציון המפתח. בדוגמה הזו אפשר לראות איך עושים את זה לאובייקטים של JavaScript. בהמשך נסביר איך עושים את זה למילונים שנמצאים בשרת Earth Engine.

פונקציות

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

עורך הקוד (JavaScript)

var myFunction = function(parameter1, parameter2, parameter3) {
  statement;
  statement;
  statement;
  return statement;
};

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

עורך הקוד (JavaScript)

// The reflect function takes a single parameter: element.
var reflect = function(element) {
  // Return the argument.
  return element;
};
print('A good day to you!', reflect('Back at you!'));

זוהי דוגמה לפונקציה בהגדרת המשתמש. יש גם הרבה פונקציות מובנות של Earth Engine. בכרטיסייה Docs של עורך הקוד אפשר לקרוא על הפונקציות המובנות האלה. זוהי דוגמה פשוטה מאוד לפונקציה של Earth Engine:‏

עורך הקוד (JavaScript)

var aString = ee.Algorithms.String(42);

בקטע הבא מוסבר על אובייקטים ושיטות ב-Earth Engine.