المصادقة والإعداد

قبل أن تتمكّن من تقديم طلبات إلى Earth Engine من خلال مكتبة عميل، عليك المصادقة واستخدام بيانات الاعتماد الناتجة لإعداد عميل Earth Engine.

أداة تعديل الرموز في Earth Engine وJavaScript

تتم المصادقة والتهيئة تلقائيًا في "أداة تعديل الرموز". يمكنك اختيار توجيه الطلبات من خلال مشروع على السحابة الإلكترونية من تسجيل الدخول في أعلى يسار أداة تعديل الرموز.

إذا كنت تستخدم JavaScript API (خارج "أداة تعديل الرموز")، استخدِم إحدى أدوات المساعدة في المصادقة في ee.data (على سبيل المثال، ee.data.authenticateViaPopup()) متبوعةً بـ ee.initialize() كما هو موضّح في هذا المثال.

‫Python وسطر الأوامر

قبل استخدام مكتبة برامج Python في Earth Engine، عليك إجراء المصادقة (إثبات هويتك) واستخدام بيانات الاعتماد الناتجة لإعداد برنامج Python. تستخدم مسارات المصادقة مشاريع على السحابة الإلكترونية للمصادقة، ويتم استخدامها للاستخدام غير المدفوع (المجاني وغير التجاري) وكذلك للاستخدام المدفوع. للمصادقة والبدء، شغِّل

    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() will use Earth Engine credentials (which ee.Authenticate() stores in ~/.config/earthengine/credentials) or retrieve credentials from google.auth.default(), but if necessary you can pass a credentials= argument to use credentials from elsewhere, bypassing these defaults.

إذا كنت تصادق رمز Python البرمجي الذي سيتم تشغيله بدون إشراف، قد تحتاج إلى المصادقة باستخدام حساب خدمة بدلاً من حساب مستخدم. يمكنك الاطّلاع على هذه المستندات لمعرفة كيفية استخدام حسابات الخدمة مع Earth Engine. تشمل الطرق الأخرى authenticate_service_account في وحدة مصادقة Colab والطرق الموضّحة في دليل Cloud للمصادقة كحساب خدمة.

إذا كان الرمز البرمجي يعمل على جهاز افتراضي في Compute Engine، يتم إنشاء حساب خدمة تلقائي للبيئة، وسيستخدمه "ee.Initialize()" تلقائيًا. قد تحتاج إلى تسجيل حساب الخدمة لاستخدام Earth Engine إذا لم يتم تسجيل مشروع على السحابة الإلكترونية الذي تم من خلاله بدء الجهاز الافتراضي لاستخدامه مع Earth Engine (تجاري أو للاستخدام غير التجاري).

تفاصيل عن الأوضاع

auth_mode=colab. ستنشئ ee.Authenticate() بيانات الاعتماد التلقائية المتوافقة مع Colab أو تحصل عليها من خلال تشغيل colab.auth.authenticate_user() إذا لزم الأمر. تستخدم بيانات الاعتماد دائمًا نطاق cloud-platform ويمكن أيضًا استخدامها لطلب بيانات من Cloud APIs أخرى.

auth_mode=gcloud. يؤدي ذلك إلى تفويض المصادقة إلى أداة gcloud، وهو مماثل لتشغيل gcloud auth application-default login باستخدام نطاقات Earth Engine التلقائية (earthengine وcloud-platform وdrive) أو النطاقات في وسيطة scopes. يعمل وضع "gcloud" في كل من الحالات المحلية وعن بُعد.

تعليمات مفصّلة لوضع gcloud (الحالات المحلية والبعيدة)

  1. تأكَّد من تثبيت gcloud على الجهاز المحلي.
    • في الوحدة الطرفية، شغِّل gcloud help. إذا لم تكن أداة gcloud مثبّتة، اتّبِع هذه التعليمات لتثبيتها.
  2. Terminal على الجهاز المحلي
    • في الوحدة الطرفية، شغِّل earthengine authenticate.
    • سيشير ناتج الأمر إلى أنّه يتم استخدام gcloud لجلب بيانات الاعتماد.
    • ستفتح نافذة متصفّح على صفحة اختيار الحساب. إذا لم يفتح المتصفّح تلقائيًا، انقر على عنوان URL.
  3. المتصفّح: اختيار الحساب
    • اختَر الحساب الذي تريد استخدامه للمصادقة.
  4. المتصفّح: شاشة طلب الموافقة
    • أشِر إلى ما إذا كنت تريد منح النطاقات المطلوبة وانقر على "السماح".
  5. المتصفّح: شاشة التأكيد
    • سيعرض المتصفّح صفحة تؤكّد أنّه تمت مصادقتك، وسيعرض الأمر earthengine authenticate في نافذة المحطة الطرفية الرسالة "تم حفظ الرمز المميّز للمصادقة بنجاح".
    • في بعض الحالات، ستمنحك صفحة الويب رمزًا للصقه مرة أخرى في بيئة Python.
  6. تابِع عملية الإعداد.

auth_mode=localhost. هذا هو تدفق يشبه gcloud للحالات التي لا يتم فيها تثبيت gcloud. تنفّذ هذه الأداة الخطوات نفسها التي تنفّذها أداة gcloud، ولكنّها تعمل فقط في الحالة المحلية. يمكنك تقديم رقم منفذ إنترنت اختياري، مثل localhost:8086، أو استخدام localhost:0 لاختيار منفذ تلقائيًا. المنفذ التلقائي هو 8085.

