כלי שורת הפקודה

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

    earthengine

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

    earthengine command -h

בפעם הראשונה שמתקינים את Python API, צריך להיכנס באמצעות הפקודה authenticate שמתוארת בהמשך. בקטעים הבאים מפורטות הפקודות הזמינות.

פרטי כניסה לחשבון שירות

כדי להשתמש ב-CLI עם פרטי הכניסה של חשבון שירות, צריך להשתמש בדגל service_account_file כדי להפנות לקובץ JSON שמכיל את המפתח של חשבון השירות.

    earthengine --service_account_file=service_account_creds.json

שימוש ב-Colab

כלי שורת הפקודה של Earth Engine מותקן מראש ומאפשר להשתמש בו ב-Google Colab.

אימות

אימות בכל סשן חדש ב-Colab או אם התוקף של המכונה הווירטואלית פג בגלל חוסר פעילות (פרטי הכניסה לא נשמרים בין סשנים).

מייבאים את ספריית הלקוח של Python ומפעילים את תהליך האימות באמצעות קריאה ל-ee.Authenticate(). פועלים לפי ההנחיות כדי להשלים את האימות. auth_mode שמוגדר כברירת מחדל ב-Colab הוא colab. אפשרויות אחרות מפורטות במדריך לאימות.

import ee
ee.Authenticate()

ביצוע פקודה

כדי להריץ כלי שורת פקודה, כמו Earth Engine CLI, צריך להוסיף קריאות פקודה עם סימן קריאה.

!earthengine -h

הגדרת פרויקט ב-Cloud

אפשר להשתמש באפשרות --project כדי להגדיר פרויקט ב-Cloud לכל פקודה earthengine בנפרד.

!earthengine --project my-project <command>

לחלופין, אפשר להגדיר פרויקט ברירת מחדל שכל הקריאות ל-earthengine ישתמשו בו באמצעות הפקודה set_project. הפרויקט יתווסף לקובץ פרטי הכניסה (~/.config/earthengine/credentials) וייעשה בו שימוש בפקודות הבאות, אלא אם תשתמשו באפשרות --project כדי לשנות את ההגדרה. הגדרת פרויקט ברירת מחדל לכל סשן חדש ב-Colab, או אם תוקף המכונה הווירטואלית יפוג בגלל חוסר פעילות (פרטי הכניסה לא נשמרים בין סשנים).

!earthengine set_project my-project

הפניות לפקודות

אימות

אימות כלי שורת הפקודה וספריית הלקוח של Python ב-Earth Engine. דוגמה:

    earthengine authenticate

ב-Earth Engine נעשה שימוש בפרוטוקול OAuth 2.0 לאימות לקוחות. הפקודה earthengine authenticate תנחה אתכם בתהליך האימות באמצעות דפדפן האינטרנט.

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

acl

הדפסה או עדכון של רשימת בקרת הגישה (ACL) של נכס ב-Earth Engine. רשימת ה-ACL קובעת מי יכול לקרוא או לכתוב בנכס. דוגמאות:

    earthengine acl get projects/my-project/assets/asset_id
    earthengine acl set public projects/my-project/assets/asset_id
    earthengine acl ch -u username@gmail.com:R projects/my-project/assets/asset_id

פקודת המשנה get מדפיסה תיאור JSON של רשימת ה-ACL. הפקודה המשנית set מגדירה רשימת ACL שסופקה בקובץ באותו פורמט JSON. כדי להעתיק רשימת ACL מנכס אחד לנכסים אחרים, שומרים את הפלט מ-get ומספקים אותו ל-set.

פקודת המשנה set מקבלת גם שני שמות מיוחדים של רשימות ACL:

  • private: הסרת ההרשאות מכל המשתמשים מלבד הבעלים.
  • public: הקצאת הרשאת קריאה לכל המשתמשים.

הפקודה המשנית ch מאפשרת לבצע שינויים ספציפיים ברשימת ACL. כדי להעניק הרשאת קריאה, מציינים -u username@gmail.com:R, כדי להעניק הרשאת כתיבה מציינים -u username@gmail.com:W, וכדי להסיר את ההרשאות של משתמש מציינים -d username@gmail.com. אפשר להשתמש במזהה המשתמש המיוחד AllUsers כדי להעניק או לבטל הרשאת קריאה לכל המשתמשים או מהם. (שימו לב: ביטול ההרשאות של AllUsers לא יבטל הרשאות נוספות שהקציתם למשתמשים ספציפיים).

נכס

