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. 3 つの都市の地点を含むベクター データ オブジェクトを作成します。
    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. 3 つの都市の気候データを 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)

次のステップ