Penginstalan Python - Notebook Colab

Earth Engine Python API dapat di-deploy di notebook Google Colaboratory. Notebook Colab adalah notebook Jupyter yang berjalan di cloud dan sangat terintegrasi dengan Google Drive, sehingga mudah disiapkan, diakses, dan dibagikan. Jika Anda tidak terbiasa dengan Google Colab atau notebook Jupyter, luangkan waktu untuk menjelajahi situs selamat datang Colab.

Bagian berikut menjelaskan cara men-deploy Earth Engine di Google Colab dan memvisualisasikan peta dan diagram menggunakan paket Python pihak ketiga.

Membuka notebook Colab

Notebook dapat dibuka dari Google Drive atau antarmuka Colaboratory.

Notebook baru

Google Drive

Buka Google Drive dan buat file baru.

  • Baru > Lainnya > Kolaborasi
  • Klik kanan folder, lalu pilih Lainnya > Colaboratory dari menu konteks.

Antarmuka Colab

Buka situs Colab dan buat file baru.

  • File > New > New Python 3 notebook
  • Jika sebelumnya Anda telah berinteraksi dengan Colab, mengunjungi situs yang ditautkan di atas akan memberi Anda file explorer tempat Anda dapat memulai file baru menggunakan menu dropdown di bagian bawah jendela.

Notebook yang ada

File notebook yang ada (.ipynb) dapat dibuka dari Google Drive dan antarmuka Colab.

Google Drive

Notebook Colab dapat berada di berbagai folder di Google Drive, bergantung pada tempat file notebook dibuat. Notebook yang dibuat di Google Drive akan ada di folder tempat notebook tersebut dibuat atau dipindahkan. Notebook yang dibuat dari antarmuka Colab akan otomatis disimpan ke folder bernama 'Notebook Colab' yang otomatis ditambahkan ke folder 'Drive Saya' di Google Drive Anda saat Anda mulai menggunakan Colab.

File Colab dapat diidentifikasi dengan simbol 'CO' berwarna kuning dan ekstensi file '.ipynb'. Buka file dengan mengklik dua kali file tersebut dan memilih Buka dengan > Colaboratory dari tombol yang ada di bagian atas halaman yang dihasilkan atau dengan mengklik kanan file dan memilih Buka dengan > Colaboratory dari menu konteks file.

Antarmuka Colab

Membuka notebook dari antarmuka Colab memungkinkan Anda mengakses file yang ada dari Google Drive, GitHub, dan hardware lokal. Mengunjungi antarmuka Colaboratory setelah penggunaan awal akan menyebabkan modal file explorer muncul. Dari tab di bagian atas file explorer, pilih sumber dan buka file .ipynb yang ingin Anda buka. File Explorer juga dapat diakses dari antarmuka Colab dengan memilih File > Open notebook atau menggunakan kombinasi keyboard Ctrl+O.

Mengimpor API dan mendapatkan kredensial

Bagian ini menunjukkan cara mengimpor Earth Engine Python API dan mengautentikasi akses. Konten ini juga tersedia sebagai notebook Colab:

Earth Engine API disertakan secara default di Google Colaboratory sehingga hanya memerlukan impor dan autentikasi. Langkah-langkah ini harus diselesaikan untuk setiap sesi Colab baru atau jika Anda memulai ulang kernel Colab atau jika virtual machine Colab Anda didaur ulang karena tidak aktif.

Mengimpor API

Jalankan sel berikut untuk mengimpor API ke sesi Anda.

import ee

Mengautentikasi dan melakukan inisialisasi

Jalankan fungsi ee.Authenticate untuk mengautentikasi akses Anda ke server Earth Engine dan ee.Initialize untuk melakukan inisialisasi. Tambahkan sel kode, masukkan baris berikut, edit project, dan jalankan sel.

# Trigger the authentication flow.
ee.Authenticate()

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

Anda akan diminta untuk memberikan otorisasi akses ke akun Earth Engine Anda. Ikuti petunjuk yang dicetak ke sel untuk menyelesaikan langkah ini.

Menguji API

Uji API dengan mencetak ketinggian Gunung Everest. Perhatikan bahwa sebelum menggunakan API, Anda harus menginisialisasi API. Jalankan skrip Python berikut di sel baru.

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

Visualisasi peta

Objek ee.Image dapat ditampilkan ke sel output notebook. Dua contoh berikut menunjukkan tampilan gambar statis dan peta interaktif.

Gambar statis

Modul IPython.display berisi fungsi Image, yang dapat menampilkan hasil URL yang mewakili gambar yang dihasilkan dari panggilan ke fungsi Earth Engine getThumbUrl. Skrip berikut akan menampilkan thumbnail model elevasi global.

# 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']}))

Peta interaktif

Paket folium dapat digunakan untuk menampilkan objek ee.Image di peta Leaflet interaktif. Folium tidak memiliki metode default untuk menangani ubin dari Earth Engine, sehingga metode harus ditentukan dan ditambahkan ke modul folium.Map sebelum digunakan.

Skrip berikut memberikan contoh penambahan metode untuk menangani ubin Earth Engine dan menggunakannya untuk menampilkan model elevasi ke peta 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)

Visualisasi diagram

Beberapa fungsi Earth Engine menghasilkan data tabel yang dapat dipetakan oleh paket visualisasi data seperti matplotlib. Contoh berikut menunjukkan tampilan data tabel dari Earth Engine sebagai plot titik. Lihat Pembuatan diagram di Colaboratory untuk mengetahui informasi selengkapnya.

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