הדפסה או עדכון של מטא-נתונים שמשויכים לנכס ב-Earth Engine. דוגמאות:

    earthengine asset info projects/my-project/assets/asset_id
    earthengine asset set -p name=value projects/my-project/assets/asset_id

הפקודה המשנית info מדפיסה מידע מפורט על הנכס, כולל המטא-נתונים שלו, בפורמט JSON. פקודת המשנה set מגדירה מאפייני מטא-נתונים ספציפיים בנכס.

הערכים של מאפייני המטא-נתונים שאתם מגדירים יכולים להיות מספרים או מחרוזות. כשמגדירים שמות של מאפיינים באמצעות הדגל --property או -p, צריך להפריד בין שם המאפיין לערך שלו באמצעות סימן שווה. סוג הנתונים מזוהה באופן אוטומטי, או שאפשר לציין אותו באופן מפורש על ידי הוספת הסיומת (string),‏ (number) או (date) לשם הנכס. לדוגמה, הקוד הבא מגדיר מאפיין בעל ערך מחרוזת עם הערך "42":

    earthengine asset set -p '(string)name=42' projects/my-project/assets/asset_id

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

כדי למחוק נכס, מגדירים אותו כ-null ללא סוג:

    earthengine asset set -p name=null projects/my-project/assets/asset_id

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

    YYYY-MM-DD
    YYYY-MM-DDThh:mm:ss
    YYYY-MM-DDThh:mm:ss.f

ההנחה היא שאזור הזמן הוא UTC. אפשר להגדיר את המאפיינים המיוחדים של שעת ההתחלה ושעת הסיום באמצעות הדגלים --time_start ו---time_end:

    earthengine asset set --time_start 1978-10-15T12:34:56 projects/my-project/assets/asset_id

cp

העתקת נכס. דוגמה:

    earthengine cp projects/my-project/assets/asset_id projects/my-project/assets/new_asset_id

create

יצירת תיקיות ואוספים חדשים של תמונות. דוגמה:

    earthengine create folder projects/my-project/assets/folder_id
    earthengine create collection projects/my-project/assets/collection_id

משתמשים בפקודת המשנה folder כדי ליצור תיקיות, ובפקודה collection כדי ליצור אוספים של תמונות. אפשר לציין את האפשרות -p כדי ליצור באופן רפלוקטיבי תיקיות הורה לפי הצורך. כברירת מחדל, לתיקיות ולתמונות חדשות יש רשימות ACL פרטיות.

ls

הצגת רשימת התכנים של תיקייה אחת או יותר או של אוסף אחד או יותר. דוגמה:

    earthengine ls users/username

האפשרות -l מבקשת פורמט ארוך עם מידע נוסף על כל נכס (כרגע רק הסוג שלו). אפשר לציין את הערך --max_items number (או -m בקיצור) כדי להגביל את מספר הפריטים מכל תיקייה או אוסף שציינתם ברשימה:

    earthengine ls -m 10 projects/my-project/assets/my_large_collection

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

מודל

כלי לטיפול במודלים שנשמרו ב-TensorFlow.

model prepare

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

    earthengine model prepare my_source_dir my_dest_dir '{"Conv2D:0":"my_input_band"}' '{"Sigmoid:0":"my_output_band"}'

כאן אפשר לקרוא מידע נוסף על המודלים של AI Platform. דוגמה מלאה מופיעה כאן.

mv

העברה או שינוי שם של נכס. דוגמה:

    earthengine mv projects/my-project/assets/asset_id projects/my-project/assets/new_asset_id

project_config

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

get

כדי להציג את ההגדרות של פרויקט, משתמשים בפקודת המשנה get:

    earthengine alpha project_config get

אם יש לכם הרשאה להציג את ההגדרות של משימת האצווה בפרויקט, הפלט יכלול את הפרטים הבאים:

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

בנוסף, אם יש לכם הרשאה להציג את הגדרות התוכנית, הפלט יכלול את הפרטים הבאים:

  • planMaxConcurrentExports, מספר שמציין את המספר המקסימלי של משימות באצווה שיכולות לפעול במקביל בכל המשתמשים והפרויקטים שמשתמשים בחשבון לחיוב.

הוגדר

כדי לעדכן את ההגדרות של הפרויקט, משתמשים בפקודת המשנה set. אפשר להגדיר את ההגדרות הבאות:

לדוגמה, כדי להגדיר פרויקט כך שיאפשר רק 10 משימות לפעול בו-זמנית:

    earthengine alpha project_config set --max_concurrent_exports=10

הפלט מציג את הגדרות הפרויקט המעודכנות, זהות לאלה שמוחזרות על ידי get.

