1. 주제 제시
본 단계에서는 단일 시점 분석을 넘어, 두 시점 간 위성 지표 변화량을 계산하여 순천시의 생육 변화를 정량적으로 분석한다.
단순 분포 확인이 아닌, 시간에 따른 변화 패턴을 공간적으로 해석하는 과정으로 접근하였다.
2. 목표 제시
이 단계의 목표는
- 첫째, 시작 시점과 종료 시점의 데이터를 동일 기준에서 결합하는 것
- 둘째, 격자 단위 변화량을 계산하여 증가 및 감소를 정량화하는 것
- 셋째, 변화 방향과 강도를 시각적으로 표현하여 공간 패턴을 파악하는 것
이다.
3. 방법론 제시 (이론적·통계적)
변화량 분석은 시계열 데이터의 차분(differencing) 개념과 동일하다.
특정 시점 간 값의 차이를 계산함으로써 변화의 방향성과 크기를 동시에 파악할 수 있다.
특히 공간 데이터에서는 동일 위치(GRID_ID)를 기준으로 값을 비교해야 하므로,
이는 통계에서 key-based join 후 차이를 계산하는 방식과 유사하다.
또한 결과 시각화에서는 발산형 컬러맵(diverging colormap)을 사용하여 증가와 감소를 구분한다.
4. 코드 제시
| def calculate_change(df, col, start_date, end_date): start_df = df[df["OBS_DATE_STR"] == start_date][["GRID_ID", col]] end_df = df[df["OBS_DATE_STR"] == end_date][["GRID_ID", col]] merged = pd.merge(start_df, end_df, on="GRID_ID", suffixes=("_start", "_end")) merged["CHANGE"] = merged[f"{col}_end"] - merged[f"{col}_start"] return merged |
5. 설명 제시
해당 함수는 동일한 격자(GRID_ID)를 기준으로 두 시점 데이터를 결합한 뒤 변화량을 계산한다.
merge()는 공통 키 기반 데이터 결합을 수행하며, suffix를 통해 시작값과 종료값을 구분한다.
이후 단순 차이를 계산하여 변화량을 생성하며, 이는 시계열 분석의 가장 기본적인 형태다.
6. 구현 제시
실제 구현에서는 변화량 계산 후 GeoDataFrame과 다시 결합하여 시각화에 활용하였다.
| change_df = calculate_change(gdf, "NDVI", "2023-03-01", "2023-03-15") gdf = gdf.merge(change_df[["GRID_ID", "CHANGE"]], on="GRID_ID", how="left") map_obj = build_single_map(gdf, "CHANGE") |
또한 색상 표현 시 증가와 감소를 명확히 구분하도록 설정하였다.
| def get_change_color(value): if value > 0: return "green" elif value < 0: return "red" else: return "gray" |
7. 고도화 제시
향후에는 단순 차분 방식에서 벗어나 이동평균, 추세 분석, 이상탐지 기법을 적용할 수 있다.
또한 다중 시점 데이터를 활용한 시계열 모델(ARIMA, LSTM 등)을 적용하면 변화 예측까지 확장할 수 있다.
공간적으로는 변화량 클러스터링을 통해 특정 지역의 집중 변화를 탐지하는 것도 가능하다.
8. 연계 방향 제시
본 단계에서 계산된 변화량은 단일 시점 분석과 결합되어 생육 상태의 원인 해석에 활용된다.
특히 산불 영향과 결합할 경우, 변화의 원인을 보다 명확히 구분할 수 있다.
자기화 관점에서의 정리
이 단계는 단순 시각화에서 “분석”으로 넘어가는 지점이었다.
이전 단계에서는 특정 시점의 상태를 보는 것에 그쳤다면, 여기서는 시간에 따른 변화 자체를 직접 계산하고 해석하게 되었다.
특히 동일 격자를 기준으로 데이터를 결합하는 과정은 통계 분석에서의
key 기반 데이터 결합과 완전히 동일한 구조라는 점에서 익숙하면서도, 공간 데이터라는 점에서 새롭게 느껴졌다.
또한 변화량이라는 개념이 단순 차이가 아니라 “해석의 기준”이 된다는 점이 인상적이었다.
예를 들어 NDVI 감소가 특정 지역에서 집중적으로 나타날 경우,
단순한 수치 변화가 아니라 환경 변화나 이벤트 영향으로 해석할 수 있다는 점에서 분석의 의미가 확장되었다.
이 단계는 데이터 분석이 단순 계산이 아니라, 시간과 공간을 함께 고려한 해석 과정이라는 것을 이해하게 만든 부분이었다.

'취미생활 > Satellite Util' 카테고리의 다른 글
| [인공위성 연구] 산불 데이터 기반 위성 분석 시스템 설계 (MODIS 응용 Step1) (1) | 2026.04.30 |
|---|---|
| [인공위성 연구] 사용자 인터페이스 기반 분석 결과 통합 및 서비스화 과정 (1) | 2026.04.05 |
| [인공위성 연구] Python 기반 위성 데이터 시각화 웹앱 구현 (Streamlit Step7) (0) | 2026.04.04 |
| [인공위성 연구] 위성 데이터 시계열 변화 분석 방법 (NDVI 비교 Step6) (0) | 2026.04.03 |
| [인공위성 연구] NDVI 기반 1km 격자 시각화 구현 (Folium 지도 Step5) (0) | 2026.04.02 |