نصب پایتون - نوت بوک کولب

رابط برنامه‌نویسی پایتون Earth Engine را می‌توان در یک دفترچه یادداشت Google Colaboratory مستقر کرد. دفترچه‌های Colab، دفترچه‌های Jupyter هستند که در فضای ابری اجرا می‌شوند و با Google Drive کاملاً یکپارچه شده‌اند و همین امر راه‌اندازی، دسترسی و اشتراک‌گذاری آنها را آسان می‌کند. اگر با دفترچه‌های Google Colab یا Jupyter آشنا نیستید، لطفاً مدتی را صرف کاوش در سایت خوشامدگویی Colab کنید.

بخش‌های بعدی، پیاده‌سازی Earth Engine در Google Colab و مصورسازی نقشه‌ها و نمودارها با استفاده از بسته‌های پایتون شخص ثالث را شرح می‌دهند.

یک دفترچه یادداشت Colab باز کنید

دفترچه‌ها را می‌توان از طریق گوگل درایو یا رابط کاربری Colaboratory باز کرد.

دفترچه یادداشت جدید

گوگل درایو

گوگل درایو را باز کنید و یک فایل جدید ایجاد کنید.

  • جدید > بیشتر > همکاری
  • در یک پوشه کلیک راست کرده و از منوی زمینه، گزینه More > Colaboratory را انتخاب کنید.

رابط کولاب

به سایت Colab مراجعه کنید و یک فایل جدید ایجاد کنید.

  • فایل > جدید > دفترچه یادداشت جدید پایتون ۳
  • اگر قبلاً با Colab کار کرده‌اید، با مراجعه به سایت لینک‌شده‌ی بالا، یک فایل اکسپلورر در اختیارتان قرار می‌گیرد که می‌توانید با استفاده از منوی کشویی پایین پنجره، یک فایل جدید ایجاد کنید.

دفترچه یادداشت موجود

فایل‌های نوت‌بوک موجود (.ipynb) را می‌توان از گوگل درایو و رابط Colab باز کرد.

گوگل درایو

دفترچه‌های یادداشت Colab می‌توانند بسته به محل ایجاد فایل‌های دفترچه یادداشت، در پوشه‌های مختلفی در Google Drive وجود داشته باشند. دفترچه‌های یادداشت ایجاد شده در Google Drive در پوشه‌ای که ایجاد یا به آن منتقل شده‌اند، وجود خواهند داشت. دفترچه‌های یادداشت ایجاد شده از رابط Colab به طور پیش‌فرض در پوشه‌ای به نام «دفترچه‌های یادداشت Colab» قرار می‌گیرند که هنگام شروع کار با Colab، به طور خودکار به پوشه «My Drive» در Google Drive شما اضافه می‌شود.

فایل‌های Colab را می‌توان با نماد زرد «CO» و پسوند فایل «.ipynb» شناسایی کرد. فایل‌ها را با دوبار کلیک کردن روی آنها و انتخاب Open with > Colaboratory از دکمه‌ای که در بالای صفحه نمایش داده می‌شود یا با کلیک راست روی یک فایل و انتخاب Open with > Colaboratory از منوی زمینه فایل، باز کنید.

رابط کولاب

باز کردن دفترچه یادداشت‌ها از رابط Colab به شما امکان می‌دهد به فایل‌های موجود از Google Drive، GitHub و سخت‌افزار محلی دسترسی پیدا کنید. بازدید از رابط Colab پس از اولین استفاده، منجر به نمایش یک پنجره کاوشگر فایل می‌شود. از تب‌های بالای کاوشگر فایل، منبعی را انتخاب کنید و به فایل .ipynb که می‌خواهید باز کنید، بروید. همچنین می‌توانید با انتخاب File > Open notebook یا استفاده از ترکیب صفحه کلید Ctrl+O از رابط Colab به کاوشگر فایل دسترسی پیدا کنید.

وارد کردن API و دریافت اعتبارنامه‌ها

این بخش نحوه وارد کردن API پایتون Earth Engine و احراز هویت دسترسی را نشان می‌دهد. این محتوا همچنین به عنوان یک دفترچه یادداشت Colab در دسترس است:

رابط برنامه‌نویسی کاربردی موتور زمین (Earth Engine API) به طور پیش‌فرض در Google Colaboratory گنجانده شده است، بنابراین فقط نیاز به وارد کردن و احراز هویت دارد. این مراحل باید برای هر جلسه جدید Colab یا در صورت راه‌اندازی مجدد هسته Colab یا در صورت بازیافت ماشین مجازی Colab به دلیل عدم فعالیت، انجام شوند.

وارد کردن API

برای وارد کردن API به جلسه خود، سلول زیر را اجرا کنید.

import ee

احراز هویت و مقداردهی اولیه

تابع ee.Authenticate را برای تأیید دسترسی خود به سرورهای Earth Engine و ee.Initialize را برای مقداردهی اولیه آن اجرا کنید. یک سلول کد اضافه کنید، خطوط زیر را وارد کنید، پروژه را ویرایش کنید و سلول را اجرا کنید.

# Trigger the authentication flow.
ee.Authenticate()

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

از شما خواسته می‌شود که دسترسی به حساب کاربری Earth Engine خود را تأیید کنید. برای تکمیل این مرحله، دستورالعمل‌های چاپ شده روی سلول را دنبال کنید.

API را آزمایش کنید

API را با چاپ ارتفاع کوه اورست آزمایش کنید. توجه داشته باشید که قبل از استفاده از API باید آن را مقداردهی اولیه کنید. اسکریپت پایتون زیر را در یک سلول جدید اجرا کنید.

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

تجسم نمودار

Some Earth Engine functions produce tabular data that can be plotted by data visualization packages such as matplotlib . The following example demonstrates the display of tabular data from Earth Engine as a scatter plot. See Charting in Colaboratory for more information.

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