TL;TR
증강 식물 지수 (EVI)는 원격 감지에서 널리 사용되는 분광 지수로, 위성 영상을 통해 식물 건강 및 영역을 평가하는 데 사용됩니다. 일반화된 차이 식물 지수 (NDVI)를 개선하여 대기 영향을 최소화하고 수관 구조 변화 및 밀집 식물 지역에 대한 민감도를 향상시켰습니다.
EVI의 주요 특징:
- 식물에 대한 민감도: EVI는 대기 영향을 최소화하고 수관 특성에 대한 민감도를 증가시킴으로써 특히 밀집 식물 지역에서 효과적으로 작동하도록 설계되었습니다.
- 공식: EVI 공식은 빨강, 근적외선 (NIR), 파랑 분광대를 포함하여 식물에 대한 민감도를 개선합니다.
여기서:
- NIR은 근적외선 대역의 반사율입니다.
- Red는 빨간 대역의 반사율입니다.
- Blue는 파란 대역의 반사율입니다.
- G는 이득 요소입니다 (기본값: 2.5).
- C1 및 C2는 대기의 영향을 최소화하기 위한 계수입니다 (기본값: 각각 6 및 7.5).
- L은 수관 배경 조정 요소입니다 (기본값: 1).
값의 범위: EVI 값은 일반적으로 -1에서 1 사이의 범위를 갖습니다.
- 높은 값은 밀도가 높은 식물을 나타냅니다.
- 0 또는 음수에 가까운 값은 비식물 또는 희소식물이 자리 잡은 지역을 나타냅니다.
응용:
- 식물 모니터링: EVI는 식물 동태를 모니터링하는 데 널리 사용되며 성장 패턴, 건강 평가, 그리고 환경 요소 또는 인간 활동으로 인한 변화 감지에 도움이 됩니다.
- 토지 이용 및 토지 피복 매핑: 특히 식물로 지배되는 토지 이용 유형을 매핑하고 분류하는 데 도움이 됩니다.
- 생태학 연구: 식물 분포를 분석하는 데 유용하며, 생물 다양성 평가 및 서식지 매핑에 활용됩니다.
장점:
- 민감도 향상: NDVI와 비교하여 밀집 식물 지역의 변화에 대한 감도를 향상시켰습니다.
- 대기 보정: 대기 간섭을 줄이기 위한 계수를 포함하여 대기 보정을 통해 전 세계 및 지역 규모의 응용 프로그램에 더 견고하게 만들었습니다.
고려 사항:
- 데이터 요구 사항: 일반적으로 중고해상도 위성 플랫폼에서 널리 사용되는 빨강, NIR 및 파랑 밴드를 갖춘 다중 스펙트럼 위성 영상이 필요합니다.
- 매개변수 민감도: 계수 G, C1, C2 및 L의 선택에 민감하며 특정 환경 조건 및 연구 목표에 따라 조정이 필요할 수 있습니다.
선행 조건:
이 여정에서는 다음을 설치해야 합니다:
- Python 3.10+
- 시각화를 위한 QGIS 3.X.X +
또한 다음이 필요합니다:
- Copernicus 사이트에서 다운로드할 데이터 세트. 2024년 2월 27일 센티넬 2 2A 이미지로 작업할 예정입니다 (이미지 참조: T36QUL_20240227T082911).
- Copernicus 플랫폼에서 다운로드할 수 있습니다; 데이터 다운로드에 대한 문서를 확인할 수 있습니다.
Sentinel-2 데이터를 활용한 실제 적용:
1. 저장소 복제
분류 스크립트 및 학습 샘플을 가져오세요:
git clone https://github.com/kokatic/remote_sensing
이렇게 작성하시면 됩니다 :
내 레포지토리(/data/)에 데이터 폴더를 추가했습니다. 이 폴더에는 2024년 4월 30일 에르 우에드 지역의 Sentinel-2 데이터가 포함되어 있습니다. 기준 이미지는 T32SKC_20240430T102021이며, 밴드 4와 8을 포함하고 있습니다.
2. 가상 환경 생성 및 필수 모듈 설치
현재 작업 폴더 디렉토리에서 명령 줄 인터페이스를 엽니다:
python -m venv venv
그런 다음 가상 환경을 활성화합니다:
Windows용 (CMD)에서:
venv\Scripts\activate # Linux의 경우: source venv/bin/activate
필요한 패키지 설치 후:
pip install -r requirements.txt
3. 스크립트 실행
동일한 폴더에서 스크립트를 실행하려면 터미널 또는 명령 프롬프트를 열고 스크립트가 있는 폴더로 이동한 다음 다음 명령을 실행하세요:
import rasterio
import numpy as np
def calculate_evi(red_band_path, nir_band_path, blue_band_path, output_path):
try:
# rasterio 데이터셋으로 빨간색, NIR, 파란색 밴드 열기
with rasterio.open(red_band_path) as red_dataset, \
rasterio.open(nir_band_path) as nir_dataset, \
rasterio.open(blue_band_path) as blue_dataset:
# rasterio 데이터셋에서 데이터 읽기
red = red_dataset.read(1, masked=True).astype('float32')
nir = nir_dataset.read(1, masked=True).astype('float32')
blue = blue_dataset.read(1, masked=True).astype('float32')
# EVI 계산
G = 2.5
C1 = 6
C2 = 7.5
L = 1
epsilon = 1e-6 # 0으로 나누기를 피하기 위한 작은 엡실론 값
denominator = nir + C1 * red - C2 * blue + L
evi = np.where(denominator != 0, G * ((nir - red) / denominator), np.nan)
# EVI 값을 [-1, 1] 범위로 클리핑
evi = np.clip(evi, -1, 1)
# EVI 출력을 위한 프로필 업데이트
profile = red_dataset.profile
profile.update(dtype=rasterio.float32, count=1, compress='lzw')
# 새 GeoTIFF 파일에 EVI 결과 작성
with rasterio.open(output_path, 'w', **profile) as dst:
dst.write(evi.astype(np.float32), 1)
except Exception as e:
print(f"오류가 발생했습니다: {e}")
# 예시 파일 경로
red_band_path = 'data/Toshka/S2A_MSIL2A_20240227T082911/T36QUL_20240227T082911_B04_10m.jp2' # 빨간색 밴드
nir_band_path = 'data/Toshka/S2A_MSIL2A_20240227T082911/T36QUL_20240227T082911_B08_10m.jp2' # 근적외선 밴드
blue_band_path = 'data/Toshka/S2A_MSIL2A_20240227T082911/T36QUL_20240227T082911_B02_10m.jp2' # 파란색 밴드
output_path = 'output/evi.tif' # EVI 출력 파일
calculate_evi(red_band_path, nir_band_path, blue_band_path, output_path)
스크립트를 실행한 후 output/ 폴더에 EVI 출력물을 찾을 수 있습니다:
3- 결과 확인: 시각화와 분석
- EVI 출력 파일 (evi.tif)을 QGIS에 로드합니다.
- 더 밀집한 식물 상층을 나타내는 더 높은 EVI 값의 시각화를 위해 적합한 컬러 팔레트를 적용합니다.
- EVI 값에 기반하여 관심 영역을 강조하기 위해 시각화 설정을 조정하여 식물 건강 평가 및 토지 피복 맵핑을 지원합니다.
결론
요약하자면, 향상된 식물지수(EVI)는 원격 감지 응용 프로그램에 강력한 도구로, 식물 역학 및 건강 평가에 대한 감도를 향상시켜줍니다. Sentinel-2 위성 이미지와 Python 및 QGIS와 같은 컴퓨터 도구를 활용하여 연구원 및 실무자는 효과적으로 식물 변화를 모니터링하고 토지 피복 유형을 분류하며 생태학 연구 및 환경 관리에 기여할 수 있습니다. 더 자세한 내용이나 문의 사항이 있으시면 언제든지 댓글을 남기거나 직접 연락해주세요.
팔로우
- 내 랜딩 페이지
- 내 Youtube 채널
- 내 SaaS 서비스
- 내 GitHub