מידע נוסף על מקביליות של משימות באצווה זמין בדף מכסות ב-Earth Engine.

rm

מחיקה של נכס אחד או יותר. דוגמה:

    earthengine rm projects/my-project/assets/asset_id
    earthengine rm -r projects/my-project/assets/folder_id

אפשר להשתמש בדגל -r כדי למחוק את התוכן של תיקייה או אוסף באופן רפלוקטיבי. כדי למנוע טעויות כשאתם מוחקים כמה נכסים, תוכלו להשתמש בדגל --dry_run כדי לוודא בדיוק מה יימחק בלי למחוק בפועל אף נכס.

set_project

הגדרת הפרויקט ב-Google Cloud דרכו מנותבות בקשות המחשוב.

    earthengine set_project foo-project

צריך להריץ את הפקודה הזו לפני שמריצים פקודות שדורשות פונקציונליות של Cloud, למשל model.

משימה

הדפסת מידע על משימות ממושכות או ניהול שלהן. דוגמאות:

    earthengine task list
    earthengine task list -l
    earthengine task info TASK_ID
    earthengine task cancel TASK_ID

הפקודה המשנית list מציגה מידע בסיסי על המשימות ששלחתם לאחרונה. האפשרות -l מבקשת פורמט ארוך עם מידע נוסף על כל משימה. הפקודה המשנית info מדפיסה מידע מפורט על משימות ספציפיות. פקודת המשנה cancel מבטלת משימה אחת או יותר שפועלות.

upload

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

תמונה

כדי להעלות נכס תמונה באמצעות הגדרות ברירת המחדל:

    earthengine upload image --asset_id=projects/my-project/assets/asset_id gs://bucket/image.tif

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

אפשר לציין את מדיניות הפחתת הפירמידה באמצעות הדגל --pyramiding_policy, שאפשר להגדיר לאחד מהערכים הבאים: mean (ברירת המחדל), sample, mode, min או max. ההגדרה הזו קובעת איך Earth Engine תיצור את הפירמידה של הגרסאות ברזולוציה נמוכה יותר של התמונה:

    earthengine upload image --asset_id=projects/my-project/assets/asset_id --pyramiding_policy=sample gs://bucket/image.tif

אפשר להשתמש ב---last_band_alpha כדי לציין שצריך לקחת את המסכה של התמונה מערוץ אלפא בפס האחרון:

    earthengine upload image --asset_id=projects/my-project/assets/asset_id --last_band_alpha gs://bucket/image.tif

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

    earthengine upload image --asset_id=users/myuser/asset --nodata_value=255 gs://bucket/image.tif

אפשר גם לציין מאפייני מטא-נתונים להגדרה בנכס באמצעות אותם דגלים שמקבלת הפקודה asset set שמתוארת למעלה. האפשרויות מתוארות גם במדריך Image Manifest.

שולחן

כדי להעלות קובץ Shapefile,‏ CSV או TFRecord מ-Google Cloud Storage לנכס טבלה ב-Earth Engine, אפשר להשתמש באחת מהשיטות הבאות:

    earthengine upload table --asset_id=projects/my-project/assets/myUploadedShapefile gs://bucket/foo.shp
    earthengine upload table --asset_id=projects/my-project/assets/myUploadedCSV gs://bucket/foo.csv
    earthengine upload table --asset_id=projects/my-project/assets/myUploadedTFRecord gs://bucket/foo.tfrecord

יש הרבה אפשרויות לגבי האופן שבו מתבצעת הפרשנות של קובצי CSV ו-TFRecord. רשימה מלאה של אפשרויות העלאה של טבלאות מפורטת במדריך Table Manifest או באפשרויות הבאות:

    earthengine upload table -h

external_image

כדי ליצור נכס שמבוסס על קובץ אימג' חיצוני, מריצים את הפקודה upload_image עם מניפסט:

earthengine alpha upload external_image --manifest /tmp/foo.json

דוגמה למניפסט:

{
  "name": "projects/{project}/assets/cogdemo1",
  "tilesets": [
    { "id": "0", "sources": [{ "uris": ["gs://ee-docs-demos/COG_demo.tif"] }] }
  ],
  "properties": {
    "source": "https://code.earthengine.google.com/d541cf8b268b2f9d8f834c255698201d"
  },
  "startTime": "2016-01-01T00:00:00.000000000Z",
  "endTime": "2016-12-31T15:01:23.000000000Z"
}

למידע נוסף על בניית המניפסט, אפשר לעיין במדריך Cloud GeoTIFF ובמדריך Image Manifest.