مدیریت دارایی‌ها

دارایی‌های Earth Engine داده‌های زمین‌مکانی متعلق به پروژه هستند که در پلاتفرم ذخیره می‌شوند. می‌توانید داده‌های خودتان را بارگذاری کنید و داده‌های تولیدشده از تجزیه‌وتحلیل‌های Earth Engine را به‌عنوان دارایی ذخیره کنید.

انواع دارایی

‫Earth Engine قالب‌های دارایی مختلفی برای انواع مختلف داده‌ها، به‌همراه عناصر محفظه برای سازمان‌دهی ارائه می‌دهد.

انواع دارایی
Image شطرنجی، نمایشی مبتنی بر شبکه از اطلاعات جغرافیایی که در آن هر سلول در شبکه دارای مقداری است که با مکان خاصی در سطح زمین مطابقت دارد.
ImageCollection مجموعه‌ای از تصاویر شطرنجی مرتبط که یک موزاییک یا سری زمانی را تشکیل می‌دهند. این دارایی ازنظر عملکردی شبیه به پوشه است، اما می‌توان آن را به‌عنوان شیء ee.ImageCollection به Earth Engine وارد کرد که شامل مجموعه‌ای از روش‌ها برای فیلتر کردن و تجزیه‌وتحلیل است.
Table ساختار داده جدولی متشکل از ویژگی‌های برداری (ردیف‌ها)، که هرکدام شامل مجموعه‌ای از ویژگی‌ها (ستون‌ها) است. این داده‌ها با شیء ee.FeatureCollection نشان داده می‌شود که شامل مجموعه‌ای از روش‌ها برای فیلتر کردن و تجزیه‌وتحلیل است.
Classifier مدل یادگیری ماشین Earth Engine آموزش‌دیده. این مدل با شیء ee.Classifier نمایش داده می‌شود که شامل مجموعه‌ای از روش‌ها برای کاربرد و تحلیل است.
FeatureView نمای دیداری‌سازی جدول برای استفاده در «برنامه‌های Earth Engine».
Folder محفظه‌ای برای دارایی‌ها و پوشه‌های اضافی برای کمک به سازمان‌دهی.

سازمان دارایی

دارایی‌های Earth Engine در یک سیستم سلسله‌مراتبی از پوشه‌ها و مجموعه‌ها سازمان‌دهی شده‌اند. ساختار آن شبیه سیستم‌های فایل رایج است.

ریشه

دارایی‌ها تحت مالکیت پروژه Cloud است. نام پروژه ریشه دایرکتوری دارایی را تعریف می‌کند. برای مثال، ریشه my-project projects/my-project/assets است. همه دارایی‌های متعلق به my-project در پوشه projects/my-project/assets یا زیرپوشه (یا ImageCollection) درون آن قرار دارند.

فهرست راهنما

Earth Engine از ساختار دایرکتوری درختی برای سازمان‌دهی دارایی‌ها استفاده می‌کند. هر پروژه Cloud یک دایرکتوری ریشه دارد که می‌تواند حاوی دارایی‌ها و پوشه‌های مجزا باشد. ImageCollections نوع دارایی ویژه‌ای است که به‌طور خاص برای نگهداری مجموعه‌هایی از تصاویر مرتبط، مانند سری‌های زمانی یا موزاییک‌ها، طراحی شده است. برخلاف پوشه‌ها، ImageCollections فقط می‌تواند حاوی دارایی‌های تصویری باشد و نمی‌تواند پوشه‌ها یا مجموعه‌های دیگر را در خود جای دهد.

  • folder_dataprojects/my-project/assets/
    • folder folder-name/
      • photo image-name
      • view_comfy table-name
      • satellite featureview-name
      • bubble_chart classifier-name
      • photo_library imagecollection-name/
        • عکس image-name-1
        • عکس image-name-2

شناسه دارایی

Earth Engine از شناسه‌های دارایی برای ارجاع داده‌ها در دستورات و عملیات خط فرمان استفاده می‌کند. آن‌ها مکان‌های دارایی را بااستفاده از خط مورب (/) به‌عنوان جداکننده بین دایرکتوری‌ها تعریف می‌کنند. برای مثال، projects/my-project/assets/my-asset دارایی‌ای به‌نام «my-asset» را که در ریشه «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 bucket وارد کنید. قالب‌های تصویر پشتیبانی‌شده شامل GeoTIFF و TFRecord است؛ GeoTIFFهای بهینه‌شده ابری (COG) در Cloud Storage نیز می‌توانند به‌جای وارد شدن، در محل ثبت شوند. قالب‌های جدول پشتیبانی‌شده شامل Shapefile و CSV است. (دارایی‌ها را می‌توان با صادر کردن نتیجه تجزیه‌وتحلیل Earth Engine بااستفاده از توابع دسته‌ای Export.*.toAsset نیز ایجاد کرد).

