안녕하세요? 이번 글은 Google Earth Engine에서 반복문으로 연도별 NPP(2001-2023)를 저장해 보겠습니다. 앞서 작성한 아래 2개 글 내용에 삽입된 코드를 응용했다고 보시면 되겠습니다.
Google Earth Engine: 백두대간보호지역의 NPP(순일차생산량) 계산하기
안녕하세요? 이번 글은 Google Earth Engine을 사용하여 백두대간보호지역의 NPP(순일차생산량)을 계산해 보겠습니다. 백두대간보호지역은 하나의 예시이고, 다른 지역에 대해서도 NPP를 계산할 수 있
foss4g.tistory.com
Google Earth Engine: 이미지를 Google Drive로 내보내는 방법 소개
안녕하세요? 이번 글은 Google Earth Engine 이미지를 Google Drive로 내보내는 방법을 소개해 보겠습니다. 이어서 내보낸 이미지를 다시 읽어와 플롯도 그려보겠습니다. 먼저, Earth Engine을 인증 및 초기
foss4g.tistory.com
import ee
import geemap
import time
# Earth Engine 인증
ee.Authenticate()
# Earth Engine 초기화
ee.Initialize(project='ee-foss4g')
먼저, region이라는 이름의 경계상자를 정의했다고 가정하겠습니다. 우리는 2001년부터 2023년까지 순차적으로 연도별 NPP를 호출한 후, region 크기로 잘라내서 Google Drive로 내보낼 것입니다. 이를 위해 반복문을 사용하고 각 반복마다 래스터 파일을 생성하려고 합니다.
여기서는 일본 경계상자를 region으로 정의했고 좌표계는 EPSG:2454로 설정했습니다. 연도 리스트는 다음과 같이 정의해서 years라는 변수로부터 2001부터 2023까지 반복하려고 합니다.
crs = ee.Projection('EPSG:2454')
# 연도 리스트 생성
years = list(range(2001, 2024))
아래 코드는 각 연도에 대해 NPP 값을 계산하고 해당 이미지를 Google Drive로 내보내는 과정을 반복합니다. 스케일링, 해상도, 좌표계 등이 설정된 것을 확인하실 수 있고, 60초마다 진행상황을 확인할 수 있도록 설정했습니다.
# 각 연도에 대해 NPP 값을 계산
for year in years:
dataset = (
ee.ImageCollection('MODIS/061/MOD17A3HGF')
.filterDate(f"{year}-01-01", f"{year}-12-31")
.filterBounds(region)
)
# 첫 번째 이미지를 선택하고 필요한 연산 수행
npp = dataset.select('Npp').first().multiply(0.0001)
# 이미지를 Google Drive에 내보내기
task = ee.batch.Export.image.toDrive(
image=npp,
description=f"NPP_{year}",
folder='export',
scale=500, # 이미지의 해상도
crs=crs,
region=region, # 내보낼 영역
maxPixels=1e13,
fileFormat='GeoTIFF'
)
# 내보내기 작업 시작
task.start()
# 내보내기 작업 상태 확인
print('Export task started. Checking status...')
while True:
status = task.status()
state = status['state']
print('Polling for task (id: {}). Status: {}'.format(task.id, state))
if state in ['COMPLETED', 'FAILED']:
break
time.sleep(60) # 60초 간격으로 상태 확인
# 완료 후 상태 출력
print('Task completed. Final status:')
print(status)
이제 각 연도별 이미지가 출력됩니다.

이미지를 다운받아서 QGIS에서 시각화한 결과입니다. 행정경계는 GADM에서 다운받으실 수 있습니다.
전세계 국가 및 구역별 공간데이터 제공 'GADM' 소개
GADM(Global Administrative Areas) maps and data | https://gadm.org/ 안녕하세요? 이번 글에서는 전세계 국가 및 구역별 공간데이터를 제공하는 GADM을 둘러보도록 하겠습니다. 이 웹사이트는 캘리포니아 대학교
foss4g.tistory.com

참고로 QGIS에서는 구역 통계를 통해 NPP 픽셀 값의 합계를 계산할 수 있습니다.

아래와 같이 NPP_sum이 계산되었는데요, 해당 값의 단위는 kg*C/m^2이므로 NPP_sum * 250000 * 0.001 식에 따라 Mg으로 변환 처리하겠습니다.

필드 계산기를 열고, 해당 식을 적용하여 NPP의 Mg 수치를 변환할 수 있습니다.


