REMOTE SENSING

geemap: NASA SRTM Digital Elevation 30m 검색 및 다운로드

유병혁 2023. 8. 3. 10:39

안녕하세요? 이번 글은 geemap를 통해 Earth Engine Data Catalog에서 제공하는 NASA SRTM Digital Elevation 30m 데이터를 조회하고 다운로드 받는 과정을 정리해 보겠습니다.

Earth Engine Data Catalog

Earth Engine Data Catalog는 Google Earth Engine에서 사용 가능한 데이터셋 및 이미지 컬렉션에 대한 정보를 포함하는 온라인 데이터 리포지토리입니다. 데이터셋(Dataset)은 Google Earth Engine에서 관리되는 정형 데이터를, 이미지 컬렉션(Image Collection)은 동일한 데이터셋의 여러 시간 스탬프들을 묶어서 처리하기 쉽게 만든 개념입니다.

 

NASA SRTM Digital Elevation 30m

 

NASA SRTM Digital Elevation 30m  |  Earth Engine Data Catalog  |  Google for Developers

The Shuttle Radar Topography Mission (SRTM, see Farr et al. 2007) digital elevation data is an international research effort that obtained digital elevation models on a near-global scale. This SRTM V3 product (SRTM Plus) is provided by NASA JPL at a resolu

developers.google.com

Shuttle Radar Topography Mission (SRTM)은 디지털 고도 데이터(digital elevation data)입니다.  SRTM V3 제품(SRTM Plus)은 NASA JPL에서 제공되며, 1아크초(약 30m)의 해상도로 제공됩니다. 이 데이터셋은 상용 소스로 채워지거나 공백을 포함하는 다른 버전과 달리, 오픈 소스 데이터(ASTER GDEM2, GMTED2010 및 NED)를 사용하여 공백을 채우는 과정을 거쳤습니다.

NASA SRTM Digital Elevation 30m 데이터 검색 및 다운로드

geemap과 ee 모듈을 가져오고, Earth Engine에 인증하고 초기화하는 작업을 수행합니다. ee.Authenticate() 함수는 Earth Engine과 연결된 Google 계정으로 인증하고 인증 토큰을 얻는 역할을 합니다. 한 번 인증이 완료되면, 그 이후에는 인증 코드를 다시 입력할 필요 없이 해당 인증 토큰을 사용하여 Earth Engine과 통신할 수 있습니다.

import geemap
import ee

# Earth Engine 인증
ee.Authenticate()

# Earth Engine 초기화
ee.Initialize()

Earth Engine Data Catalog에서 FAO GAUL (Global Administrative Unit Layers) 2015 국가 경계를 불러와, 대한민국을 필터링하고 해당 경계를 시각화합니다. FeatureCollection은 점, 선, 폴리곤과 같은 공간 데이터를 나타내는데 사용됩니다.

 

FAO GAUL: Global Administrative Unit Layers 2015, Country Boundaries  |  Earth Engine Data Catalog  |  Google for Developers

The Global Administrative Unit Layers (GAUL) compiles and disseminates the best available information on administrative units for all the countries in the world, providing a contribution to the standardization of the spatial dataset representing administra

developers.google.com

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

# 지도 생성
Map = geemap.Map()

# 지도에 경계 표시
Map.centerObject(kr, 7) # 경계 중심으로 지도 확대
Map.addLayer(kr, {}, "Republic of Korea")

# 지도 출력
Map

elevation 변수를 시각화해 봅니다.

# SRTM Digital Elevation 30m
SRTM = ee.Image('USGS/SRTMGL1_003')
elevation = SRTM.select('elevation')
visParams = {
    'min': 0,
    'max': 5000,
    'palette': ['000000','006600', '009900','33CC00','996600','CC9900','CC9966','FFFFFF']}

# 지도 생성
Map = geemap.Map()

Map.centerObject(kr, 4) # 경계 중심으로 지도 확대
Map.addLayer(elevation, visParams, 'Elevation')
Map

elevation 값을 대한민국 영역으로 잘라내어 GeoTIFF 파일로 저장합니다. geemap 라이브러리를 이용하여 Google Earth Engine에서 생성된 이미지를 Google Drive로 내보내는 작업을 수행합니다.

# 대한민국 영역으로 잘라내기
elevation_kr = elevation.clipToCollection(kr)

# 데이터를 Google Drive에 저장
geemap.ee_export_image_to_drive(
    elevation_kr,
    description='elevation',
    folder='export',
    region=kr.geometry(),
    scale=100
)

이제 해당 데이터는 QGIS에서도 다룰 수 있습니다. 여기까지 geemap를 통해 Earth Engine Data Catalog에서 제공하는 NASA SRTM Digital Elevation 30m 데이터를 조회하고 다운로드 받는 과정을 정리해 봤습니다.

1909_geemap_NASA SRTM Digital Elevation 30m 검색 및 다운로드.ipynb
0.00MB