کارخواه Python

تصویر

از تابع ee.data.startIngestion برای دریافت تصاویر از Cloud Storage استفاده کنید. برای اطلاعات بیشتر درباره پیکربندی بارگذاری، به صفحه مانیفست تصویر مراجعه کنید.

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 استفاده کنید. برای کسب اطلاعات بیشتر درباره پیکربندی بارگذاری، صفحه مانیفست تصویر را ببینید.

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

پوشه یا ImageCollection

از تابع ee.data.createAsset برای ایجاد پوشه‌های خالی یا ImageCollections استفاده کنید.

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

ویرایشگر کد

در «مدیر دارایی»، روی دکمه جدید کلیک کنید و نوع دارایی‌ای را که می‌خواهید بارگذاری یا ایجاد کنید از فهرست کرکره‌ای انتخاب کنید. بارگذاری یا ایجاد دارایی را در کادر گفتگو پیکربندی کنید.

خط فرمان

تصویر یا جدول

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 برای ایجاد پوشه‌های خالی یا ImageCollections استفاده کنید.

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

تصویر برون‌سازمانی

فایل‌های GeoTIFF بهینه‌شده ابری (COG) در سبد Cloud Storage را می‌توان به‌عنوان دارایی‌های COG-backed (در API تصاویر خارجی نامیده می‌شود) ثبت کرد و مستقیماً در Earth Engine استفاده کرد. برای ساختن مانیفست، راهنمای ثبت COG را ببینید.

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

فهرست کردن دارایی‌ها

کارخواه Python

از تابع ee.data.listAssets برای فهرست کردن دارایی‌ها در پوشه یا مجموعه (غیربازگشتی) استفاده کنید. برای اطلاعات بیشتر درباره فیلتر کردن و صفحه‌بندی، به اسناد مرجع مراجعه کنید.

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

همچنین ee.data.listImages و ee.data.listFeatures را ببینید.

ویرایشگر کد

پوشه‌ها را در «مدیر دارایی» ازهم باز کنید تا دارایی‌ها را ببینید.

خط فرمان

از فرمان 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)

ویرایشگر کد

در «مدیر دارایی»، نشانگر را روی دارایی نگه دارید و روی نماد هم‌رسانی کلیک کنید. در کادر گفتگو، نشانی ایمیل یا دامنه‌ای را برای هم‌رسانی دارایی با آن وارد کنید، سپس سطح اجازه را برای اعطا کردن از فهرست کرکره‌ای انتخاب کنید. روی دکمه افزودن دسترسی کلیک کنید تا تغییر را تأیید کنید. برای اعطای اجازه خواندن به هر نهادی، چارگوش «همه می‌توانند بخوانند» را علامت بزنید. همچنین می‌توانید با انتخاب نام برنامه از فهرست کرکره‌ای (دارایی‌های متعلق به پروژه فعال «ویرایشگر کد»)، از کادر گفتگو به برنامه‌های Earth Engine دسترسی بدهید.

خط فرمان

از فرمان 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')

ویرایشگر کد

در «مدیر دارایی»، نشانگر را روی دارایی نگه دارید و روی نماد هم‌رسانی کلیک کنید. کادر گفتگو فهرستی از ایمیل‌ها و دامنه‌ها را به‌همراه سطح دسترسی مربوط به آن‌ها نمایش می‌دهد.

خط فرمان

از فرمان 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')

ویرایشگر کد

انتقال

در «مدیر دارایی»، دارایی را به پوشه جدیدی بکشید.

تغییر نام

در «مدیر دارایی»، نشانگر را روی دارایی نگه دارید و روی نماد ویرایش کلیک کنید و نام جدیدی را در فیلد ورودی قابل‌ویرایش تایپ کنید.

خط فرمان

از فرمان 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')

ویرایشگر کد

روی دارایی کلیک کنید تا صفحه کادر گفتگوی دارایی باز شود، سپس روی دکمه حذف کلیک کنید.

خط فرمان

از فرمان earthengine rm برای حذف دارایی استفاده کنید. برای گزینه‌های بازگشتی و اجرای آزمایشی، به مرجع تابع مراجعه کنید.

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')

ویرایشگر کد

در «مدیر دارایی»، نشانگر را روی ریشه پروژه نگه دارید و روی نماد data_usage کلیک کنید. کادر گفتگوی اطلاعاتی نمایش داده می‌شود.

خط فرمان

برای بررسی سهمیه دارایی، از سرویس‌گیرنده Python یا «ویرایشگر کد» استفاده کنید.