오늘 논문 수정하면서 역궤적 자료 처리 관련해서 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 그림과 거의 비슷합니다.

'자료처리' 카테고리의 다른 글
| LSTM 딥러닝을 이용한 오존 농도 추정 (0) | 2026.01.24 |
|---|---|
| TensorFlow 기반 파이썬 딥러닝 준비 사항 (0) | 2026.01.21 |
| 파이썬 개발환경 스파이더(Spyder) 소개와 벡터형 그림 저장 (0) | 2026.01.19 |
| R 콘솔 언어 변경하기 (0) | 2025.10.03 |
| SigmaPlot 열 제목 자동 입력 (1) | 2024.09.20 |
댓글