تثبيت Python - دفتر ملاحظات Colab

يمكن نشر واجهة برمجة التطبيقات Python API في دفتر ملاحظات Google Colaboratory. أوراق ملاحظات Colab هي أوراق ملاحظات Jupyter تعمل في السحابة الإلكترونية ومتكاملة بشكل كبير مع Google Drive، ما يسهّل إعدادها والوصول إليها ومشاركتها. إذا لم تكن familiarizado مع Google Colab أو أوراق ملاحظات Jupyter، يُرجى تخصيص بعض الوقت لأجل استكشاف الموقع الإلكتروني الترحيبي في Colab.

تصف الأقسام التالية نشر Earth Engine في Google Colab و عرض الخرائط والرسومات البيانية باستخدام حِزم Python التابعة لجهات خارجية.

فتح ورقة ملاحظات Colab

يمكن فتح دفاتر الملاحظات من Google Drive أو من واجهة Colaboratory.

دفتر ملاحظات جديد

Google Drive

افتح Google Drive وأنشئ ملفًا جديدًا.

  • جديد > المزيد > Colaboratory
  • انقر بزر الماوس الأيمن في مجلد واختَر المزيد > Colaboratory من قائمة السياق.

واجهة Colab

انتقِل إلى موقع Colab الإلكتروني وأنشئ ملفًا جديدًا.

  • ملف > جديد > دفتر ملاحظات Python 3 جديد
  • إذا سبق لك استخدام Colab، سيتيح لك الانتقال إلى الموقع الإلكتروني المرتبط أعلاه استخدام أداة استكشاف الملفات التي يمكنك من خلالها إنشاء ملف جديد باستخدام القائمة المنسدلة في أسفل النافذة.

دفتر ملاحظات حالي

يمكن فتح ملفات "دفتر ملاحظات" الحالية (‎.ipynb) من Google Drive وواجهة Colab.

Google Drive

يمكن أن تتوفّر أوراق ملاحظات Colab في مجلدات مختلفة في Google Drive استنادًا إلى مكان إنشاء ملفات أوراق الملاحظات. ستظهر المذكرات التي تم إنشاؤها في Google Drive في المجلد الذي تم إنشاؤها فيه أو نقلها إليه. سيتم تلقائيًا نقل أوراق الملاحظات التي تم إنشاؤها من واجهة Colab إلى مجلد باسم "أوراق ملاحظات Colab" تتم إضافته تلقائيًا إلى مجلد "ملفاتي" في Google Drive عند بدء استخدام Colab.

يمكن التعرّف على ملفات Colab من خلال رمز "CO" الأصفر وامتداد الملف "‎.ipynb". افتح الملفات إما من خلال النقر عليها مرّتين واختيار الفتح باستخدام > Colaboratory من الزرّ الظاهر في أعلى الصفحة الناتجة أو من خلال النقر بزر الماوس الأيمن على ملف واختيار الفتح باستخدام > Colaboratory من قائمة سياق الملف.

واجهة Colab

يتيح لك فتح أوراق الملاحظات من واجهة Colab الوصول إلى الملفات الحالية من Google Drive وGitHub والأجهزة المحلية. سيؤدي الانتقال إلى واجهة Colab بعد الاستخدام الأوّلي إلى ظهور نافذة File Explorer (مستكشف الملفات) . من علامات التبويب في أعلى مستكشف الملفات، اختَر مصدرًا وانتقِل إلى ملف ‎.ipynb الذي تريد فتحه. يمكن أيضًا الوصول إلى مستكشف الملفات من واجهة Colab عن طريق اختيار ملف > فتح ورقة ملاحظات أو باستخدام مزيج لوحة المفاتيح Ctrl+O.

استيراد واجهة برمجة التطبيقات والحصول على بيانات الاعتماد

يوضّح هذا القسم كيفية استيراد واجهة برمجة التطبيقات Python API في Earth Engine و مصادقة الوصول. يتوفّر هذا المحتوى أيضًا كدفتر ملاحظات Colab:

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

استيراد واجهة برمجة التطبيقات

نفِّذ الخلية التالية لاستيراد واجهة برمجة التطبيقات إلى جلستك.

import ee

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

شغِّل الدالة ee.Authenticate لمصادقة إذن وصولك إلى خوادم Earth Engine وee.Initialize لإعدادها. أضِف خلية رمز برمجي، وأدخِل الأسطر التالية، وعدِّل المشروع، ثم شغِّل الخلية.

# Trigger the authentication flow.
ee.Authenticate()

# Initialize the library.
ee.Initialize(project='my-project')

سيُطلب منك تفويض الوصول إلى حسابك على Earth Engine. اتّبِع التعليمات المطبوعة في الخلية لإكمال هذه الخطوة.

اختبار واجهة برمجة التطبيقات

