[python] 스마트서울 도시데이터 센서(S-DoT)로 보는 집중호우 발생시 온도장: 2. 온도장 확인 및 레이더 에코와 비교
·
대기과학/프로그래밍
- 개요저번 포스트에서는 S-DoT 자료를 전처리하고 간단히 그림을 그려보았습니다.2024년 8월 13일에 내린 집중호우는 서울 전역을 강타한 것이 아니라 특정 지역에만 내렸습니다.ASOS/AWS 관측소가 서울에 30개나 있지만 이 정도로는 국지성 호우의 영향을 보기 어렵습니다.하지만 서울에 1000개나 설치한 S-DoT이라면 국지성 호우의 영향을 확인할 수 있겠죠. 집중호우가 내린 곳은 온도가 급격히 떨어지기 때문에 레이더 에코의 위치와 S-DoT의 온도가 감소하는 위치가 거의 같을 겁니다.그러므로 2024년 8월 13일 시간별로 레이더 에코와 S-DoT 온도장을 확인해보겠습니다.우리는 변화를 봐야하기 때문에 정확히는 온도장을 그리는 것이 아니라 1시간 동안 변한 온도의 공간장을 그려야 합니다.만약 진..
[python] 스마트서울 도시데이터 센서(S-DoT)로 보는 집중호우 발생시 온도장: 1. 자료 전처리
·
대기과학/프로그래밍
- 개요한국에서 기상 관측 자료라 하면 보통 ASOS/AWS 기상 관측 자료를 말합니다.기상청뿐만 아니라 다른 기관이 설치한 ASOS/AWS 관측소의 수는 전국에 500개가 넘는데요.다른 나라와 비교해서 우리나라 정부가 정말 기상 관측소를 정말 촘촘히 설치한 겁니다.심지어 국가가 관리하기 때문에 관측품질도 좋죠.이렇게 촘촘히 설치했지만 서울에 설치되어있는 기상청 ASOS/AWS 관측소 숫자는 약 30개입니다.서울에 25개 행정구가 있으니 1구에 1개 정도 있는 셈이죠.  이외에도 2020년부터 서울에서는 IoT 센서가 설치되어 기상 변수가 측정되고 있습니다.서울 곳곳에 약 1000개의 IoT 센서가 설치되어 있고, 기상 변수 외에 다른 변수도 측정합니다. 기간은 2020년 4월부터 현재까지 시간은 1시간..
[python, html/css] 안개 속보 화면 만들기: 4. html 파일 만들기
·
대기과학/프로그래밍
- 개요지금까지 구한 텍스트, 그림으로 html 파일을 만들어봅시다.파이썬으로 html 파일을 직접 작성할 것이고, html/css의 기초는 알고 있으셔야 합니다. - html 파일 만들기파이썬 코드의 정보 중 총 3개가 html 파일로 전달되어야 합니다.1. 시간안개 속보의 2번째 줄을 보면 속보가 나온 시간이 있습니다.그림을 그린 시간보다 10분을 더해줘야 합니다. 2. 안개 현황 텍스트2번째 전 포스트에서 안개 현황에 넣을 텍스트를 만들었습니다.텍스트를 html에 넣기 좋게 태그를 입혀야합니다. 3. 시정 자료 그림저번 포스트에서 vis.png라는 이름으로 저장했습니다. 4. 배치전 아래와 같은 구조로 각 요소를 배치했습니다.점이 찍혀있으면 클래스 이름입니다(e.g., div .container >..
[python, html/css] 안개 속보 화면 만들기: 3. 시정 자료로 그림 그리기
·
대기과학/프로그래밍
- 개요저번 포스트에서 자료를 다 처리했으니 시정거리 자료로 그림을 그릴 차례입니다.최대한 안개 경보 화면의 그림과 똑같이 그려보죠. - 그림 그리기안개 경보 화면 그림을 보며 어떻게 그릴지 생각해봅시다.위도, 경도로 위치를 잡고 시정거리에 따라 다른 색으로 scatter plot을 그리면 되겠네요.칼라바의 색을 따오고, 칼라바 위치를 조정해야 합니다. 지금 보니 시정 자료뿐만 아니라 한글을 쓰기 위한 font 설정, 도 경계를 그리기 위한 shp파일도 필요하네요.한글 폰트를 넣는 방법은 이 글을 보시고, 한국 행정구역 shp 파일에 대한 것은 이 글을 보시면 됩니다. 먼저 안개 경보 그림의 칼라바 rgb값은 제가 다 땃으니 아래의 값을 쓰세요.import matplotlib.colors as mcolo..
[python, html/css] 안개 속보 화면 만들기: 2. 자료 다운로드와 처리
·
대기과학/프로그래밍
- 개요기상청 API허브에서 필요한 자료를 다운로드 받습니다.먼저 API로 받은 AWS 시정거리 자료를 pandas.DataFrame 형식으로 저장합니다. 다음으로 AWS가 어디 권역에 속하는지 알아야합니다.구역 4를 보시면 "권역: 관측지점 시정거리" 이런 형식의 글이 있습니다.  시정거리가 작은 지역을 권역별로 알려주는 듯합니다.AWS의 위치 정보는 마찬가지로 기상청 API 허브에 있습니다.다만 이 자료를 pandas.DataFrame에 넣기 위해 파싱(parsing)하는 과정이 생각보다 까다롭습니다. 마지막으로 시정거리와 위치 정보를 이용해서 구역4에 넣을 문자열을 생성합니다.  - 시정거리 자료 다운로드 및 처리기상청 API허브 홈페이지로 들어가서  좌측 지상관측탭 > 상단 방재기상관측(AWS)탭..
[python, html/css] 안개 속보 화면 만들기: 1. 흐름 및 계획
·
대기과학/프로그래밍
- 개요최근에 안개가 심하다는 문자를 받았습니다.안개는 기상현상이니 기상청에 들어가서 한 번 확인을 해봐야겠죠? 기상청 홈페이지에 들어가니 새로운 창에 안개와 관한 속보가 뜹니다. 자세히 보면 안개의 현황과 전망이 나오고 전국 관측소의 가시거리 그림이 나오네요. 요즘 무슨 주제할 지 고민이었는데 이거나 한 번 만들어보겠습니다.아마 다른 포스팅에서 쓰인 기술들을 잘 조합하면 만들 수 있을 것 같네요. - 안개 속보 화면 분석 및 계획짜기안개 속보 화면을 보면 크게 그림 부분과 텍스트의 두 부분으로 구성되어있으니 어떻게 작업을 할지 고민해봅시다. 아래의 2단계를 수행하면 되겠습니다.1. 프로그래밍 언어로 그림 파일 만들기2. 그림 파일을 불러와서 html 파일 만들기 제 생각에 기상청에서는 그림을 그리기 위..
[python] 북극 진동 (Arctic Oscillation) 패턴 계산 & 그리기 4: 북극 진동 패턴 예쁘게 그리기
·
대기과학/프로그래밍
- 개요북극 진동 패턴은 다 계산했으니 최대한 NOAA에서 제공하는 그림과 비슷하게 그려봅니다.길게 설명할 건 없고 그냥 코드로 들어가죠.  - NOAA 그림 따라 그리기1. 칼라맵 따오기뭐 어려운 건 없고 NOAA 그림을 캡쳐해서 그림판으로 연 다음색 선택 >>> 색 편집으로 NOAA 그림 칼라맵 색상의 rgb값을 가져온겁니다.colors에 저장하고 mcolors를 이용해서 custom_cmap으로 저장합니다.import matplotlib.colors as mcolorscolors = [ (0.078431373, 0.392156863, 0.823529412), # -45 ~ -40 (0.156862745, 0.509803922, 0.941176471), # -40 ~ -35 (0...
[python] 북극 진동 (Arctic Oscillation) 패턴 계산 & 그리기 3: 북극 진동 패턴 구하기
·
대기과학/프로그래밍
- 개요북극 진동 패턴을 구하기 위해 자료 처리를 했으니 이제 북극 진동 패턴을 구해봐야겠죠.EOF 분석을 한 후 여기서 나온 시계열을 다시 hgtAno에 regression하여 regression map을 구해야 합니다.저번에 구한 hgtAno 변수부터 시작합니다. - EOF 분석 이론EOF는 Empirical Orthgonal Function으로 직역하면 경험직교함수입니다.자세히 설명하기에는 포스트를 하나 새로 쓸 정도로 분량이 많아서 대략적으로만 설명합니다. 대기과학에서 EOF 분석을 사용하는 이유는 특정 지역에서 가장 변동성이 큰 패턴, 다른 말로는 가장 설명을 잘하는 (explainable) 공간 패턴을 찾고, 그 공간 패턴이 어떤 식으로 변하는지(공간 패턴의 시계열) 확인하고자 함입니다.이 때..
[python] 북극 진동 (Arctic Oscillation) 패턴 계산 & 그리기 2: 자료 수집과 처리
·
대기과학/프로그래밍
- 개요이번 포스트에서는 저번에 정한 자료 수집, 자료 처리 목표를 달성합니다.목표는 자료 수집에서 1개, 자료 처리에서 3개로 총 4가지입니다. - 자료 수집목표 1. NCEP2 재분석 자료 수집: NOAA 사이트에서 월평균 1000 hPa 지위고도 다운로드 (2, 3)먼저 아래 링크로 들어갑니다.https://psl.noaa.gov/data/gridded/data.ncep.reanalysis2.html다음 그림의 설명대로 하시면 NCEP2 재분석 자료인 hgt.mon.mean.nc파일을 다운로드 받을 수 있습니다.  - 자료 처리목표 2. 자료 추출: 북위 20도 이상, 1979~2000년 (4, 8)nc파일을 읽기 위해 xarray 라이브러리를 씁니다.isel과 sel 그리고 slice를 이용하여 ..