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)

다음 단계