開始使用 Python 適用的 Earth Engine

本快速入門課程將透過互動式介面,介紹如何使用 Earth Engine Python 介面,呈現及分析地理空間資料。

事前準備

註冊或建立 Google Cloud 專案,系統會提示您完成下列步驟。如果您已註冊 Earth Engine 存取權的專案,請跳至下一個部分。

  • 選取專案用途:商業或非商業。
  • 如果目的是非商業用途,請選取專案類型。
  • 建立新的 Google Cloud 專案,或選取現有專案。
  • 如果目的是商業用途,請驗證或設定專案的結帳資訊。
  • 確認專案資訊。

    注意:如果您不打算保留在這項程序中建立的資源,請建立新專案,不要選取現有專案。完成這些步驟後,您可以刪除專案,移除專案擁有的所有資源。

筆記本設定

您可以使用 Jupyter 筆記本使用 Earth Engine,並以互動方式探索結果。最快的開始方式,就是使用 Google Colab 筆記本中的筆記本。您可以開啟新的筆記本,並將下列程式碼片段複製到個別儲存格,或是使用預先填入的 Earth Engine Python 快速入門筆記本
  1. 匯入 Earth Engine 和 geemap 程式庫。
    import ee
    import geemap.core as geemap

  1. 驗證並初始化 Earth Engine 服務。請按照隨後顯示的提示完成驗證。請務必將 PROJECT_ID 替換為您為這個快速入門導覽課程設定的專案名稱。
    ee.Authenticate()
    ee.Initialize(project='PROJECT_ID')

在地圖中新增光柵資料

  1. 載入指定期間的氣候資料,並顯示其中繼資料。
    jan_2023_climate = (
        ee.ImageCollection('ECMWF/ERA5_LAND/MONTHLY_AGGR')
        .filterDate('2023-01', '2023-02')
        .first()
    )
    jan_2023_climate

  1. 將地圖物件例項化,並將溫度帶新增為具有特定視覺化屬性的圖層。顯示地圖。
    m = geemap.Map(center=[30, 0], zoom=2)
    
    vis_params = {
        'bands': ['temperature_2m'],
        'min': 229,
        'max': 304,
        'palette': 'inferno',
    }
    m.add_layer(jan_2023_climate, vis_params, 'Temperature (K)')
    m

在地圖中加入向量資料

  1. 建立向量資料物件,其中包含三個城市的路線點。
    cities = ee.FeatureCollection([
        ee.Feature(ee.Geometry.Point(10.75, 59.91), {'city': 'Oslo'}),
        ee.Feature(ee.Geometry.Point(-118.24, 34.05), {'city': 'Los Angeles'}),
        ee.Feature(ee.Geometry.Point(103.83, 1.33), {'city': 'Singapore'}),
    ])
    cities
  1. 將城市地點新增至地圖並重新顯示。
    m.add_layer(cities, name='Cities')
    m

擷取資料並以圖表呈現

  1. 匯入 Altair 圖表程式庫。
    %pip install -q --upgrade altair
    import altair as alt

  1. 將三個城市的氣候資料擷取為 pandas DataFrame。
    city_climates = jan_2023_climate.reduceRegions(cities, ee.Reducer.first())
    
    city_climates_dataframe = ee.data.computeFeatures(
        {'expression': city_climates, 'fileFormat': 'PANDAS_DATAFRAME'}
    )
    city_climates_dataframe
  1. 以長條圖繪製各城市的溫度。
    alt.Chart(city_climates_dataframe).mark_bar(size=100).encode(
        alt.X('city:N', sort='y', axis=alt.Axis(labelAngle=0), title='City'),
        alt.Y('temperature_2m:Q', title='Temperature (K)'),
        tooltip=[
            alt.Tooltip('city:N', title='City'),
            alt.Tooltip('temperature_2m:Q', title='Temperature (K)'),
        ],
    ).properties(title='January 2023 temperature for selected cities', width=500)

後續步驟