ניהול נכסים

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

סוגי נכסים

ב-Earth Engine יש פורמטים שונים של נכסים לסוגים שונים של נתונים, וגם רכיבי מאגר לארגון.

סוגי נכסים
Image רסטר – ייצוג של מידע גיאוגרפי שמבוסס על רשת, שבו כל תא ברשת מכיל ערך שתואם למיקום ספציפי על פני כדור הארץ.
ImageCollection אוסף של תמונות רסטר קשורות שמהוות פסיפס או סדרה כרונולוגית. הוא דומה מבחינה פונקציונלית לתיקייה, אבל אפשר לייבא אותו ל-Earth Engine כאובייקט ee.ImageCollection שכולל קבוצה של שיטות לסינון ולניתוח.
Table מבנה נתונים של טבלה שמורכב מתכונות וקטור (שורות), שכל אחת מכילה סדרה של נכסים (עמודות). הוא מיוצג על ידי האובייקט ee.FeatureCollection, שכולל קבוצה של שיטות לסינון ולניתוח.
Classifier מודל למידת מכונה שהוכשרה ב-Earth Engine. הוא מיוצג על ידי האובייקט ee.Classifier, שכולל קבוצה של שיטות להטמעה ולניתוח.
FeatureView תצוגה חזותית של טבלה לשימוש באפליקציות של Earth Engine.
Folder מאגר לנכסים ולתיקיות נוספות שיעזרו לכם לארגן את הנכסים.

ארגון הנכסים

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

Root

הנכסים הם בבעלות של פרויקט ב-Cloud. שם הפרויקט מגדיר את שורש הספרייה של הנכסים. לדוגמה, השורש של my-project הוא projects/my-project/assets. כל הנכסים ששייכים ל-my-project נמצאים בתיקייה projects/my-project/assets או בתיקיית משנה (או ב-ImageCollection) בתוכה.

ספרייה

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

  • folder_dataprojects/my-project/assets/
    • folder folder-name/‎
      • photo שם-תמונה
      • שם הטבלה view_comfy
      • satellite featureview-name
      • bubble_chart classifier-name
      • photo_library imagecollection-name/‎
        • photo image-name-1
        • photo image-name-2

מזהה נכס

ב-Earth Engine נעשה שימוש במזהי נכסים כדי להפנות לנתונים גם בסקריפטים וגם בפעולות בשורת הפקודה. הם מגדירים את מיקומי הנכסים באמצעות קווים נטויים (/) כמפרידים בין ספריות. לדוגמה, הערך projects/my-project/assets/my-asset מציין נכס בשם my-asset שנמצא ברמה הבסיסית (root) של my-project. בהמשך מופיעה דוגמה לשימוש במזהה הזה כדי לקבל מידע על הנכס.

Python

print(ee.data.getAsset('projects/my-project/assets/my-asset'))

עורך קוד

print(ee.Image('projects/my-project/assets/my-asset'))

שורת הפקודה

earthengine asset info projects/my-project/assets/my-asset

יצירת נכסים

אפשר ליצור תיקיות ו-ImageCollections, ולהטמיע תמונות וטבלאות מקובצים מקומיים או מקובצים בקטגוריה של Google Cloud Storage. הפורמטים הנתמכים של התמונות כוללים GeoTIFF (רגיל ו-COG) ו-TFRecord. פורמטים נתמכים של טבלאות כוללים קובצי Shapefile ו-CSV. (אפשר גם ליצור נכסים על ידי ייצוא תוצאת ניתוח מ-Earth Engine באמצעות פונקציות באצווה Export.*.toAsset).

לקוח Python

תמונה

משתמשים בפונקציה ee.data.startIngestion כדי להטמיע תמונות מ-Cloud Storage. מידע נוסף על הגדרת ההעלאה זמין בדף image manifest.

manifest = {
  'name': 'projects/my-project/assets/asset-name',
  'tilesets': [
    {
      'sources': [
        {
          'uris': [
            'gs://my-bucket/filename.tif'
          ]
        }
      ]
    }
  ]
}
ee.data.startIngestion(None, manifest)

טבלה

