ابزار خط فرمان

ابزار earthengine یک برنامه کاربردی است که به شما امکان می‌دهد دارایی‌ها و وظایف Earth Engine را از خط فرمان مدیریت کنید. این ابزار هنگام نصب API پایتون به طور خودکار نصب می‌شود. برای بررسی اینکه آیا این ابزار به درستی نصب و کار می‌کند، دستور زیر را در خط فرمان تایپ کنید:

    earthengine

اگر این ابزار به درستی نصب شده باشد، خلاصه‌ای کوتاه از دستورات موجود را چاپ می‌کند. برای دریافت کمک در مورد یک دستور خاص، از دستور زیر استفاده کنید:

    earthengine command -h

وقتی برای اولین بار API پایتون را نصب می‌کنید، باید با استفاده از دستور authenticate که در زیر توضیح داده شده است، وارد سیستم شوید. بخش‌های بعدی دستورات موجود را با جزئیات بیشتری شرح می‌دهند.

اعتبارنامه حساب سرویس

برای استفاده از رابط خط فرمان (CLI) با اعتبارنامه‌های یک حساب کاربری سرویس، از پرچم service_account_file برای اشاره به یک فایل JSON حاوی کلید حساب کاربری سرویس استفاده کنید.

    earthengine --service_account_file=service_account_creds.json

کاربرد در کولب

ابزار خط فرمان Earth Engine از پیش نصب شده و آماده استفاده در Google Colab است.

احراز هویت

برای هر جلسه جدید Colab یا اگر ماشین مجازی به دلیل عدم فعالیت منقضی شود، احراز هویت کنید (اعتبارنامه‌ها در طول جلسات ذخیره نمی‌شوند).

کتابخانه کلاینت پایتون را وارد کنید و ee.Authenticate() را برای شروع جریان احراز هویت فراخوانی کنید. برای تکمیل احراز هویت، دستورالعمل‌ها را دنبال کنید. حالت پیش‌فرض auth_mode در Colab، colab است. برای گزینه‌های دیگر به راهنمای احراز هویت مراجعه کنید.

import ee
ee.Authenticate()

اجرای فرمان

برای اجرای ابزارهای خط فرمان، مانند Earth Engine CLI، باید قبل از فراخوانی‌های فرمان، علامت تعجب قرار دهید.

!earthengine -h

یک پروژه ابری تنظیم کنید

از گزینه --project برای تنظیم یک پروژه ابری برای هر دستور earthengine به صورت جداگانه استفاده کنید.

!earthengine --project my-project <command>

روش دیگر، تنظیم یک پروژه پیش‌فرض برای استفاده توسط تمام فراخوانی‌های earthengine با استفاده از دستور set_project است. این پروژه به یک فایل اعتبارنامه (~/.config/earthengine/credentials) اضافه می‌شود و برای دستورات بعدی استفاده می‌شود، مگر اینکه توسط ... لغو شود. گزینه --project . برای هر جلسه جدید Colab یا اگر ماشین مجازی به دلیل عدم فعالیت منقضی شود (اعتبارنامه‌ها در جلسات ذخیره نمی‌شوند)، یک پروژه پیش‌فرض تنظیم کنید.

!earthengine set_project my-project

مرجع فرمان

احراز هویت کردن

ابزار خط فرمان و کتابخانه کلاینت پایتون را برای Earth Engine احراز هویت می‌کند. مثال:

    earthengine authenticate

Earth Engine از پروتکل OAuth 2.0 برای احراز هویت کلاینت‌ها استفاده می‌کند. دستور earthengine authenticate شما را از طریق مرورگر وبتان در فرآیند احراز هویت راهنمایی می‌کند.

اگر از حالت احراز هویت پیش‌فرض gcloud استفاده می‌کنید، باید gcloud را نصب کنید . سایر حالت‌های احراز هویت موجود را از طریق پارامتر auth_mode در راهنمای احراز هویت مشاهده کنید.

ای سی ال

