قبل أن تتمكّن من تقديم طلبات إلى Earth Engine من خلال مكتبة برامج، عليك المصادقة واستخدام بيانات الاعتماد الناتجة لتهيئة برنامج Earth Engine.
أداة "محرّر الرموز البرمجية" في Earth Engine وJavaScript
يتم التعامل مع المصادقة والتهيئة تلقائيًا في "محرّر التعليمات البرمجية". يمكنك اختيار توجيه الطلبات من خلال مشروع Cloud من خلال تسجيل الدخول في أعلى يسار محرّر الرموز.
إذا كنت تستخدم JavaScript API (خارج "أداة تعديل الرموز")، استخدِم إحدى أدوات المساعدة في المصادقة في ee.data (مثلاً،
ee.data.authenticateViaPopup())
متبوعة بـ ee.initialize() كما هو موضّح في
هذا المثال.
Python وسطر الأوامر
قبل استخدام مكتبة برامج Python الخاصة بواجهة Earth Engine، عليك إجراء مصادقة (إثبات هويتك) واستخدام بيانات الاعتماد الناتجة لتهيئة برنامج Python. تستخدِم عمليات المصادقة مشاريع Cloud للمصادقة، ويتم استخدامها في الاستخدام غير المدفوع (المجاني وغير التجاري) والاستخدام المدفوع. للمصادقة والبدء، نفِّذ الأمر
ee.Authenticate()
ee.Initialize(project='my-project')
سيؤدي ذلك أولاً إلى اختيار أفضل وضع مصادقة لبيئتك، ثم سيطلب منك تأكيد إذن الوصول إلى البرامج النصية. إذا كانت بيانات الاعتماد متوفّرة، سيتم إعادة استخدامها تلقائيًا. شغِّل ee.Authenticate(force=True) لإنشاء بيانات اعتماد جديدة.
تتحقّق خطوة الإعداد من توفّر بيانات اعتماد صالحة، سواء تم إنشاؤها من ee.Authenticate() أو كانت موجودة مسبقًا كبيانات اعتماد تلقائية من Google. بعد ذلك، يتم تهيئة مكتبة برامج Python باستخدام الطرق التي يتيحها خادم الخلفية. يجب تقديم مشروع تملكه أو لديك أذونات لاستخدامه. راجِع إعداد مشروع على السحابة الإلكترونية لتسجيل المشروع وتفعيل Earth Engine API. سيتم استخدام هذا المشروع لتنفيذ جميع عمليات Earth Engine.
في سطر الأوامر، تكون المكالمة المكافئة earthengine authenticate. إذا كانت بيانات الاعتماد منتهية الصلاحية أو غير صالحة، قد تحتاج إلى تنفيذ earthengine
authenticate --force. سيتم بدء عمليات استدعاء سطر الأوامر في كل مكالمة، ويمكنك استخدام الوسيطة --project لضبط المشروع.
يمكنك أيضًا ضبط مشروع لجميع المكالمات المستقبلية من خلال تنفيذ earthengine
set_project {my-project}. سيستخدم سطر الأوامر وee.Initialize() هذا
عندما لا يتم تحديد مشروع بشكل مباشر. في حال استخدام المصادقة من خلال
gcloud (راجِع ما يلي)، سيتم استخدام المشروع الذي تم ضبطه بواسطة gcloud auth application-default
set-quota-project {my-project} كحالة نهائية.
تفاصيل المصادقة
تهدف عمليات مصادقة Earth Engine إلى الحصول على "رمز مميّز" أمان من حسابك الذي سجّلت الدخول إليه، ويمكن تخزينه لمنح النصوص البرمجية إذنًا بالوصول إلى بياناتك. لأسباب تتعلّق بالأمان، لن يمرّر نظام المصادقة من Google هذه الرموز المميّزة إلا إلى الأنظمة التي يمكن تأمينها. يُرجى الاطّلاع على الملاحظات الفنية أدناه.
وبسبب حساسية نوع الأنظمة المعنية، تتوفّر طرق مختلفة للمتابعة حسب حالتك المحدّدة. يتم التحكّم في معظم الخيارات من خلال المَعلمة auth_mode، إما على النحو ee.Authenticate(auth_mode=...) أو earthengine authenticate --auth_mode=... في سطر الأوامر.
يُرجى العِلم أنّه إذا كانت بيانات اعتماد Google متوفّرة في بيئتك، قد لا تحتاج إلى استدعاء ee.Authenticate() على الإطلاق. توفّر آلات Google Cloud الافتراضية وApp Engine والبيئات الأخرى "بيانات اعتماد محيطة" قابلة للاستخدام، كما ستنشئ gcloud auth
application-default login هذه البيانات.
ومع ذلك، يُنصح باستخدام ee.Authenticate() في بداية جميع النصوص البرمجية
لتحقيق أقصى قدر من التوافق. تم تصميم هذه الميزة للعمل في معظم الحالات بدون المَعلمة auth_mode، ولكن يُرجى اتّباع التفاصيل أدناه إذا لم يعمل الوضع التلقائي.
يتم اختيار الوضع التلقائي على النحو التالي:
colabإذا كان يتم التشغيل في ورقة ملاحظات Google Colab-
notebookإذا كنت تستخدم أوراق ملاحظات Jupyter أخرى غير Colab localhostفي حال رصد متصفّح ويب وعدم تثبيت أي برنامج ثنائي gcloud-
gcloud، بخلاف ذلك. لاستخدام هذا الوضع، عليك تثبيت gcloud.
دليل وجدول مرجعي سريع
يوضّح دليل اتخاذ القرار هذا الخيارات المتاحة في حال عدم عمل الوضع التلقائي الذي اختاره ee.Authenticate(). على سبيل المثال، إذا كنت تستخدم بيئات دفتر ملاحظات أخرى، قد تحتاج إلى تحديد notebook بشكل صريح.
- البيئة المحلية
- يشير مصطلح محلي إلى أنّك تنفّذ الرمز البرمجي في واجهة Python أو ورقة ملاحظات Python على الجهاز الذي أمامك، أو بشكل أكثر دقة، على الجهاز نفسه الذي يعمل عليه متصفّح الويب. ويشمل ذلك حالات استخدام سطح المكتب عن بُعد حيث يكون كل من Python والمتصفح على الجهاز نفسه (عن بُعد).
- إنّ استخدام
auth_mode=localhostهو الأسهل، وسيتم اختياره تلقائيًا في حال عدم تثبيت gcloud، ولكن لن يعمل النص البرمجي إلا في البيئات المحلية. - يتوفّر الخياران
auth_mode=gcloudوauth_mode=notebookأيضًا.
- البيئة البعيدة
- يشير مصطلح "عن بُعد" إلى أنّ متصفّحك مثبّت على جهاز واحد (محلي)، ولكن يتم تشغيل الرمز البرمجي في مكان آخر، مثل محطة عمل بعيدة أو دفتر ملاحظات مستند إلى الويب.
- إذا كنت تستخدم Colab، استخدِم
auth_mode=colab، أو استخدِمgcloudإذا كنت بحاجة إلى ضبطscopesلاستدعاء واجهات برمجة تطبيقات أخرى. - إذا كان بإمكانك تثبيت gcloud على كل من الجهاز البعيد والجهاز المحلي، استخدِم
auth_mode=gcloud. - إذا كان بإمكانك استخدام مشروع مصادقة (راجِع أدناه)، استخدِم
auth_mode=notebook. - في حال عدم توفّر أي من الخيارات السابقة، إذا لم تتمكّن من استخدام مشروع أو تثبيت gcloud أو استخدام Colab أو استخدام متصفّح على الجهاز نفسه، اتّبِع الخطوات التالية:
- تحدَّث إلى أحد المشرفين (مجددًا) بشأن إنشاء المشاريع. مثلاً:
- اطلب من المشرف إعداد مشروع لك (بصفة مالك أو محرِّر أو محرِّر إعدادات OAuth)
- أو اطلب من المشرف منحك أذونات لإنشاء مشروع.
يوضّح هذا الجدول مجموعات الميزات المتوافقة مع كل وضع.
| للملفات المحلية أو البعيدة؟ | يجب اختيار مشروع | نطاقات قابلة للضبط | يجب تثبيت واجهة سطر الأوامر المحلية | مالك المشروع | |
|---|---|---|---|---|---|
localhost |
محلي | نعم | نعم | لا | لا |
colab |
جهاز تحكّم عن بُعد | نعم | لا | لا | لا |
gcloud |
كلاهما | نعم | نعم | لا | لا |
notebook |
كلاهما | نعم | نعم | لا | نعم |
بيانات اعتماد حسابات الخدمة وCompute Engine
سيستخدم ee.Initialize() بيانات اعتماد Earth Engine (التي يخزّنها ee.Authenticate() في ~/.config/earthengine/credentials) أو يستردّ بيانات الاعتماد من google.auth.default()، ولكن إذا لزم الأمر، يمكنك تمرير وسيطة credentials= لاستخدام بيانات الاعتماد من مكان آخر، وتجاوز هذه الإعدادات التلقائية.
إذا كنت بصدد مصادقة رمز Python البرمجي الذي سيتم تشغيله بدون إشراف، ننصحك بالمصادقة باستخدام حساب خدمة بدلاً من حساب مستخدم. راجِع هذه المستندات لمعرفة كيفية استخدام حسابات الخدمة مع Earth Engine. تشمل الطرق الأخرى authenticate_service_account في وحدة مصادقة Colab والطرق الموضّحة في دليل Cloud للمصادقة بصفتك حساب خدمة.
إذا كان الرمز البرمجي يعمل على جهاز Compute Engine الافتراضي، سيتم إنشاء حساب خدمة تلقائي للبيئة، وستستخدمه ee.Initialize() تلقائيًا. قد تحتاج إلى تسجيل حساب الخدمة لاستخدام Earth Engine إذا لم يكن مشروع Cloud الذي تم تشغيل الجهاز الافتراضي من خلاله مسجَّلاً للاستخدام مع Earth Engine (تجاري أو للاستخدام غير التجاري).
تفاصيل عن الأوضاع
auth_mode=colab. ستنشئ ee.Authenticate() أو تحصل على بيانات الاعتماد التلقائية المتوافقة مع Colab، وذلك من خلال تنفيذ colab.auth.authenticate_user() إذا لزم الأمر. تستخدم بيانات الاعتماد دائمًا النطاق cloud-platform ويمكن استخدامها أيضًا لطلب بيانات من واجهات Cloud API الأخرى.
auth_mode=gcloud. يؤدي ذلك إلى تفويض المصادقة إلى أداة
gcloud، وهو ما يعادل تنفيذ gcloud auth application-default login مع نطاقات Earth Engine التلقائية (earthengine وcloud-platform وdrive) أو النطاقات في الوسيطة scopes. يعمل وضع gcloud في كل من الحالات المحلية والبعيدة.
تعليمات مفصّلة حول وضع gcloud (حالات محلية وعن بُعد)
- تأكَّد من تثبيت gcloud على الجهاز المحلي.
- في الوحدة الطرفية، شغِّل
gcloud help. إذا لم يتم تثبيت gcloud، اتّبِع هذه التعليمات لتثبيت gcloud.
- في الوحدة الطرفية، شغِّل
- نافذة الجهاز المحلي
- في الوحدة الطرفية، شغِّل
earthengine authenticate. - سيشير ناتج الأمر إلى أنّه يتم استخدام gcloud لجلب بيانات الاعتماد.
- ستفتح نافذة متصفّح تعرض صفحة اختيار الحساب. إذا لم يفتح المتصفّح تلقائيًا، انقر على عنوان URL.
- في الوحدة الطرفية، شغِّل
- المتصفّح: اختيار الحساب
- اختَر الحساب الذي تريد استخدامه للمصادقة.
- المتصفّح: شاشة الموافقة
- حدِّد ما إذا كنت تريد منح النطاقات المطلوبة وانقر على "السماح".
- المتصفّح: شاشة التأكيد
- سيعرض المتصفّح صفحة تؤكّد أنّه تم إثبات هويتك، وسيعرض الأمر
earthengine authenticateفي نافذة الجهاز الرسالة "تم حفظ رمز التفويض بنجاح". - في الحالات البعيدة، ستمنحك صفحة الويب رمزًا يمكنك لصقه مرة أخرى في بيئة Python.
- سيعرض المتصفّح صفحة تؤكّد أنّه تم إثبات هويتك، وسيعرض الأمر
- تابِع عملية التهيئة.
auth_mode=localhost. هذا هو مسار مشابه لمسار gcloud في الحالات التي لم يتم فيها تثبيت gcloud. ويؤدي الخطوات نفسها التي يؤديها gcloud، ولكنّه يعمل فقط في الحالة المحلية. يمكنك تقديم رقم منفذ إنترنت اختياري، مثل
localhost:8086، أو استخدام localhost:0 لاختيار منفذ تلقائيًا. المنفذ التلقائي هو 8085.
auth_mode=notebook. هذا الوضع مخصّص للاستخدام العام ومصمّم للعمل في الحالات البعيدة التي لا تتوفّر فيها أسطر الأوامر المحلية. سيتم توجيهك إلى صفحة "أداة مصادقة دفتر الملاحظات" حيث عليك اختيار "مشروع مصادقة" أو إنشاؤه. يمكنك الاطّلاع على التفاصيل ودليل تحديد المشاكل وحلّها أدناه. لا يشترط أن يتطابق المشروع الذي تم تمريره إلى ee.Initialize() مع المشروع الحالي، بل يمكنك استخدام المشروع نفسه للمصادقة أثناء العمل في مشاريع مختلفة في دفاتر ملاحظات مختلفة. يُنصح بتمرير مشروع بشكل صريح إلى
ee.Initialize()، ولكن سيتم استخدام مشروع المصادقة تلقائيًا.
تعليمات مفصّلة لاستخدام وضع "دفتر الملاحظات"
- المتصفّح: دفتر الملاحظات
- في خلية رمز دفتر، شغِّل الرمز التالي لبدء عملية مصادقة باستخدام وضع "الدفتر".
انقر على الرابط في ناتج الخلية لفتح صفحة Notebook Authenticator في علامة تبويب جديدة.import ee ee.Authenticate()
- في خلية رمز دفتر، شغِّل الرمز التالي لبدء عملية مصادقة باستخدام وضع "الدفتر".
- المتصفّح: Notebook Authenticator
- تأكَّد من إدراج حساب المستخدم الصحيح.
- اختَر مشروعًا على Google Cloud لاستخدامه في المصادقة. إذا كنت بحاجة إلى إنشاء مشروع جديد، ننصحك باتّباع اصطلاح التسمية "ee-xyz" حيث يمثّل xyz اسم المستخدم المعتاد في Earth Engine. (إذا تعذّر عليك اختيار مشروع Cloud أو إنشاؤه، يُرجى الاطّلاع على قسم تحديد المشاكل وحلّها أدناه).
- انقر على "إنشاء رمز مميز".
- المتصفّح: اختيار الحساب
- ستظهر لك صفحة اختيار الحساب. انقر على حساب المستخدم الذي تريد منحه إذن الوصول من دفتر الملاحظات.
- المتصفّح: صفحة التحذير
- تظهر صفحة تحذير تشير إلى أنّ Google لم تنشئ التطبيق (أي الرمز البرمجي في ورقة الملاحظات). انقر على "متابعة" للإقرار بذلك.
- المتصفّح: شاشة الموافقة
- حدِّد ما إذا كنت تريد منح النطاقات المطلوبة وانقر على متابعة.
- المتصفّح: شاشة رمز التفويض
- نسخ رمز التحقّق من التفويض
- المتصفّح: دفتر الملاحظات
- ارجع إلى علامة تبويب دفتر الملاحظات، والصق رمز التحقّق في ناتج خلية دفتر الملاحظات.
- يجب أن تشير نتيجة الخلية إلى "تم حفظ رمز التفويض بنجاح".
- تابِع عملية التهيئة.
يحتوي وضع "دفتر الملاحظات" على المَعلمة quiet التي نادرًا ما تُستخدَم: إذا تم ضبطها، سيتم تشغيل الوضع "بدون تفاعل" ولن يطلب منك إدخال رمز التفويض ولن ينتظر ذلك.
بدلاً من ذلك، يقدّم أمرًا لتشغيله من أجل حفظ الرمز.
مشاريع المصادقة
يجب أن تكون مالكًا أو محرِّرًا أو محرِّرًا لإعدادات OAuth في مشروع المصادقة المستخدَم في وضع دفتر الملاحظات. في كثير من الحالات، لا سيما في الفرق الصغيرة، يمكن أن يكون مشروع المصادقة الذي تستخدمه في صفحة Notebook Authenticator هو نفسه المشروع الأساسي الذي تستخدمه في أعمال أخرى.
بسبب مخاوف أمنية، فإنّ عملية إعداد "إعدادات عميل OAuth" في مشروع المصادقة تتم لمرة واحدة فقط. إذا كنت أنت أو مستخدمون آخرون قد أعددتم عميل OAuth في المشروع لأسباب أخرى، لا يمكن إزالته وسيظهر لك خطأ "إعداد عميل OAuth2 غير متوافق". عليك استخدام مشروع مختلف للمصادقة، أو استخدام أوضاع colab أو localhost أو gcloud المذكورة أعلاه.
تفاصيل حول النطاقات
تتضمّن إعدادات المصادقة التلقائية في Earth Engine جميع النطاقات المتاحة، لذا يمكنك تخطّي هذا القسم إذا كانت الإعدادات التلقائية تستوفي متطلباتك.
نطاقات Earth Engine: يحدّد نطاق OAuth 2.0 مجموعة الموارد والعمليات التي يُسمح لتطبيق بالوصول إليها نيابةً عن المستخدم ويحصرها. عند استخدام OAuth للمصادقة مع Earth Engine، يجب طلب نطاق واحد أو أكثر من النطاقات التالية:
-
https://www.googleapis.com/auth/earthengine: إذن القراءة والكتابة في أصول Earth Engine ومراجعها مطلوب لإنشاء مواد العرض أو تعديلها أو حذفها، وإدارة أذونات مواد العرض، وتنفيذ مهام التصدير. -
https://www.googleapis.com/auth/earthengine.readonly: إذن وصول للقراءة فقط إلى مواد عرض Earth Engine
يسمح النطاقان بتنفيذ البرامج النصية وإجراء العمليات الحسابية (مثل تقييم التعبيرات أو عرض الخرائط).
نطاقات Google Cloud وDrive: إذا كانت طلبات البحث أو النصوص البرمجية في Earth Engine تشير إلى بيانات أو مواد عرض خارجية، يجب أن تتضمّن بيانات الاعتماد أيضًا النطاقات المناسبة لهذه الخدمات:
- Cloud Storage (GCS) (عند القراءة من حِزم Cloud Storage أو الكتابة إليها، مثل تحميل ملفات Cloud-Optimized GeoTIFF أو تصدير نواتج المهام):
https://www.googleapis.com/auth/devstorage.full_controlhttps://www.googleapis.com/auth/devstorage.read_writehttps://www.googleapis.com/auth/devstorage.read_only
- BigQuery (BQ) (عند قراءة الجداول أو كتابة عمليات التصدير إلى BigQuery):
https://www.googleapis.com/auth/bigquery
- Google Drive (عند الوصول إلى البيانات أو تصديرها إلى Google Drive):
https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/drive.readonly
تقدّم Google Cloud أيضًا نطاقات واسعة تشمل جميع خدمات Google Cloud:
- Cloud Platform (الوصول الواسع النطاق إلى خدمات Google Cloud، بما في ذلك Earth Engine وCloud Storage وBigQuery، مع العلم أنّ Google Drive هو خدمة منفصلة من Workspace ولا يشملها هذا النطاق):
https://www.googleapis.com/auth/cloud-platformhttps://www.googleapis.com/auth/cloud-platform.read-only
نطاقات الوصول التلقائية: تتضمّن نطاقات الوصول التلقائية التي تم ضبطها من خلال كل من "محرّر التعليمات البرمجية" في Earth Engine ومكتبات البرامج (مثل ee.Authenticate()) جميع نطاقات الوصول التالية: earthengine وcloud-platform وdrive (راجِع التفاصيل أعلاه).
نتيجةً لذلك، لا يكون تخصيص النطاق (على سبيل المثال، باستخدام المَعلمة scopes في ee.Authenticate(scopes=[...])) ضروريًا إلا إذا كانت لديك قيود أمان أو سياسات مؤسسية محدّدة تتطلّب تقييد الأذونات.
تحديد المشاكل وحلّها
ماذا أفعل إذا لم أتمكّن من إنشاء مشروع على Cloud؟
تتحكّم بعض المؤسسات في المستخدمين الذين يمكنهم إنشاء مشاريع على السحابة الإلكترونية. إذا تلقّيت رسالة خطأ في صفحة Notebook Authenticator عند محاولة إنشاء مشروع، يمكنك تجربة ما يلي:
- حاوِل إنشاء مشروع مباشرةً للتأكّد من توفّر الأذونات اللازمة.
- تواصل مع مشرف مؤسستك لمعرفة العمليات المتاحة لإنشاء مشروع.
- أنشئ مشروعًا من حساب غير تابع لمؤسسة، وأضِف الحساب الذي تستخدمه للعمل كمالك للمشروع. ملاحظة: لدى بعض المؤسسات سياسات أمان تمنع الوصول إلى برامج OAuth من مشاريع خارجية.
الخطأ: "لم يتم استخدام Earth Engine API في المشروع XXX من قبل أو أنّها غير مفعّلة"
أولاً، تأكَّد من إعداد مشروع في ee.Initialize() أو على سطر الأوامر (لن يتم تفعيل Earth Engine في المشاريع التلقائية التي توفّرها Cloud وColab). ثانيًا، تأكَّد من
تفعيل Earth Engine API في مشروعك.
الخطأ: "يحتوي المشروع على إعدادات غير متوافقة لعميل OAuth2"
يمكن أن تحتوي المشاريع على السحابة الإلكترونية على إعداد واحد فقط لعميل OAuth2. يمكنك التحقّق مما إذا كان مشروع على السحابة الإلكترونية يتضمّن إعدادًا لعميل OAuth2 من خلال الاطّلاع على معرّفات عميل OAuth 2.0 في صفحة "بيانات الاعتماد". عليك إما اختيار مشروع آخر على السحابة الإلكترونية تم إعداد إعدادات متوافقة له مسبقًا من خلال Notebook Authenticator، أو اختيار مشروع على السحابة الإلكترونية أو إنشاؤه بدون عملاء OAuth2. سيُعدّ جهاز المصادقة هذا المشروع تلقائيًا. للأسف، لا يسمح نظام OAuth للمستخدمين بحذف عمليات الإعداد، لذا يجب استخدام مشروع مختلف. ولا يشترط أن يكون هذا المشروع هو نفسه المشروع المستخدَم في أعمال Earth Engine الأخرى. يُرجى العِلم أنّ هذا الخطأ لا يحدث في وضع Colab.
خطأ: "تعذّر تنفيذ gcloud. يُرجى التحقّق من أي أخطاء أعلاه وتثبيت gcloud إذا لزم الأمر".
قد يحدث هذا الخطأ إذا لم يتم تثبيت gcloud أو إذا لم يكن متاحًا في PATH. قد يحدث ذلك أيضًا إذا اتصلت بـ ee.Authenticate(auth_mode='gcloud') من داخل خلية رمز في دفتر ملاحظات. استخدِم ee.Authenticate() بدلاً من ذلك، وسيتم تلقائيًا استخدام مصادقة وضع دفتر الملاحظات. إذا تعذّر عليك إنشاء مشروع، اطّلِع على الحلّ أعلاه.
ماذا أفعل إذا لم يكن لديّ جهاز محلي لتثبيت gcloud؟
إذا كنت تعمل في بيئة على الويب فقط بدون إمكانية الوصول إلى وحدة طرفية محلية، وكنت لا تزال بحاجة إلى استخدام وحدة طرفية عن بُعد، سيظل بإمكانك بدء تشغيل أداة سطر الأوامر من خلال تفعيل وضع دفتر الملاحظات عن طريق تنفيذ الأمر earthengine
authenticate --auth_mode=notebook.
الخطأ 400: redirect_uri_mismatch
قد يظهر هذا الخطأ عند المصادقة على جهاز بعيد بدون إمكانية الوصول إلى متصفّح ويب. جرِّب إضافة --quiet إذا كنت تنفّذ earthengine authenticate من سطر الأوامر أو ee.Authenticate(quiet=True) إذا كنت تستخدم برنامج Python. سيتطلّب ذلك إثبات هويتك باستخدام gcloud من جهاز يمكنه الوصول إلى متصفّح ويب.
الخطأ: "يتم التحقّق من تطبيقك باستخدام بيانات الاعتماد التلقائية للتطبيق المحلية. تتطلّب واجهة برمجة التطبيقات earthengine.googleapis.com مشروع حصة، وهو غير محدّد تلقائيًا".
قد يحدث هذا الخطأ عندما يتعذّر على Earth Engine تحديد رقم تعريف مشروعك. إذا لم تنجح خيارات تحديد المشاكل وحلّها في Google Cloud، جرِّب تشغيل earthengine set_project YOUR_PROJECT_ID أو gcloud
auth application-default set-quota-project YOUR_PROJECT_ID.
خطأ: "نطاقات مطلوبة غير متوفّرة في [Cloud Storage / BigQuery]"
يحدث هذا الخطأ عندما يصل طلب Earth Engine إلى موارد Cloud Storage أو BigQuery، ولكن بيانات الاعتماد المستخدَمة لتهيئة Earth Engine لا تتضمّن النطاقات المطلوبة لهذه الخدمة (أو النطاق cloud-platform الذي يشمل جميع خدمات Google Cloud). يحدث ذلك عادةً إذا خصّصت المَعلمة scopes أثناء المصادقة (على سبيل المثال، إذا قدّمت نطاقات Earth Engine فقط إلى ee.Authenticate(scopes=[...])) أو إذا تم إنشاء بيانات الاعتماد الحالية بدون هذه النطاقات.
هناك طريقتان لحلّ هذه المشكلة:
- إعادة المصادقة باستخدام النطاقات التلقائية: تتضمّن بيانات الاعتماد التلقائية في Earth Engine النطاق
cloud-platformالذي يشمل كلاً من Cloud Storage وBigQuery. أعِد المصادقة باستخدام الإعدادات التلقائية:- في Python:
ee.Authenticate(force=True) - في سطر الأوامر:
earthengine authenticate --force
- في Python:
- تضمين النطاقات المطلوبة: إذا كانت بيئتك تتطلّب تخصيص النطاقات، تأكَّد من أنّ قائمة
scopesتتضمّنhttps://www.googleapis.com/auth/cloud-platformأو نطاق الخدمة المحدّد (مثلhttps://www.googleapis.com/auth/devstorage.full_controlأوhttps://www.googleapis.com/auth/devstorage.read_onlyلخدمة Cloud Storage، أوhttps://www.googleapis.com/auth/bigqueryلخدمة BigQuery).
لمزيد من التفاصيل حول النطاقات المتاحة، يُرجى الاطّلاع على تفاصيل حول النطاقات.
ملاحظات فنية
بالنسبة إلى المهتمين بالجوانب الفنية، فإنّ الحاجة إلى آليات إنشاء بيانات الاعتماد المختلفة هذه تنشأ من الحاجة إلى تمرير بيانات الاعتماد إلى بيئة معروفة وموثوق بها. في ما يلي مناقشة سريعة للحالات المختلفة المذكورة أعلاه.
- كان يتوفّر وضع
pasteيمنحك رمزًا مميزًا يمكنك لصقه في أي مكان، ولكن تم إيقافه لأنّه كان ينطوي على مخاطر كبيرة. colab: سيطلب منكauth.authenticate_user()مشاركة بيانات الاعتماد مع عميل المصادقة في "Colab"، أي بيئة دفتر الملاحظات نفسها. بعد ذلك، تصبح هذه البيانات متاحة من خلالgoogle.auth.default()وتستخدمهاee.Initialize().localhost: يتم نقل بيانات الاعتماد من المتصفّح إلى منفذ على جهازك المحلي. في هذه الحالة، يعتمد الأمان التام بين الأطراف على عدم تعرّض جهازك المحلي للاختراق. عميل المصادقة الذي سيظهر لك هو "أداة مصادقة Earth Engine".gcloud: يستخدم هذا الأمر مسار--launch-browserالموضّح في مرجع gcloud، و--no-launch-browserإذا كان على جهاز بعيد. عميل المصادقة المستخدَم هو "مكتبة مصادقة Google".notebook: ننشئ عميل مصادقة جديدًا مخصّصًا لعملك، وسيظهر عنوان بريدك الإلكتروني في صفحة الموافقة. تم ضبط هذا العميل على وضع "التطوير"، وهو حالة خاصة تسمح باستخدام الرموز المميزة القديمة لوضع اللصق. يجب استخدام مشروعك الخاص لهذا الغرض، لأنّه لا يمكن مشاركة مثل هذه البرامج مع عدد كبير من المستخدمين.