משתמשים בפונקציה ee.data.startTableIngestion כדי להטמיע טבלאות מ-Cloud Storage. מידע נוסף על הגדרת ההעלאה זמין בדף image manifest.

manifest = {
  'name': 'projects/my-project/assets/asset-name',
  'sources': [
    {
      'uris': [
        'gs://my-bucket/filename.csv'
      ]
    }
  ]
}
ee.data.startTableIngestion(None, manifest)

תיקייה או ImageCollection

משתמשים בפונקציה ee.data.createAsset כדי ליצור תיקיות ריקות או אוספים של תמונות.

ee.data.createAsset(
    {'type': 'FOLDER'}, # or 'IMAGE_COLLECTION'
    'projects/my-project/assets/asset-name'
)

עורך קוד

ב-Asset Manager, לוחצים על הלחצן NEW ובוחרים את סוג הנכס שרוצים להעלות או ליצור מהתפריט הנפתח. מגדירים את העלאת הנכס או היצירה שלו בתיבת הדו-שיח.

שורת הפקודה

תמונה או טבלה

earthengine upload image --asset_id=projects/my-project/assets/asset-name gs://my-bucket/filename.tif
earthengine upload table --asset_id=projects/my-project/assets/asset-name gs://my-bucket/filename.csv

תיקייה או ImageCollection

משתמשים בפקודה earthengine create כדי ליצור תיקיות ריקות או אוספים של תמונות.

earthengine create folder projects/my-project/assets/folder-name
earthengine create collection projects/my-project/assets/collection-name

תמונה חיצונית

אפשר לרשום כנכסי תמונות חיצוניים ולהשתמש בהם ישירות ב-Earth Engine קובצי GeoTIFF (COG) שעברו אופטימיזציה לענן, שאתם מעלים לקטגוריה של Google Cloud Storage. למידע נוסף על נכסים שמגובים ב-COG ועל בניית מניפסט, אפשר לעיין במסמכי העזרה.

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

הצגת רשימה של נכסים

לקוח Python

משתמשים בפונקציה ee.data.listAssets כדי לרשום נכסים בתיקייה או בקולקציה (לא רפרסיב). מידע נוסף על סינון וחילוץ דפים זמין במאמרי העזרה.

ee.data.listAssets('projects/my-project/assets')

אפשר לעיין גם במאמרים ee.data.listImages ו-ee.data.listFeatures.

עורך קוד

מרחיבים את התיקיות ב-Asset Manager כדי להציג את הנכסים.

שורת הפקודה

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

earthengine ls projects/my-project/assets

הגדרת הרשאות גישה לנכסים

לקוח Python

אפשר להשתמש בפונקציה ee.data.setAssetAcl כדי להגדיר הרשאות לנכס.

asset_id = 'projects/my-project/assets/asset-name'
acl_update = {
    'owners': [
        'user:big_cheese@example.com',
        'user:el_jefe@example.com'
    ],
    'writers': [
        'user:romeo@example.com',
        'user:juliet@example.com'
    ],
    'readers': [
        'group:some-group@googlegroups.com',
        'domain:example.com',
        'serviceAccount:some-project-id@appspot.gserviceaccount.com'
    ],
    'all_users_can_read': False
}
ee.data.setAssetAcl(asset_id, acl_update)

עורך קוד

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

שורת הפקודה

משתמשים בפקודה earthengine acl set כדי להגדיר את הרשאת הקריאה של נכס ל-public או ל-private.

earthengine acl set public projects/my-project/assets/asset-name

משתמשים בפקודה earthengine acl ch כדי להגדיר הרשאות קריאה וכתיבה ספציפיות לנכסים.

earthengine acl ch -u person@gmail.com:R projects/my-project/assets/asset-name

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

בדיקת ההרשאות לנכסים

לקוח Python

משתמשים בפונקציה ee.data.getAssetAcl כדי לאחזר את רשימת בקרת הגישה של נכס.

ee.data.getAssetAcl('projects/my-project/assets/asset-name')

עורך קוד

ב-Asset Manager, מעבירים את הסמן מעל נכס ולוחצים על סמל השיתוף. בתיבת הדו-שיח תוצג רשימה של כתובות אימייל ודומיינים, יחד עם רמות הגישה שלהם.