لیست کنترل دسترسی (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 را تنظیم می‌کند. می‌توانید با ذخیره خروجی get و ارائه آن به set ، یک ACL را از یک دارایی به دارایی‌های دیگر کپی کنید.

زیردستور 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

ویژگی‌های تاریخ فقط اعدادی هستند که تعداد میلی‌ثانیه‌ها را از زمان آغاز یونیکس ( یعنی نیمه‌شب اول ژانویه ۱۹۷۰) نشان می‌دهند و می‌توانند مستقیماً به صورت عدد یا در یکی از قالب‌های زیر مشخص شوند:

    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

سی پی

یک دارایی را کپی می‌کند. مثال:

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

ایجاد کردن

پوشه‌ها و مجموعه‌های تصویر جدید ایجاد می‌کند. مثال:

    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"}'

برای کسب اطلاعات بیشتر در مورد مدل‌های پلتفرم هوش مصنوعی اینجا را ببینید. یک مثال کامل را اینجا ببینید.

ام وی

یک دارایی را جابجا یا تغییر نام می‌دهد. مثال:

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

پیکربندی_پروژه

مقادیر پیکربندی پروژه را تنظیم می‌کند. قبل از استفاده از این دستور، حتماً یک پروژه را با استفاده set_project تنظیم کنید.

دریافت

برای مشاهده پیکربندی پروژه، از زیردستور get استفاده کنید:

    earthengine alpha project_config get

اگر اجازه مشاهده تنظیمات وظایف دسته‌ای پروژه را داشته باشید، خروجی شامل موارد زیر خواهد بود:

  • maxConcurrentExports : عددی که حداکثر تعداد وظایف دسته‌ای را که می‌توانند به صورت موازی بین همه کاربران برای پروژه داده شده اجرا شوند، نشان می‌دهد. به طور پیش‌فرض، این مقدار روی حداکثر مجاز توسط طرح اشتراک حساب صورتحساب مرتبط تنظیم شده است.

علاوه بر این، اگر مجوز مشاهده پیکربندی طرح را داشته باشید، خروجی شامل موارد زیر خواهد بود:

  • planMaxConcurrentExports ، عددی که حداکثر تعداد وظایف دسته‌ای را نشان می‌دهد که می‌توانند به صورت موازی در بین همه کاربران و پروژه‌هایی که از حساب صورتحساب استفاده می‌کنند، اجرا شوند.

مجموعه

برای به‌روزرسانی پیکربندی پروژه، از زیردستور set استفاده کنید. تنظیمات زیر را می‌توان پیکربندی کرد:

برای مثال، برای پیکربندی یک پروژه به گونه‌ای که فقط اجازه اجرای ۱۰ وظیفه به صورت موازی را برای پروژه داده شده بدهد:

    earthengine alpha project_config set --max_concurrent_exports=10

خروجی، پیکربندی به‌روزرسانی‌شده‌ی پروژه را نمایش می‌دهد، مشابه آنچه get برمی‌گرداند.

برای اطلاعات بیشتر در مورد موازی‌سازی وظایف دسته‌ای، به صفحه سهمیه‌بندی موتور زمین مراجعه کنید.

رم

یک یا چند دارایی را حذف می‌کند. مثال:

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

شما می‌توانید از فلگ -r برای حذف بازگشتی محتویات یک پوشه یا مجموعه استفاده کنید. برای ایمنی هنگام حذف چندین فایل، می‌توانید از فلگ --dry_run برای تأیید دقیق آنچه حذف خواهد شد بدون حذف واقعی چیزی استفاده کنید.

مجموعه_پروژه

پروژه 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 یک یا چند وظیفه در حال اجرا را لغو می‌کند.

آپلود

تصاویر یا جداول را از فضای ذخیره‌سازی ابری گوگل (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 که در بالا توضیح داده شد، پذیرفته می‌شوند، ویژگی‌های ابرداده را برای تنظیم روی دارایی مشخص کنید. این گزینه‌ها همچنین در راهنمای مانیفست تصویر توضیح داده شده‌اند.

میز

برای آپلود یک 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

تصویر_خارجی

برای ایجاد یک دارایی که توسط یک تصویر خارجی پشتیبانی می‌شود، دستور upload_image را با یک مانیفست اجرا کنید:

earthengine 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 مراجعه کنید.