8월 이후, 수마트라와 칼리만탄의 산불 연기가 싱가포르 상공으로 드리워져 왔습니다. 24시간 PSI는 10월 18일에 최고 230을 기록했습니다. 저는 불이 난 곳, 그 연기, 그리고 바람을 한곳에서 보고 싶었기에 Claude Code를 이용해 이를 만들었습니다: https://sea-haze.teyou.dev/ (무료이며 로그인 필요 없고 휴대폰에서도 작동합니다). 이 지도가 보여주는 것들:
- 8월 1일부터의 모든 위성 화재 감지 기록을 날짜별로 재현 (10월 8일 하루에만 인도네시아에서 13,012건)
- Copernicus의 CAMS 모델 기반 연기 플룸(smoke plume), 향후 이틀간 포함
- 지난 5일 동안 싱가포르 상공을 지나온 대기의 흐름 (NOAA GFS 바람을 이용한 작은 입자 모델)
- 내일 전망: NOAA GEFS 예측치를 부채꼴 모양으로 표시하고, 예측 PSI 범위도 함께 제공합니다 (둘 다 예측치로 표기됨)
- 영어, 중국어, 말레이시아어, 인도네시아어로 된 10가지 장면 스토리 모드
Claude를 사용한 방법:
Claude Code가 코드를 작성했습니다: Python 데이터 파이프라인, 지도(MapLibre, 프레임워크 없음), 입자 모델, 그리고 CI까지. 제가 맡은 부분은 무엇을 만들지 결정하고 지도가 주장할 수 있는 범위가 어디인지 정하는 것이었습니다. 저는 작은 팀처럼 작업했습니다: 여러 개의 Claude Code 세션을 병렬로 사용했고, 각각 독립적인 git worktree를 이용했습니다. 모든 변경 사항은 GitHub 이슈로 시작하여, 이전/이후 스크린샷과 함께 풀 리퀘스트(pull request)로 제출되었고, 한 주도(lead session)가 검토하고 병합했습니다.
놀라웠던 점은 데이터 정제 과정이었습니다. 원시 위성 화재 데이터에는 가스 플레어, 공장, 화산, 햇빛 반사광(sun glint), 그리고 수면 위의 반사물 등이 포함되어 있습니다. 저희는 각각에 대한 규칙을 작성하여 지도가 정확하게 작동하기 전에 51,922건의 오탐지 데이터를 제거했습니다. 이제 이 시스템은 스스로 작동합니다: GitHub Actions가 하루에 두 번 데이터를 새로고침하고, Cloudflare가 사이트를 서비스하며, 작은 Cloudflare Worker가 데이터가 오래되었는지 경고해 줍니다. 워크플로우나 데이터에 대한 질문에 기꺼이 답하겠습니다. 여러분에게 더 유용하게 만들려면 어떤 것이 필요할까요?
데이터: NASA FIRMS, NEA (data.gov.sg), NOAA GFS 및 GEFS. 수정된 Copernicus Atmosphere Monitoring Service 정보가 포함되어 있습니다.
제출자: /u/teyou [링크] [댓글]