أداة earthengine هي برنامج خدمات يتيح لك إدارة مواد العرض والمهام في Earth Engine من سطر الأوامر. ويتم تثبيته تلقائيًا عند
تثبيت Python API. للتحقّق مما إذا كانت الأداة مثبّتة وتعمل بشكل صحيح، اكتب ما يلي في سطر الأوامر:
earthengine
إذا تم تثبيت الأداة بشكل صحيح، فستطبع ملخصًا قصيرًا للأوامر المتاحة. للحصول على مساعدة بشأن أمر معيّن، استخدِم:
earthengine command -h
عند تثبيت Python API لأول مرة، عليك تسجيل الدخول باستخدام الأمر
authenticate الموضّح أدناه. توضّح الأقسام التالية الأوامر المتاحة بمزيد من التفصيل.
بيانات اعتماد حساب الخدمة
لاستخدام واجهة سطر الأوامر مع بيانات اعتماد حساب الخدمة، استخدِم
العلامة 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، عليك إضافة علامة تعجب قبل طلبات الأوامر.
!earthengine -h
ضبط مشروع على السحابة الإلكترونية
استخدِم الخيار --project لضبط مشروع على السحابة الإلكترونية لكل أمر 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 أو تعديلها تتحكّم قائمة التحكّم بالوصول في المستخدمين الذين يمكنهم قراءة مادة عرض أو الكتابة فيها. أمثلة:
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 لقائمة التحكّم بالوصول. يضبط الأمر الفرعي set قائمة التحكّم بالوصول (ACL) المقدَّمة في ملف بتنسيق JSON نفسه. يمكنك
نسخ قائمة التحكّم بالوصول من مادة عرض إلى أخرى من خلال حفظ الناتج من get
وتقديمه إلى set.
يقبل الأمر الفرعي set أيضًا اسمَين خاصَّين لقائمة التحكّم بالوصول:
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
earthengine asset setbands projects/my-project/assets/asset_id band1 band2
يطبع الأمر الفرعي info معلومات مفصّلة عن مادة العرض، بما في ذلك بياناتها الوصفية، بتنسيق JSON. يضبط الأمر الفرعي set خصائص البيانات الوصفية الفردية في مادة عرض. يؤدي الأمر الفرعي setbands إلى تعديل أسماء النطاقات لمادة عرض معيّنة.
قد تكون قيم سمات البيانات الوصفية التي تضبطها إما أرقامًا أو سلاسل.
عند ضبط أسماء السمات باستخدام العلامة --property أو -p، افصل بين
اسم السمة وقيمتها بعلامة يساوي. يتم رصد نوع البيانات تلقائيًا، أو يمكنك تحديده بشكل صريح من خلال إضافة بادئة إلى اسم السمة باستخدام (string) أو (number) أو (date). على سبيل المثال، يؤدي ذلك إلى ضبط سمة ذات قيمة سلسلة
على القيمة "42":
earthengine asset set -p '(string)name=42' projects/my-project/assets/asset_id
(تمنع علامات الاقتباس في هذا المثال واجهة الأوامر من تفسير الأقواس. وقد تكون ضرورية أو غير ضرورية، حسب واجهة الأوامر والمنصة.)
لإنشاء خصائص خاصة لتصورات نطاق التصنيف، يمكنك
تخزين قوائم القيم والألوان كسلاسل مفصولة بفواصل. على سبيل المثال،
لضبط قيم لوحة الألوان والفئة لنطاق باسم landcover:
earthengine asset set -p 'landcover_class_palette=ff0000,00ff00,0000ff' projects/my-project/assets/asset_id
earthengine asset set -p 'landcover_class_values=1,2,3' 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
إنشاء
إنشاء مجلدات ومجموعات صور جديدة مثال:
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"}'
مزيد من المعلومات حول نماذج منصة ذكاء اصطناعي يمكنك الاطّلاع على مثال كامل هنا.
mv
لنقل مادة عرض أو إعادة تسميتها مثال:
earthengine mv projects/my-project/assets/asset_id projects/my-project/assets/new_asset_id
project_config
لضبط قيم إعدادات المشروع قبل استخدام هذا الأمر، تأكَّد من ضبط
مشروع باستخدام set_project.
الحصول على
لعرض إعدادات مشروع معيّن، استخدِم الأمر الفرعي 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.
غرف
لحذف مادة عرض واحدة أو أكثر مثال:
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 إلى إلغاء مهمة واحدة أو أكثر قيد التشغيل.
تحميل
تحميل الصور أو الجداول من Google Cloud Storage إلى Earth Engine، أو تسجيل ملفات GeoTIFF المحسّنة للسحابة الإلكترونية (COGs) في Cloud Storage كمواد عرض مستندة إلى COG (صور خارجية).
الصورة
لتحميل مادة عرض صورة باستخدام الإعدادات التلقائية:
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. يمكنك الاطّلاع على قائمة كاملة بخيارات تحميل الجداول من خلال الانتقال إلى دليل بيان الجدول أو باستخدام:
earthengine upload table -h
external_image
لتسجيل ملف GeoTIFF محسَّن للسحابة الإلكترونية (COG) في Cloud Storage كمادة عرض مستندة إلى COG (تُعرف باسم صورة خارجية في واجهة برمجة التطبيقات)، نفِّذ الأمر upload external_image مع بيان:
earthengine upload external_image --manifest /tmp/foo.json
أضِف --force لاستبدال مادة عرض حالية، على سبيل المثال لتوجيهها إلى نسخة جديدة من ملفها (راجِع تعديل مواد العرض المستندة إلى COG).
في ما يلي مثال على ملف البيان:
{
"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"
}
يمكنك الاطّلاع على دليل تسجيل COG ودليل بيان الصور لمزيد من التفاصيل حول إنشاء البيان.