הכלי 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
!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
. אפשר להגדיר את ההגדרות הבאות:
max_concurrent_exports
, כדי לקבוע את רמת העבודה במקביל של משימות האצווה- נדרשות הרשאות מתאימות
לדוגמה, כדי להגדיר פרויקט כך שיאפשר רק 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.