본문 바로가기
자료처리

R과 파이썬으로 농도가중역궤적(CWT) 그리기

by Prof. Sung-Deuk Choi 2026. 1. 27.

오늘 논문 수정하면서 역궤적 자료 처리 관련해서 Gemini와 대화를 했는데, 묻지도 않은 CWT를 해보겠냐며 코드를 작성해 준다고 했습니다.

 

CWT(Concentration Weighted Trajectory) 계산 공식

특정 섹터 $ij$에 대한 CWT 값은 다음과 같이 정의됩니다.

$$CWT_{ij} = \frac{1}{\sum_{k=1}^{N} \tau_{ijk}} \sum_{k=1}^{N} C_k \tau_{ijk}$$
  • $C_k$: $k$번째 궤적이 도착했을 때 측정된 오염 물질의 농도
  • $\tau_{ijk}$: $k$번째 궤적이 섹터 $ij$에 머문 시간
  • $N$: 전체 궤적의 개수

여러 차례 대화를 해서 다음과 같이 R openair 패키지 결과와 비슷한 그림을 만들었습니다. 

 

왼쪽은 R openair, 오른쪽은 일반 R 패키지(tidyverse, sf, maps)를 사용한 CWT 결과입니다. 단순히 그림만 그린 것이 아니라 가중치를 고려해서 CWT를 계산한 결과입니다. 격자 경계값 처리 방식이 일부 달라서 약간 세부적으로 다르지만 전반적인 오염원 파악과 이동경로 차원에서 두 결과가 거의 동일합니다. 즉, 기존의 openair 패키지를 쓰지 않아도 별도 작성 코드로 충분히 연구에 활용할 수 있습니다.

 

 

 

아래 그림은 R 코드를 파이썬(pandas geopandas numpy matplotlib cartopy pyreadr shapely) 코드로 변환하여 그린 그림입니다. R 그림과 거의 비슷합니다.

댓글