התקנת NPM

‫Google Earth Engine JavaScript API מופץ כחבילת npm שמתארחת ב-GitHub. ההוראות הבאות מספקות סקירה כללית של התקנת Google Earth Engine JavaScript API. כדי להשתמש ב-Google Earth Engine JavaScript API, צריך להתקין את ספריית הלקוח ואת התלות שלה במחשב, ואז להגדיר פרטי כניסה לאימות.

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

התקנה של ספריית הלקוח

1. הגדרת Node.js ו-npm

npm הוא מנהל חבילות ל-JavaScript ול-Node.js. מוודאים שיש לכם Node.js בגרסה 6 ומעלה ו-npm בגרסה 3 ומעלה.

node --version
npm --version

אם צריך, מתקינים את שניהם באמצעות מנהל ההתקנה הרשמי של הפלטפורמה.

2. התקנה של ספריית הלקוח של Earth Engine

אפשר להתקין את ספריית הלקוח מ-npm באמצעות הפקודה הבאה:

npm install --save @google/earthengine

אחרי ההתקנה, ספריית הלקוח ממוקמת בספריית הפרויקט הנוכחית: node_modules/@google/earthengine/*. בפרויקטים עתידיים, מתקינים את הלקוח באותו אופן.

3. שימוש בספריית הלקוח באפליקציה

בקוד האפליקציה, צריך להגדיר את Earth Engine API:

var ee = require('@google/earthengine');

עדכון ספריית הלקוח

משתמשים ב-npm כדי לעדכן את ספריית הלקוח לגרסה האחרונה. מספריית הפרויקט הנוכחית:
npm update @google/earthengine

מידע נוסף על עדכון ספריות באמצעות npm

הסרת ההתקנה של ספריית הלקוח

כדי להסיר את התוכנה באמצעות מנהל החבילות npm, מריצים את הפקודה הבאה:

npm uninstall --save @google/earthengine

הפעולה הזו מסירה את node_modules/@google/earthengine מהפרויקט הנוכחי, אבל היא לא משפיעה על פרויקטים בספריות אחרות באותו מחשב.

יצירת פרויקט בענן והפעלת Earth Engine API

כדי ליצור פרויקט ב-Cloud ולהפעיל את Earth Engine API, פועלים לפי ההוראות האלה.

הגדרת פרטי אימות

ממשקי Earth Engine API משתמשים בפרוטוקול OAuth 2.0 לאימות של לקוחות מבוססי-דפדפן. לצורך אימות בצד השרת ב-Node.js, מומלץ להשתמש בחשבונות שירות. אפליקציות אינטרנט יכולות להשתמש בכל אחת מהגישות האלה, ולכל אחת מהן יש יתרונות וחסרונות שמפורטים בהמשך.

אימות מצד הלקוח באמצעות OAuth

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

אחרי יצירת מזהה לקוח OAuth 2.0, מבצעים אימות כמו שמוצג בהמשך (מחליפים את my-project במזהה פרויקט Google Cloud שלכם):

// Load client library.
var ee = require('@google/earthengine');

// Initialize client library and run analysis.
var initialize = function() {
  ee.initialize(null, null, function() {
    // ... run analysis ...
  }, function(e) {
    console.error('Initialization error: ' + e);
  }, null, 'my-project');
};

// Authenticate using an OAuth pop-up.
ee.data.authenticateViaOauth(YOUR_CLIENT_ID, initialize, function(e) {
  console.error('Authentication error: ' + e);
}, null, function() {
  ee.data.authenticateViaPopup(initialize);
});

אימות בצד השרת באמצעות חשבון שירות

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

ב-Node.js, ספריית הלקוח מספקת רק אימות בצד השרת.

אחרי שיוצרים חשבון שירות חדש, משתמשים במפתח הפרטי מסוג JSON כדי לבצע אימות (מחליפים את my-project במזהה פרויקט Google Cloud):

// Require client library and private key.
var ee = require('@google/earthengine');
var privateKey = require('./.private-key.json');

// Initialize client library and run analysis.
var runAnalysis = function() {
  ee.initialize(null, null, function() {
    // ... run analysis ...
  }, function(e) {
    console.error('Initialization error: ' + e);
  }, null, 'my-project');
};

// Authenticate using a service account.
ee.data.authenticateViaPrivateKey(privateKey, runAnalysis, function(e) {
  console.error('Authentication error: ' + e);
});

בדיקת ההטמעה

כדי לבדוק שהאימות הוגדר בצורה נכונה, מריצים את הסקריפט הבא (מחליפים את my-project במזהה הפרויקט ב-Google Cloud):

var ee = require('@google/earthengine');

// Authenticate using one (but not both) of the methods below.
ee.data.authenticateViaOauth(YOUR_CLIENT_ID);
ee.data.authenticateViaPrivateKey(YOUR_PRIVATE_KEY);

ee.initialize(null, null, null, null, null, 'my-project');

// Run an Earth Engine script.
var image = new ee.Image('srtm90_v4');
image.getMap({min: 0, max: 1000}, function(map) {
  console.log(map);
});

אם הכל מותקן בצורה נכונה, המטא-נתונים של התמונה אמורים להיות מודפסים.