اختبِر واجهة برمجة التطبيقات من خلال طباعة ارتفاع جبل إفرست. يُرجى العلم أنّه قبل استخدام واجهة برمجة التطبيقات، يجب إعدادها. شغِّل النص البرمجي التالي لبرنامج Python في خلية جديدة.

# Print the elevation of Mount Everest.
dem = ee.Image('USGS/SRTMGL1_003')
xy = ee.Geometry.Point([86.9250, 27.9881])
elev = dem.sample(xy, 30).first().get('elevation').getInfo()
print('Mount Everest elevation (m):', elev)

التمثيل البصري للبيانات على الخريطة

يمكن عرض عناصر ee.Image في خلايا إخراج دفتر الملاحظات. يوضّح المثالان التاليان عرض صورة ثابتة وخريطة تفاعلية.

صورة ثابتة

تحتوي وحدة IPython.display على الدالة Image التي يمكنها عرض نتائج عنوان URL الذي يمثّل صورة تم إنشاؤها من خلال استدعاء الدالة getThumbUrl في Earth Engine. سيعرض النص البرمجي التالي صورة مصغّرة لنموذج ارتفاع عالمي.

# Import libraries.
import ee
from IPython.display import Image

# Trigger the authentication flow.
ee.Authenticate()

# Initialize the library.
ee.Initialize(project='my-project')

# Import a DEM and display a thumbnail of it.
dem = ee.Image('USGS/SRTMGL1_003')
Image(url=dem.updateMask(dem.gt(0))
  .getThumbUrl({'min': 0, 'max': 4000, 'dimensions': 512,
                'palette': ['006633', 'E5FFCC', '662A00', 'D8D8D8', 'F5F5F5']}))

خريطة تفاعلية

يمكن استخدام حزمة folium لعرض عناصر ee.Image على خريطة Leaflet تفاعلية. لا تتضمّن Folium أسلوبًا تلقائيًا لمعالجة المربّعات من Earth Engine، لذا يجب تحديد أسلوب وإضافته إلى وحدة folium.Map قبل الاستخدام.

يقدّم النص البرمجي التالي مثالاً على إضافة طريقة لمعالجة شرائح Earth Engine واستخدامها لعرض نموذج ارتفاع على خريطة Leaflet.

# Import libraries.
import ee
import folium

# Trigger the authentication flow.
ee.Authenticate()

# Initialize the library.
ee.Initialize(project='my-project')

# Define a method for displaying Earth Engine image tiles to folium map.
def add_ee_layer(self, ee_image_object, vis_params, name):
  map_id_dict = ee.Image(ee_image_object).getMapId(vis_params)
  folium.raster_layers.TileLayer(
    tiles = map_id_dict['tile_fetcher'].url_format,
    attr = "Map Data © Google Earth Engine",
    name = name,
    overlay = True,
    control = True
  ).add_to(self)

# Add EE drawing method to folium.
folium.Map.add_ee_layer = add_ee_layer

# Fetch an elevation model.
dem = ee.Image('USGS/SRTMGL1_003')
# Set visualization parameters.
vis_params = {
  'min': 0,
  'max': 4000,
  'palette': ['006633', 'E5FFCC', '662A00', 'D8D8D8', 'F5F5F5']}

# Create a folium map object.
my_map = folium.Map(location=[20, 0], zoom_start=3)

# Add the elevation model to the map object.
my_map.add_ee_layer(dem.updateMask(dem.gt(0)), vis_params, 'DEM')

# Add a layer control panel to the map.
my_map.add_child(folium.LayerControl())

# Display the map.
display(my_map)

العرض المرئي للرسم البياني

تُنشئ بعض دوالّ Earth Engine بيانات جدولية يمكن تمثيلها باستخدام حِزم عرض البيانات، مثل matplotlib. يوضّح المثال التالي عرض البيانات الجداولية من Earth Engine في شكل مخطّط هَمّع. اطّلِع على إنشاء الرسوم البيانية في Colaboratory لمزيد من المعلومات.

# Import libraries.
import ee
import matplotlib.pyplot as plt

# Trigger the authentication flow.
ee.Authenticate()

# Initialize the Earth Engine module.
ee.Initialize(project='my-project')

# Fetch a Landsat TOA image.
img = ee.Image('LANDSAT/LT05/C02/T1_TOA/LT05_034033_20000913')

# Select Red and NIR bands, scale them, and sample 500 points.
samp_fc = img.select(['B3','B4']).sample(scale=30, numPixels=500)

# Arrange the sample as a list of lists.
samp_dict = samp_fc.reduceColumns(ee.Reducer.toList().repeat(2), ['B3', 'B4'])
samp_list = ee.List(samp_dict.get('list'))

# Save server-side ee.List as a client-side Python list.
samp_data = samp_list.getInfo()

# Display a scatter plot of Red-NIR sample pairs using matplotlib.
plt.scatter(samp_data[0], samp_data[1], alpha=0.2)
plt.xlabel('Red', fontsize=12)
plt.ylabel('NIR', fontsize=12)
plt.show()