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

يمكن نشر Earth Engine Python API في ورقة ملاحظات Google Colaboratory. أوراق ملاحظات Colab هي أوراق ملاحظاتJupyter التي يتم تشغيلها في السحابة الإلكترونية وتتكامل بشكل كبير مع Google Drive، ما يسهّل إعدادها والوصول إليها ومشاركتها. إذا لم تكن على دراية بـ 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 Notebooks" تتم إضافته تلقائيًا إلى مجلد "ملفاتي" في Google Drive عند بدء العمل على Colab.

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

واجهة Colab

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

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

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

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

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

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

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()