본문 바로가기
취미생활/Satellite Util

[인공위성 연구] 위성 데이터 전처리와 오류 처리 방법 (GeoPandas 활용 Step2)

by woo_yu 2026. 4. 1.
반응형

1. 주제 제시

본 단계에서는 순천시 생육 변화 분석을 위한 전체 실행 환경과 분석 프레임워크를 정의한다.

단순한 코드 실행 준비가 아니라, 공간 데이터와 위성 지표를 동일한 기준에서

해석하기 위한 구조를 설계하는 과정으로 접근하였다.

특히 자연어 질의 기반 시각화 시스템이라는 특성상,

사용자 입력과 데이터 처리 흐름이 일관되게 연결되도록 초기 구조를 설정하는 것이 핵심이다.

 

2. 목표 제시

이 단계의 목표는 좌표계, 데이터 경로, 임계값과 같은 분석 기준을 사전에 고정하여 결과 일관성을 확보하는 것이다.

또한 Streamlit 기반 인터페이스를 통해 사용자 질의와 분석 결과가 단절되지 않고 연결되도록 하며,

공간 데이터 간 정합성 문제를 사전에 제거하는 것을 목표로 한다.

 

3. 방법론 제시 (이론적·통계적)

공간정보 분석에서 좌표계 불일치는 가장 기본적인 오류 원인이 되므로 단일 CRS(EPSG:5186)로 정규화하는 것이 필수적이다.

이는 통계 분석에서 변수 단위를 맞추는 과정과 유사하다.

또한 산불 영향 임계값 설정은 연속형 데이터를 기준값으로 분리하는 threshold 기반 분류 방식으로,

통계적 의사결정 경계 설정과 동일한 구조를 가진다.

 

4. 코드 제시

st.set_page_config(page_title="순천시 생육 분석", layout="wide")

TARGET_CRS = "EPSG:5186"
FIRE_THRESHOLD = -0.2

DATA_PATH = "./data/suncheon.csv"
SHP_PATH = "./shp/suncheon.shp"

 

5. 설명 제시

해당 코드는 전체 분석의 기준을 정의하는 핵심 블록이다.

TARGET_CRS는 모든 공간 데이터를 동일 좌표계로 변환하기 위한 기준이며,

이후 격자 생성 및 거리 계산의 정확도를 좌우한다.

FIRE_THRESHOLD는 산불 영향 여부를 판단하는 기준값으로,

단순 필터링이 아니라 이벤트 해석 기준으로 작용한다. 데이터 경로는 분석 재현성을 확보하는 중요한 요소이다.

 

6. 구현 제시

실제 구현에서는 위 설정값을 전역 변수로 선언하여 모든 분석 함수에서 동일하게 참조하도록 구성하였다.

이를 통해 좌표계 변환, 격자 생성, 시각화 단계에서 기준이 흔들리지 않도록 했다.

또한 Streamlit 기반으로 사용자 인터페이스를 구성하여 분석 흐름이 자연스럽게 이어지도록 설계하였다.

# 좌표계 적용 예시
gdf = gdf.to_crs(TARGET_CRS)

# 산불 영향 필터링 예시
fire_gdf = gdf[gdf["fire_effect_ndvi"] <= FIRE_THRESHOLD]

# 데이터 경로 기반 로딩
df = pd.read_csv(DATA_PATH)
shp = gpd.read_file(SHP_PATH)

위와 같이 설정값을 실제 처리 로직에 직접 연결함으로써,

환경 설정이 단순 선언이 아닌 분석 과정에 실질적으로 반영되도록 구현하였다.

 

7. 고도화 제시

향후에는 입력 데이터의 CRS를 자동 감지하여 동적으로 변환하는 구조로 확장할 수 있다.

또한 산불 임계값 역시 고정값이 아닌

데이터 분포 기반 분위수 또는 표준편차 기준으로 설정하면 분석의 유연성과 신뢰도를 높일 수 있다.

 

8. 연계 방향 제시

본 단계에서 정의된 환경 설정은 이후 자연어 질의 해석, 데이터 정제, 격자 생성, 보간 및 시각화 단계와 직접적으로 연결된다.

특히 좌표계와 임계값은 전체 분석 결과의 정확성을 결정하는 핵심 변수로 작용한다.

 

자기화 관점에서의 정리

처음에는 단순한 초기 설정으로 생각했지만, 실제로는 분석 전체의 구조를 결정하는 핵심 단계라는 점을 이해하게 되었다.

특히 좌표계 문제는 직접 오류를 겪으면서 중요성을 체감했고, 임계값 설정은 통계적 기준 설정과 동일한 개념으로 연결되었다.

이 단계는 단순 코드 작성이 아니라 분석 기준을 정의하는 과정이었다.

 

반응형