שורת הפקודה

משתמשים בפקודה earthengine acl get כדי לאחזר את רשימת בקרת הגישה של נכס.

earthengine acl get projects/my-project/assets/asset-name

העתקת נכסים

לקוח Python

משתמשים בפונקציה ee.data.copyAsset כדי להעתיק נכס.

ee.data.copyAsset('projects/my-project/assets/asset-name', 'projects/my-project/assets/asset-copy-name')

עורך קוד

משתמשים בלקוח Python או בכלי שורת הפקודה כדי להעתיק נכסים.

שורת הפקודה

משתמשים בפקודה earthengine cp כדי להעתיק נכס.

earthengine cp projects/my-project/assets/asset-name projects/my-project/assets/asset-copy-name

העברה או שינוי שם של נכסים

לקוח Python

משתמשים בפונקציה ee.data.renameAsset כדי להעביר נכס או לשנות את שמו.

ee.data.renameAsset('projects/my-project/assets/asset-name', 'projects/my-project/assets/new-asset-name')

עורך קוד

העברה

ב-Asset Manager, גוררים נכס לתיקייה חדשה.

שינוי שם

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

שורת הפקודה

משתמשים בפקודה earthengine mv כדי להעביר נכס או לשנות את שמו.

earthengine mv projects/my-project/assets/asset-name projects/my-project/assets/new-asset-name

מחיקת נכסים

לקוח Python

משתמשים בפונקציה ee.data.deleteAsset כדי למחוק נכס.

ee.data.deleteAsset('projects/my-project/assets/asset-name')

עורך קוד

לוחצים על נכס כדי לפתוח את דף הנכס בתיבת הדו-שיח, ואז לוחצים על הלחצן DELETE.

שורת הפקודה

משתמשים בפקודה earthengine rm כדי למחוק נכס. אפשר לעיין במאמר העזרה של הפונקציה כדי לקבל מידע על אפשרויות חזרה חוזרת (recursive) ועל ריצה ללא הטמעה (dry run).

earthengine rm projects/my-project/assets/asset-name

הצגת המטא-נתונים של הנכס

לקוח Python

משתמשים בפונקציה ee.data.getAsset כדי לקבל את המטא-נתונים של הנכס.

ee.data.getAsset('projects/my-project/assets/asset-name')

עורך קוד

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

שורת הפקודה

משתמשים בפקודה earthengine asset info כדי לקבל את המטא-נתונים של הנכס.

earthengine asset info projects/my-project/assets/asset-name

הגדרת מטא-נתונים של נכס

אפשר להגדיר את המטא-נתונים הבאים של הנכס:

  • start_time
  • end_time
  • properties

לקוח Python

משתמשים בפונקציה ee.data.updateAsset כדי לעדכן את המטא-נתונים של הנכס.

asset_id = 'projects/my-project/assets/asset-name'
new_metadata = {
  'properties': {
    'name': 'value'
  },
  'start_time': '2024-10-02T15:01:24Z',
  'end_time': '2024-10-02T15:01:25Z',
}
update_these = ['start_time', 'end_time', 'properties']

ee.data.updateAsset(asset_id, new_metadata, update_these)

עורך קוד

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

שורת הפקודה

משתמשים בפקודה earthengine asset set כדי לעדכן את המטא-נתונים של הנכס. למידע נוסף, עיינו במסמכי העזרה.

earthengine asset set \
  --time_start 2024-10-02T15:01:24 \
  --time_end 2024-10-02T15:01:25 \
  --property 'name=value' \
  projects/my-project/assets/asset-name

בדיקת המכסה של הנכס

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

לקוח Python

משתמשים בפונקציה ee.data.getAssetRootQuota כדי לקבל את השימוש במכסת האחסון ברמה הבסיסית של הנכס.

ee.data.getAssetRootQuota('projects/my-project/assets')

עורך קוד

ב-Asset Manager, מעבירים את הסמן מעל שורש הפרויקט ולוחצים על הסמל data_usage. תופיע תיבת דו-שיח עם מידע.

שורת הפקודה

אפשר להשתמש בלקוח Python או ב-Code Editor כדי לבדוק את המכסות של הנכסים.