auth_mode=notebook. هذا وضع للأغراض العامة مصمم للعمل في المواقف البعيدة حيث لا تتوفر أسطر الأوامر المحلية. سيتم توجيهك إلى صفحة Notebook Authenticator حيث عليك اختيار أو إنشاء "مشروع مصادقة". يمكنك الاطّلاع على التفاصيل ودليل تحديد المشاكل وحلّها أدناه. ليس من الضروري أن يتطابق المشروع الذي تم تمريره إلى ee.Initialize() مع هذا المشروع، إذ يمكنك الاحتفاظ بالمشروع نفسه للمصادقة أثناء العمل في مشاريع مختلفة في دفاتر ملاحظات مختلفة. ننصحك بتمرير مشروع بشكل صريح إلى ee.Initialize()، ولكن سيتم استخدام مشروع المصادقة تلقائيًا.

تعليمات مفصّلة حول وضع "الدفتر"

  1. المتصفّح: Notebook
    1. في خلية رمز دفتر الملاحظات، شغِّل الرمز التالي لبدء عملية مصادقة باستخدام وضع "دفتر الملاحظات".
      import ee
      ee.Authenticate()
      انقر على الرابط في ناتج الخلية لفتح صفحة Notebook Authenticator في علامة تبويب جديدة.
  2. المتصفّح: Notebook Authenticator
    1. تأكَّد من إدراج حساب المستخدم الصحيح.
    2. اختَر مشروعًا على Google Cloud لاستخدامه في المصادقة. إذا كنت بحاجة إلى إنشاء مشروع جديد، ننصحك باستخدام اصطلاح التسمية "ee-xyz"، حيث يمثّل xyz اسم المستخدم المعتاد في Earth Engine. (إذا لم تتمكّن من اختيار مشروع على السحابة الإلكترونية أو إنشائه، يُرجى الاطّلاع على قسم تحديد المشاكل وحلّها أدناه).
    3. انقر على "إنشاء رمز مميّز".
  3. المتصفّح: اختيار الحساب
    • ستظهر لك صفحة لاختيار الحساب. انقر على حساب المستخدم الذي تريد منحه إذن الوصول من ورقة الملاحظات.
  4. المتصفّح: صفحة التحذير
    • ستظهر صفحة تحذير تشير إلى أنّ Google لم تنشئ التطبيق (أي الرمز في ورقة الملاحظات). انقر على "متابعة" للإقرار.
  5. المتصفّح: شاشة طلب الموافقة
    • أشِر إلى ما إذا كنت تريد منح النطاقات المطلوبة وانقر على متابعة.
  6. المتصفّح: شاشة رمز التفويض
    • نسخ رمز التحقّق من التفويض
  7. المتصفّح: Notebook
    • ارجع إلى علامة تبويب دفتر الملاحظات، والصق رمز التحقّق في مخرجات خلية دفتر الملاحظات.
    • من المفترض أن يشير ناتج الخلية إلى "تم حفظ رمز التفويض بنجاح".
  8. تابِع عملية الإعداد.

يحتوي وضع Notebook على مَعلمة 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 أو الكتابة إليها، مثل تحميل ملفات GeoTIFF المحسّنة للسحابة الإلكترونية (COGs) أو تصدير مخرجات المهام):
    • https://www.googleapis.com/auth/devstorage.full_control
    • https://www.googleapis.com/auth/devstorage.read_write
    • https://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/drive
    • https://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-platform
    • https://www.googleapis.com/auth/cloud-platform.read-only

النطاقات التلقائية: تشمل النطاقات التلقائية التي تم ضبطها من خلال كل من أداة تعديل الرموز في Earth Engine ومكتبات العملاء (مثل ee.Authenticate()) جميع هذه النطاقات: earthengine وcloud-platform وdrive (يُرجى الاطّلاع على التفاصيل أعلاه). وبالتالي، لا يكون تخصيص النطاق (على سبيل المثال، باستخدام المَعلمة scopes في ee.Authenticate(scopes=[...])) ضروريًا إلا إذا كانت لديك قيود أمان محدّدة أو سياسات تنظيمية تتطلّب تقييد الأذونات.

تحديد المشاكل وحلّها

ماذا أفعل إذا لم أتمكّن من إنشاء مشروع على السحابة الإلكترونية؟

تتحكّم بعض المؤسسات في المستخدمين الذين يمكنهم إنشاء مشاريع على السحابة الإلكترونية. إذا ظهرت لك رسالة خطأ في صفحة Notebook Authenticator عند محاولة إنشاء مشروع، يمكنك تجربة بعض الحلول:

  1. حاوِل إنشاء مشروع مباشرةً للتأكّد مما إذا كانت لديك الأذونات اللازمة أم لا.
  2. يُرجى التواصل مع مشرف مؤسستك لمعرفة العمليات المتاحة لإنشاء مشروع.
  3. أنشئ مشروعًا من حساب غير مؤسسي، وأضِف الحساب الذي تستخدمه للعمل كمالك للمشروع. ملاحظة: لدى بعض المؤسسات سياسات أمان تمنع الوصول إلى عملاء 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
  • تضمين النطاقات المطلوبة: إذا كانت بيئتك تتطلّب تخصيص النطاقات، تأكَّد من أنّ قائمة 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 Authenticator".
  • ‫gcloud: يستخدم هذا الخيار مسار --launch-browser الموضّح في مرجع gcloud، و--no-launch-browser في حال استخدام جهاز عن بُعد. عميل المصادقة المستخدَم هو "مكتبة مصادقة Google".
  • notebook: ننشئ عميل مصادقة جديدًا خصيصًا لعملك، وسيظهر لك عنوان بريدك الإلكتروني في صفحة الموافقة. تم ضبط هذا العميل على وضع "التطوير"، وهو حالة خاصة تسمح باستخدام الرموز المميّزة القديمة لوضع اللصق. نحتاج إلى استخدام مشروعك الخاص لهذا الغرض، لأنّ هذه البرامج لا يمكن مشاركتها مع أعداد كبيرة من المستخدمين.