티스토리 뷰
반응형
1. 위성사진을 이용하여 토지이용 변화를 정량화
위성사진을 이용하여 토지이용 변화를 정량화하는 방법은 다양합니다. 이 중에서 가장 일반적인 방법 중 하나는 Normalized Difference Vegetation Index (NDVI)를 계산하는 것입니다.
NDVI는 녹색 식물 지수로서, 식물 생장의 정도와 토양 수분 함량 등을 나타내는 지수입니다. NDVI를 계산하여 지난 몇 년 동안 토지 이용이 변화한 정도를 측정할 수 있습니다.
아래는 파이썬으로 NDVI를 계산하여 토지이용 변화를 정량화하는 예시 코드입니다.
이 코드에서는 Landsat 8 위성에서 제공하는 지상 반사율 데이터를 사용합니다.
import rasterio
import numpy as np
# 파일 경로 설정
before_image_path = "before_image.tif"
after_image_path = "after_image.tif"
# before_image.tif와 after_image.tif의 NDVI를 계산하는 함수
def calculate_ndvi(image_path):
# 빨강(nir)와 근적외선(red) 밴드의 index를 가져옴
with rasterio.open(image_path) as src:
red = src.read(3)
nir = src.read(4)
# 0으로 나누는 것을 방지하기 위해 작은 수를 더함
np.seterr(divide='ignore', invalid='ignore')
# NDVI를 계산
ndvi = (nir.astype(float) - red.astype(float)) / (nir + red + 0.0000000001)
return ndvi
# NDVI 값을 계산하여 이미지로 저장
before_ndvi = calculate_ndvi(before_image_path)
after_ndvi = calculate_ndvi(after_image_path)
# NDVI 차이 계산
ndvi_difference = after_ndvi - before_ndvi
# NDVI 차이를 이미지로 저장
with rasterio.open(before_image_path) as src:
profile = src.profile
profile.update(count=1, dtype=rasterio.float32)
with rasterio.open("ndvi_difference.tif", "w", **profile) as dst:
dst.write(ndvi_difference.astype(rasterio.float32), 1)
이 코드는 before_image.tif와 after_image.tif의 NDVI를 계산하고 NDVI 차이를 계산하여 ndvi_difference.tif 파일로 저장합니다. 이 파일을 열어보면, 빨강색은 NDVI가 증가한 지역을, 파랑색은 NDVI가 감소한 지역을 나타냅니다. 이를 이용하여 토지 이용이 어떻게 변화했는지를 확인할 수 있습니다.
반응형
'Remote Sensing' 카테고리의 다른 글
AI 모델을 사용한 도시 홍수 취약성 지도 제작(4) (0) | 2023.02.20 |
---|---|
AI 모델을 사용한 도시 홍수 취약성 지도 제작(3) (0) | 2023.02.18 |
AI 모델을 사용한 도시 홍수 취약성 지도 제작(2) (0) | 2023.02.16 |
AI 모델을 사용한 도시 홍수 취약성 지도 제작(1) (0) | 2023.02.14 |
Rasterio 파이썬 패키지를 사용하여 공간 래스터 데이터 처리 (0) | 2023.02.13 |
댓글