REMOTE SENSING

Google Earth Engine: 1m급 전세계 캐노피 높이 지도 사용법 소개

유병혁 2024. 8. 21. 03:22

안녕하세요? 이번 글은 Google Earth Engine에서 1m급 전세계 캐노피 높이 지도(Global Canopy Height Maps) 사용법을 소개해 보겠습니다. 해당 데이터셋은 Meta와 세계자원연구소(WRI) 간의 협력을 통해 개발되었으며, 아래 링크를 통해 세부 정보를 확인하실 수 있습니다. 이 글에서는 해당 데이터셋의 사용법을 코드로 제공해 봅니다.

 

Using Artificial Intelligence to Map the Earth’s Forests - Meta Sustainability

An open source, global canopy height dataset and a foundational AI model for a more accountable carbon market.

sustainability.atmeta.com

 

High Resolution 1m Global Canopy Height Maps - awesome-gee-community-catalog

High Resolution 1m Global Canopy Height Maps The Global Canopy Height Maps dataset offers comprehensive insights into tree canopy heights worldwide, providing an overview of tree canopy presence and height for the analysed period (2009-2020), with eighty p

gee-community-catalog.org

 

먼저 Earth Engine 인증 및 초기화를 진행합니다. 

import ee

# Earth Engine 인증
ee.Authenticate()

# Earth Engine 초기화
ee.Initialize(project='ee-foss4g')

 

대한민국 경계를 호출해 봅니다.

import geemap
import geemap.colormaps as cm

# FAO GAUL: Global Administrative Unit Layers 2015, Country Boundaries
countries = ee.FeatureCollection("FAO/GAUL/2015/level0")

# 'ADM0_NAME' 필드를 기준으로 '대한민국' 필터링
kr = countries.filter(ee.Filter.eq('ADM0_NAME', 'Republic of Korea'))

 

1m급 Meta Canopy Height와 함께, 30m급 UMD Canopy Height 와 10m급 ETH Canopy Height도 함께 호출해 보겠습니다. 해상력의 차이를 확실하게 비교할 수 있을 것입니다. Vworld 레이어도 추가해 봤습니다.

# 30m급 UMD Canopy Height
umd_canopy_height = ee.ImageCollection("users/potapovpeter/GEDI_V27").mosaic()

# 10m급 ETH Canopy Height
eth_canopy_height = ee.Image('users/nlang/ETH_GlobalCanopyHeight_2020_10m_v1')

# 1m급 Meta Canopy Height
meta_canopy_height = ee.ImageCollection(
    "projects/meta-forest-monitoring-okw37/assets/CanopyHeight"
).mosaic()
m = geemap.Map(layout={'height':'400px', 'width':'800px'})

# Vworld 영상지도
m.add_tile_layer(
    url='https://xdworld.vworld.kr/2d/Satellite/service/{z}/{x}/{y}.jpeg',
    name='Vworld Satellite',
    attribution='Vworld',
    shown=True
)

# 30m급 UMD Canopy Height
m.addLayer(umd_canopy_height, {
    'min': 0,
    'max': 25,
    'palette': cm.palettes.viridis
}, 'UMD Canopy Height', False)

# 10m급 ETH Canopy Height
m.addLayer(eth_canopy_height, {
    'min': 0,
    'max': 25,
    'palette': cm.palettes.viridis
}, 'ETH Canopy Height', False)

# 1m급 Meta Canopy Height
m.addLayer(meta_canopy_height, {
    'min': 0,
    'max': 25,
    'palette': cm.palettes.viridis
}, 'Meta Canopy Height')

# Vworld 하이브리드지도
m.add_tile_layer(
    url='https://xdworld.vworld.kr/2d/Hybrid/service/{z}/{x}/{y}.png',
    name='Vworld Hybrid',
    attribution='Vworld',
    shown=True
)

m.centerObject(kr, 6) # 경계 중심으로 지도 확대
m

 

아래 지역은 원주시의 일부로, 시가화 및 산림지역으로 구성되어 있습니다.

 

30m급 캐노피 높이에서는 주로 산림지역에 대한 데이터를 확인하실 수 있습니다. 

 

10m급 캐노피 높이는 산림지역 이외에도 시가화지역, 특히 아파트 조경수나 가로수 위치의 데이터를 확인할 수 있습니다.

 

Meta의 1m급 캐노피 높이는, 확연하게 향상된 해상력의 데이터를 확인할 수 있습니다.