기상관측:지상:자동기상관측장비_aws
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 기상관측:지상:자동기상관측장비_aws [2024/05/29 10:23] – [5.3. 자료구조의 표준규격] admin | 기상관측:지상:자동기상관측장비_aws [Unknown date] (현재) – 제거됨 - 바깥 편집 (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| - | ====== 자동기상관측 데이터 ====== | ||
| - | [[기상관측: | ||
| - | |||
| - | ===== 1. 관측장비소개 ===== | ||
| - | {{강릉ASOS.jpg? | ||
| - | ==== 1.1. 정의 ==== | ||
| - | 자동기상관측장비는 사용목적에 따라 종관기상관측장비(ASOS)과 방재기상관측장비(AWS)로 구분합니다. | ||
| - | 종관기상관측장비(ASOS)는 관측관서에서 목측요소를 제외한 기상요소에 대한 관측업무를 자동화한 것이며, 방재기상관측장비(AWS)는 기상관측 사각지역에 관측 공백 해소 및 국지적인 위험기상을 연속자동 관측하여 방재기상업무를 지원하는 자동기상관측장비를 말합니다. | ||
| - | 또한 농업기상관측장비(AAOS)를 종관기상관측장비(ASOS) 또는 방재기상관측장비(AWS)에 통합하여 운영함(2017. 8. 3.)에 따라 자동기상관측장비의 기준을 적용합니다. | ||
| - | ==== 1.2. 구성 ==== | ||
| - | 자동기상관측장비는 센서부, 자료처리부, | ||
| - | |||
| - | === 1.2.1. 센서부 (Sensor) === | ||
| - | |||
| - | | ||
| - | |||
| - | === 1.2.2. 자료처리부 === | ||
| - | |||
| - | | ||
| - | |||
| - | === 1.2.3. 부대장비 및 부대설비 === | ||
| - | |||
| - | (1) 전원공급장치 | ||
| - | | ||
| - | |||
| - | (2) 기상실황판 | ||
| - | | ||
| - | |||
| - | (3) 국지수집장치 | ||
| - | | ||
| - | |||
| - | (4) 모뎀 | ||
| - | | ||
| - | ===== 2. 관측환경 ==== | ||
| - | |||
| - | ==== 2.1. 관측 장소의 요건 ==== | ||
| - | 기상요소는 관측소 부근의 일반적인 기상상태를 대표할 수 있어야 하므로 관측소 위치는 관측에 영향을 줄 수 있는 높은 건물 등이 많은 곳이나 산악, 산림, 호수, 기타 장애물의 영향을 받는 곳은 피해야 하며, 평탄하고 바람의 유통이 잘되고 시야가 넓은 곳에 위치해야 합니다. 또한 관측소는 업무의 수행상 교통과 통신 등 최적의 관측환경 요건을 구비해야 합니다. | ||
| - | |||
| - | |||
| - | * 관측장소는 지상에 설치하는 것을 원칙으로 한다. 다만, 장애물 등의 영향이나 토지의 사용이 어려운 경우에는 건물의 옥상 등 적절한 장소에 설치할 수 있음 | ||
| - | * 관측장소의 면적은 35제곱미터 이상 | ||
| - | * 관측장소의 형태는 원형 또는 정사각형을 원칙으로 함 | ||
| - | * 관측장소가 지상인 경우에는 지면에 자연잔디를조성하고, | ||
| - | * 관측장소에는 기상측기 외의 다른 시설물의 설치를 최소화하여야 함 | ||
| - | * 관측장소에는 기상측기의 보호를 위하여 통풍에 지장이 없는 울타리를 설치 | ||
| - | * 건물 옥상에 온도계를 설치할 경우에는 건물의 복사열을 최소화할 수 있는 조치를 해야 함 | ||
| - | |||
| - | ==== 2.2. 관측소의 위치 ==== | ||
| - | |||
| - | * 그 지역의 기상을 대표할 수 있는 곳이어야 함 | ||
| - | * 건물·나무·숲 등 장애물의 영향이 적은 곳이어야 함 | ||
| - | * 아스팔트·콘크리트 등 인공물의 영향이 적은 곳이어야 함 | ||
| - | * 기상관측장비의 유지·관리를 위한 접근성이 용이한 곳이어야 함 | ||
| - | * 관측시설의 보호 등 안정성이 보장될 수 있는 곳이어야 함 | ||
| - | |||
| - | ==== 2.3. 관측소의 주변환경 ==== | ||
| - | |||
| - | * 기상관측에 영향을 미칠 수 있는 장애물의 영향이 적은 곳이어야 함 | ||
| - | * 주변지형이 평탄한 곳이어야 한다. 다만, 산악지역 등 특수목적을 위한 관측소의 경우에는 그러하지 아니함 | ||
| - | |||
| - | ===== 3. 관측센서 ===== | ||
| - | {{기상측기별_설치기준_제3조제2항_관련_.pdf|기상측기별 설치기준 제3조제2항}} | ||
| - | |||
| - | ==== 3.1. 온도계(지면‧초상‧지중온도계 포함) ==== | ||
| - | 기온 관측방식은 유리제 온도계, 백금저항 온도계, 서미스터 온도계 등이 있으나, 열전도가 높고 부식이 잘 안되는 백금선을 활용한 백금저항온도계를 주로 사용합니다. | ||
| - | === 온도센서의 표준규격 === | ||
| - | == 자동기상관측장비의 표준규격 (기상청 고시, ‘19. 6. 3.) == | ||
| - | ^관측 센서^형식^ 내용^ | ||
| - | | 온도 센서 | 금속형 | ◦ 측정범위: | ||
| - | |:::| 박막형 | ◦ 측정범위: | ||
| - | == 백금저항 온도센서(좌) 및 지중온도계(우) == | ||
| - | {{온도계.png? | ||
| - | ==== 3.2. 풍향‧풍속계 ==== | ||
| - | 바람(풍향‧풍속) 관측을 위한 장비에는 풍차형, 3배형 풍속계, 초음파 풍속계, 방향타형 풍향계, 로빈손 풍속계, 에어로벤 등이 있으며, 주로 풍배형풍속계를 사용합니다. | ||
| - | |||
| - | | ||
| - | === 풍향센서의 표준규격 === | ||
| - | == 자동기상관측장비의 표준규격 (기상청 고시, ‘19. 6. 3.) == | ||
| - | ^관측센서^형식^내용^ | ||
| - | |풍향센서|그레이 코드식|◦ 측정범위: | ||
| - | |:::|전위 차계식| ◦ 측정범위: | ||
| - | |::: | ||
| - | |||
| - | |||
| - | === 풍속센서의 표준규격 === | ||
| - | == 자동기상관측장비의 표준규격 (기상청 고시, ‘19. 6. 3.) == | ||
| - | ^관측 센서^형식^내용^ | ||
| - | | 풍속 센서 | 광초퍼식 | ◦ 측정범위: | ||
| - | |:::| 자기 유도식 | ◦ 측정범위: | ||
| - | |:::| 초음파식 | ◦ 측정범위: | ||
| - | |||
| - | == 풍배형풍속계(좌) 및 풍차형(에어로벤)풍향풍속계(우) == | ||
| - | {{풍향풍속계.png? | ||
| - | |||
| - | ==== 3.3. 기압계 ==== | ||
| - | 기압센서는 광범위한 기압과 기온범위에서 사용가능한 디지털 기압계로 자체 기차보정, | ||
| - | | ||
| - | | ||
| - | |||
| - | === 기압센서 표준규격 | ||
| - | == 자동기상관측장비의 표준규격 (기상청 고시, ‘19. 6. 3.) == | ||
| - | ^관측센서^형식^내용^ | ||
| - | |기압센서|정전 용량식 | ◦ 측정범위: | ||
| - | |||
| - | == 기압계(좌) 및 자료처리기(우) == | ||
| - | {{기압계.png? | ||
| - | |||
| - | ==== 3.4. 습도계 ==== | ||
| - | 습도계는 노점계, 정전용량 습도계, 자외선 습도계 등이 있으며, 정전용량형 고분자막 습도계를 주로 사용합니다. | ||
| - | |||
| - | | ||
| - | |||
| - | === 습도센서의 표준규격 === | ||
| - | == 자동기상관측장비의 표준규격 (기상청 고시, ‘19. 6. 3.) == | ||
| - | |||
| - | ^관측 센서 ^형식^내용^ | ||
| - | |습도 센서|정전 용량식|◦ 측정범위: | ||
| - | |||
| - | == 습도센서(좌) 및 차광통(우) == | ||
| - | {{습도계.png? | ||
| - | |||
| - | ==== 3.5. 강수량계 ==== | ||
| - | 강수량계는 무게식강수량계, | ||
| - | |||
| - | | ||
| - | |||
| - | === 강수량 센서의 표준규격 === | ||
| - | == 자동기상관측장비의 표준규격 (기상청 고시, ‘19. 6. 3.) == | ||
| - | ^관측 센서 ^형식^내용^ | ||
| - | |강수량 센서 | 무게식|◦ 측정범위: | ||
| - | |::: | ||
| - | |||
| - | == 무게식강수량계(좌) 및 전도식강수량계(우) == | ||
| - | {{강수량계.png? | ||
| - | |||
| - | ==== 3.6. 강수유무계 ==== | ||
| - | | ||
| - | |||
| - | === 강수유무 센서의 표준규격 === | ||
| - | == 자동기상관측장비의 표준규격 (기상청 고시, ‘19. 6. 3.) == | ||
| - | ^관측 센서 ^형식^내용^ | ||
| - | |강수 유무 센서 | 임피던스 검출형, \\ 정전용량 검출형 | ◦ 측정범위: | ||
| - | |||
| - | == 임피던스 검출형 강수유무계 == | ||
| - | {{강수유무계.png? | ||
| - | |||
| - | ==== 3.7. 시정·현천계 ==== | ||
| - | | ||
| - | |||
| - | == 자동기상관측장비의 표준규격 (기상청 고시, ‘19. 6. 3.) == | ||
| - | ^관측 센서 ^형식^내용^ | ||
| - | |시정 센서|산란식|◦ 측정범위: | ||
| - | |||
| - | == 시정현천계 == | ||
| - | {{시정현천계.png? | ||
| - | |||
| - | ==== 3.8. 일사계 ==== | ||
| - | | ||
| - | |||
| - | === 일사센서의 표준규격 === | ||
| - | == 자동기상관측장비의 표준규격 (기상청 고시, ‘19. 6. 3.) == | ||
| - | ^관측 센서 ^형식^내용^ | ||
| - | |일사 센서|열전대식| ◦ 민 감 도(Sensitivity): | ||
| - | |||
| - | == 전천 일사계 == | ||
| - | {{일사계.png? | ||
| - | |||
| - | ==== 3.9. 일조계 ==== | ||
| - | | ||
| - | |||
| - | === 일조센서의 표준규격 === | ||
| - | == 자동기상관측장비의 표준규격 (기상청 고시, ‘19. 6. 3.) == | ||
| - | ^관측 센서 ^형식^내용^ | ||
| - | |일조 센서 |회전 거울식, \\ 광다이오드식|◦ 측정범위: | ||
| - | |||
| - | == 회전 거울식 일조계 == | ||
| - | {{일조계.png? | ||
| - | |||
| - | ==== 3.10. 운고‧운량계 ==== | ||
| - | | ||
| - | |||
| - | == 자동기상관측장비의 표준규격 (기상청 고시, ‘19. 6. 3.) == | ||
| - | ^관측 센서 ^형식^내용^ | ||
| - | |운고센서|레이저식|◦ 측정범위: | ||
| - | |||
| - | == 레이저식 운고운량계 == | ||
| - | {{운고운량계.png? | ||
| - | |||
| - | |||
| - | ==== 3.11. 적설계 ==== | ||
| - | | ||
| - | |||
| - | == 자동기상관측장비의 표준규격 (기상청 고시, ‘19. 6. 3.) == | ||
| - | ^관측 센서 ^형식^내용^ | ||
| - | |적설 센서|레이저식|◦ 측정범위: | ||
| - | |||
| - | == 레이저식 적설계 == | ||
| - | {{적설계.png? | ||
| - | |||
| - | |||
| - | ===== 4. 관측지점 ===== | ||
| - | |||
| - | ==2023.9.1기준== | ||
| - | ^구분^수도권청^부산청^광주청^대전청^강원청^대구청^제주청^전주지청^청주지청^계^ | ||
| - | |종관기상관측장비\\ (ASOS 98개소)|9|17|14|8|14|16|4|10|6|98| | ||
| - | |방재기상관측장비\\ (AWS 539개소)|101|66|87|42|78|64|39|35|27|539| | ||
| - | |계|110|83|101|50|92|80|43|45|33|637| | ||
| - | |||
| - | {{기상관측장비분포도.png? | ||
| - | |||
| - | ^지점번호^지점명(한글)^지점명(영문)^경도(degree)^위도(degree)^관측장비 해발고도(m)^기압계 해발고도(m)^온도계 높이(m)^풍향/ | ||
| - | | 90 | 속초 | Sokcho | 128.56473 | 38.25085 | 17.53 | 18.73 | 1.7 | 10 | 1.4 | 11D20401 | 5182033035 | | ||
| - | | 93 | 북춘천 | Bukchuncheon | 127.75443 | 37.94738 | 95.78 | 96.78 | 1.5 | 10 | 1.4 | 11D10301 | 5111025024 | | ||
| - | | 95 | 철원 | Cheorwon | 127.3042 | 38.14787 | 155.48 | 156.98 | 1.8 | 13 | 1.5 | 11D10101 | 5178025624 | | ||
| - | | 98 | 동두천 | Dongducheon | 127.0607 | 37.90188 | 115.62 | 116.74 | 1.7 | 10 | 1 | 11B20401 | 4125010300 | | ||
| - | | 99 | 파주 | Paju | 126.76648 | 37.88589 | 30.59 | 31.99 | 1.7 | 10 | 1 | 11B20305 | 4148025025 | | ||
| - | | 100 | 대관령 | Daegwallyeong | 128.71834 | 37.67713 | 772.43 | 773.43 | 1.7 | 10 | 1.4 | 11D20201 | 5176038024 | | ||
| - | | 101 | 춘천 | Chuncheon | 127.7357 | 37.90262 | 75.82 | 77.05 | 1.5 | 10 | 1.4 | 11D10301 | 5111011800 | | ||
| - | | 102 | 백령도 | Baengnyeongdo | 124.71237 | 37.97396 | 36 | 37.2 | 1.8 | 9 | 1.2 | 11A00101 | 2872033021 | | ||
| - | | 104 | 북강릉 | Bukgangneung | 128.85535 | 37.80456 | 75.24 | 76.67 | 1.7 | 10 | 1.4 | 11D20501 | 5115036027 | | ||
| - | | 105 | 강릉 | Gangneung | 128.89099 | 37.75147 | 27.12 | 28.22 | 1.7 | 10 | 0.5 | 11D20501 | 5115010700 | | ||
| - | | 106 | 동해 | Donghae | 129.12433 | 37.50709 | 40.46 | 41.66 | 1.7 | 10 | 1.4 | 11D20601 | 5117010400 | | ||
| - | | 108 | 서울 | Seoul | 126.9658 | 37.57142 | 85.67 | 86.67 | 1.5 | 10 | 0.5 | 11B10101 | 1111017800 | | ||
| - | | 112 | 인천 | Incheon | 126.6249 | 37.47772 | 68.99 | 70.19 | 1.6 | 10 | 1.2 | 11B20201 | 2811013700 | | ||
| - | | 114 | 원주 | Wonju | 127.94659 | 37.33749 | 150.11 | 151.11 | 1.7 | 14 | 1.4 | 11D10401 | 5113010600 | | ||
| - | | 115 | 울릉도 | Ulleungdo | 130.89863 | 37.48129 | 221.14 | 223.7 | 1.6 | 10 | 1.3 | 11E00101 | 4794025024 | | ||
| - | | 119 | 수원 | Suwon | 126.983 | 37.25746 | 39.81 | 40.81 | 1.6 | 18.7 | 1.1 | 11B20601 | 4111312800 | | ||
| - | | 121 | 영월 | Yeongwol | 128.45743 | 37.18126 | 240.54 | 242.05 | 1.7 | 10 | 1.4 | 11D10501 | 5175025022 | | ||
| - | | 127 | 충주 | Chungju | 127.9525 | 36.97045 | 114.85 | 116.25 | 1.65 | 10 | 1 | 11C10101 | 4313012200 | | ||
| - | |129|서산|Seosan|126.4939|36.77658|25.25|26.55|1.6|20.2|1.1|11C20101|4421010600| | ||
| - | |130|울진|Uljin|129.41278|36.99176|48.98|50.18|1.75|10|1.3|11H10101|4793025023| | ||
| - | |131|청주|Cheongju|127.44066|36.63924|58.7|60.1|1.7|10|0.8|11C10301|4311311400| | ||
| - | |133|대전|Daejeon|127.3721|36.37199|67.79|68.49|1.4|23.7|1|11C20401|3020012400| | ||
| - | |135|추풍령|Chupungnyeong|127.99458|36.22025|244.98|246.18|1.6|10|1.1|11C10401|4374033521| | ||
| - | |136|안동|Andong|128.70733|36.57293|141.26|142.76|1.8|10|1.3|11H10501|4717012900| | ||
| - | |137|상주|Sangju|128.15741|36.40837|96.58|97.98|1.8|10|1.4|11H10302|4725011000| | ||
| - | |138|포항|Pohang|129.38002|36.03201|3.94|4.92|1.6|10|1.2|11H10201|4711110400| | ||
| - | |140|군산|Gunsan|126.76135|36.0053|27.85|24.6|1.7|10|1|21F10501|4513010300| | ||
| - | |143|대구|Daegu|128.65296|35.87797|54.27|55.52|1.8|10|0.6|11H10701|2714010300| | ||
| - | |146|전주|Jeonju|127.11718|35.84092|60.44|62.9|1.6|10|1.4|11F10201|4511310600| | ||
| - | |152|울산|Ulsan|129.33469|35.58237|81.14|83.2|1.8|10|1.3|11H20101|3111011400| | ||
| - | |155|창원|Changwon|128.57282|35.17019|34.97|39.1|1.7|10|1.3|11H20301|4812510100| | ||
| - | |156|광주|Gwangju|126.89156|35.17294|70.28|73.9|1.7|17.5|0.8|11F20501|2917010900| | ||
| - | |159|부산|Busan|129.03203|35.10468|69.56|70.9|1.5|18|1.3|11H20201|2611011600| | ||
| - | |162|통영|Tongyeong|128.43561|34.84541|31.24|33.2|1.5|18|1.3|11H20401|4822010900| | ||
| - | |165|목포|Mokpo|126.38151|34.81732|44.7|39.2|1.5|14.5|1|21F20801|4611010300| | ||
| - | |168|여수|Yeosu|127.74063|34.73929|65.93|66.1|1.5|13|0.6|11F20401|4613010700| | ||
| - | |169|흑산도|Heuksando|125.45105|34.68719|75.12|78|1.5|15.5|0.6|11F20701|4691036022| | ||
| - | |170|완도|Wando|126.70182|34.3959|35.37|36.7|1.5|10|0.8|11F20301|4689031022| | ||
| - | |172|고창|Gochang|126.599|35.34824|52.42|53.5|1.8|10|1.7|21F10601|4579038025| | ||
| - | |174|순천|Suncheon|127.3694|35.0204|165|166.5|1.5|10|0.8|11F20600|4615025025| | ||
| - | |177|홍성|Hongseong|126.68772|36.65759|27.74|28.7|1.5|10|1.5|11C20104|4480025625| | ||
| - | |181|서청주|Seocheongju|127.38466|36.64002|32|32|1.5|10|0.5|11C10301|4311331035| | ||
| - | |184|제주|Jeju|126.52969|33.51411|20.79|21.99|1.7|15|1.5|11G00201|5011010700| | ||
| - | |185|고산|Gosan|126.16283|33.29382|71.39|72.49|1.7|10|1.5|11G00501|5011031023| | ||
| - | |188|성산|Seongsan|126.8802|33.38677|20.34|21.74|1.7|10|1.5|11G00101|5013025927| | ||
| - | |189|서귀포|Seogwipo|126.5653|33.24616|51.86|53.16|1.7|10|1.5|11G00401|5013010100| | ||
| - | |192|진주|Jinju|128.04004|35.16378|29.35|31.6|1.8|10|1.3|11H20701|4817012600| | ||
| - | |201|강화|Ganghwa|126.44634|37.70739|47.84|49.24|1.6|10|0.6|11B20101|2871032027| | ||
| - | |202|양평|Yangpyeong|127.49446|37.48863|47.26|48.76|1.9|10|0.6|11B20503|4183025021| | ||
| - | |203|이천|Icheon|127.48421|37.26399|80.09|81.59|1.8|10|0.6|11B20701|4150025328| | ||
| - | |211|인제|Inje|128.16714|38.05986|201.78|202.78|1.5|10|0.5|11D10201|5181025022| | ||
| - | |212|홍천|Hongcheon|127.88043|37.6836|140.2|141.2|1.6|13|0.5|11D10302|5172025029| | ||
| - | |216|태백|Taebaek|128.98929|37.17038|714.45|715.25|1.6|16|0.6|11D20301|5119010100| | ||
| - | |217|정선군|Jeongseongun|128.67348|37.37732|312|312|1.5|10|0.5|11D10502|5177025024| | ||
| - | |221|제천|Jecheon|128.19433|37.15928|264.62|265.39|1.5|10|0.5|11C10201|4315011200| | ||
| - | |226|보은|Boeun|127.73415|36.48761|171.31|172.71|1.5|10|0.5|11C10302|4372025030| | ||
| - | |232|천안|Cheonan|127.29282|36.76217|84.78|83|1.8|10|1.2|11C20301|4413136022| | ||
| - | |235|보령|Boryeong|126.55744|36.32724|9.98|17|1.6|10|1.1|11C20201|4418010900| | ||
| - | |236|부여|Buyeo|126.92079|36.27242|13.42|14.88|1.7|10|0.5|11C20501|4476025033| | ||
| - | |238|금산|Geumsan|127.48175|36.10563|172.69|173.99|1.5|10|0.5|11C20601|4471025025| | ||
| - | |239|세종|sejong|127.24438|36.48522|89.5|95|1.6|10|1|11C20404|3611010800| | ||
| - | |243|부안|Buan|126.71657|35.72961|12.2|13.5|1.8|10|0.6|21F10602|4580033021| | ||
| - | |244|임실|Imsil|127.28556|35.61203|247.04|248.44|1.8|10|0.6|11F10402|4575025022| | ||
| - | |245|정읍|Jeongeup|126.83904|35.56337|68.7|70.97|1.9|10|1|11F10203|4518010800| | ||
| - | |247|남원|Namwon|127.39652|35.4213|133.49|91.8|1.7|10|0.7|11F10401|4519011600| | ||
| - | |248|장수|Jangsu|127.52031|35.65696|406.87|408|1.6|10|0.5|11F10301|4574025023| | ||
| - | |251|고창군|Gochanggun|126.697|35.42661|58.84|55.5|1.7|10|0.6|21F10601|4579025030| | ||
| - | |252|영광군|Yeonggwanggun|126.47784|35.28366|37.2|38.7|1.5|13|0.6|21F20102|4687034030| | ||
| - | |253|김해시|Gimhaesi|128.89075|35.22981|54.59|54.6|1.7|10|0.5|11H20304|4825010300| | ||
| - | |254|순창군|Sunchanggun|127.1286|35.37131|129.38|128.4|1.6|10|0.6|11F10403|4577025026| | ||
| - | |255|북창원|Bukchangwon|128.6726|35.22655|50.95|50.3|1.8|10|0.7|11H20301|4812311100| | ||
| - | |257|양산시|Yangsansi|129.02009|35.30737|6.29|16.1|1.8|10|0.6|11H20102|4833031027| | ||
| - | |258|보성군|Boseonggun|127.21226|34.76335|1.41|4.3|1.5|10|0.6|11F20404|4678038023| | ||
| - | |259|강진군|Gangjingun|126.78408|34.64457|16|20|1.5|10|0.6|11F20303|4681025027| | ||
| - | |260|장흥|Jangheung|126.91951|34.68886|43.99|46.3|1.5|10|0.8|11F20304|4680025043| | ||
| - | |261|해남|Haenam|126.56907|34.55375|16.36|17.91|1.5|10|0.8|11F20302|4682025034| | ||
| - | |262|고흥|Goheung|127.27572|34.61826|51.91|53.31|1.5|10|0.8|11F20403|4677025029| | ||
| - | |263|의령군|Uiryeonggun|128.28812|35.32258|14.1|14.9|2|10|0.6|11H20302|4872025024| | ||
| - | |264|함양군|Hamyanggun|127.74538|35.51138|152.07|152.5|1.8|10|0.6|11H20502|4887025022| | ||
| - | |266|광양시|Gwangyangsi|127.6914|34.9434|88.21|87.9|1.7|10|0.6|11F20402|4623010600| | ||
| - | |268|진도군|Jindogun|126.25846|34.47296|9.82|6.9|1.7|10|0.6|21F20201|4690025025| | ||
| - | |271|봉화|Bonghwa|128.91449|36.94361|324.67|326.22|1.9|10|0.6|11H10402|4792034021| | ||
| - | |272|영주|Yeongju|128.51687|36.87183|211.32|212.78|1.91|10|0.58|11H10401|4721025021| | ||
| - | |273|문경|Mungyeong|128.14879|36.62727|173.01|174.51|1.8|10|0.6|11H10301|4728010800| | ||
| - | |276|청송군|Cheongsonggun|129.04005|36.4351|208.65|210.2|1.75|10|0.5|11H10503|4775025000| | ||
| - | |277|영덕|Yeongdeok|129.40926|36.53337|40.71|42.01|1.7|10|0.6|11H10102|4777036030| | ||
| - | |278|의성|Uiseong|128.68864|36.3561|81.44|82.94|1.7|10|0.6|11H10502|4773025031| | ||
| - | |279|구미|Gumi|128.32055|36.13055|49.17|50.67|1.7|10|1.4|11H10602|4719010800| | ||
| - | |281|영천|Yeongcheon|128.9514|35.97742|96.12|97.62|1.7|10|0.5|11H10702|4723010200| | ||
| - | |283|경주시|Gyeongjusi|129.2009|35.8174|40.13|41.63|1.67|10|0.59|11H10202|4713011300| | ||
| - | |284|거창|Geochang|127.9099|35.66739|228.45|227.3|1.5|10|1.3|11H20502|4888025028| | ||
| - | |285|합천|Hapcheon|128.16994|35.56505|26.72|33.2|1.5|10|0.5|11H20503|4889025021| | ||
| - | |288|밀양|Miryang|128.74412|35.49147|8.31|12.5|2|10|1.3|11H20601|4827010200| | ||
| - | |289|산청|Sancheong|127.8791|35.413|138.22|138.8|1.6|10|0.6|11H20703|4886025023| | ||
| - | |294|거제|Geoje|128.60459|34.88818|44.83|46.7|1.7|10|0.6|11H20403|4831010800| | ||
| - | |295|남해|Namhae|127.92641|34.81662|45.71|47.01|1.8|10|0.8|11H20405|4884031021| | ||
| - | |296|북부산|Bukbusan|128.96024|35.21778|3|4.5|1.5|10|0.7|11H20201|2644010100| | ||
| - | |||
| - | |||
| - | ===== 5. 생산 ===== | ||
| - | ==== 5.1. 관측센서의 표준규격 ==== | ||
| - | {{관측센서의_표준규격_제7조_관련_.pdf|관측센서의 표준규격}} | ||
| - | |||
| - | ==== 5.2. 자료처리기의 표준규격 ==== | ||
| - | {{자료처리기의_표준규격_제8조_관련_.pdf|자료처리기의 표준규격}} | ||
| - | ^구분^내용^ | ||
| - | |기능|◦ 신호의 변환(아날로그에서 디지털)ㆍ처리 \\ - 기상요소별 관측센서로부터 측정된 신호를 기상학적 물리량으로 변환하여 수치화한다. \\ ◦ 관측센서의 추가 또는 변경 시 하드웨어의 변경 없이 소프트웨어로 제어(센서 추가ㆍ변경, | ||
| - | |조건|◦ 일체형이고 범용성과 안정성이 있어야 한다.\\ ◦ 하드웨어, | ||
| - | |규격|◦ 프로세서: | ||
| - | ==== 5.3. 신호 및 자료처리의 표준규격 ==== | ||
| - | {{신호_및_자료처리의_표준규격_제9조_관련_.pdf|신호 및 자료처리의 표준규격}} | ||
| - | ^관측요소^내용^^ | ||
| - | |온도\\ 습도\\ 기압 |◦ 자료 단위: 0.1 ℃(기온, 초상, 지면, 지중온도), | ||
| - | |풍향풍속|◦ 자료 단위: 0.1°(풍향), | ||
| - | |강수량|전도형|◦ 자료 단위: 0.5 ㎜ 또는 1.0 ㎜\\ ◦ 1분 강수량: 센서에서 1초마다 보내온 펄스 신호의 횟수를 1분 동안 누적하여 산출한다| | ||
| - | | ::: | 무게식|◦ 자료 단위: 0.1 ㎜\\ ◦ 1분 강수량 : 센서에서 보내온 1분 값 또는 각 센서의 자체 알고리즘에 따른다| | ||
| - | |강수유무|◦ 자료 단위: ON 신호 시 10, OFF 신호 시 00\\ ◦ 샘플링 시간: 1분\\ ◦ 강수현상이 있을 때 10, 없을 때 00 || | ||
| - | |시정|◦ 자료 단위 : 10 m\\ ◦ 1분 시정 : 센서에서 보내온 1분 자료 또는 각 센서의 자체 알고리즘에 따른다.|| | ||
| - | |운고|◦ 자료 단위 : 10 m\\ ◦ 1분 운고 : 센서에서 보내온 1분 자료 또는 각 센서의 자체 알고리즘에 따른다. || | ||
| - | |일사|◦ 자료 단위 : 0.01 MJ/m2\\ ◦ 샘플링 시간 : 1초\\ ◦ 자료처리 시간간격 : 1분\\ - 1초 간격의 60개 자료를 누적하여 1분 자료를 산출한다.|| | ||
| - | |적설|◦ 자료 단위 : 0.1 cm\\ ◦ 1분 적설 : 센서에서 보내온 1분 자료 또는 각 센서의 자체 알고리즘에 따른다.|| | ||
| - | |||
| - | |||
| - | ==== 5.4. 자료구조의 표준규격 ==== | ||
| - | {{자료구조의_표준규격_제10조_관련_.pdf|자료구조의 표준규격}} | ||
| - | |||
| - | ==== 5.5. 부대장비의 표준규격 ==== | ||
| - | {{부대장비의_표준규격_제12조_관련_.pdf|부대장비의 표준규격}} | ||
| - | |||
| - | |||
| - | ==== 5.2. 자료구조의 표준규격 ==== | ||
| - | {{자료구조의_표준규격_제10조_관련_.pdf|자료구조의 표준규격}} | ||
| - | |||
| - | |||
| - | ==== 5.2. 자료구조의 표준규격 ==== | ||
| - | {{자료구조의_표준규격_제10조_관련_.pdf|자료구조의 표준규격}} | ||
| - | |||
| - | |||
| - | ==== 5.2. 자료구조의 표준규격 ==== | ||
| - | {{자료구조의_표준규격_제10조_관련_.pdf|자료구조의 표준규격}} | ||
| - | |||
| - | |||
| - | |||
| - | ===== 6. 수집 ===== | ||
| - | |||
| - | ==== 6.1. 자동기상관측장비 관측자료 수집체계 ==== | ||
| - | 센서로부터 수신한 아날로그 신호를 디지털 신호로 변환하고 정해진 처리방법에 따라 샘플링한 다음 자동기상관측장비 표준규격에 따른 자료구조로 편집한 후 기상실황판으로 전송하고, | ||
| - | |||
| - | {{모식도.png? | ||
| - | |||
| - | |||
| - | ===== 7. 데이터 구조 ===== | ||
| - | |||
| - | ==== 7.1. 변수명 (기상자료개방포털) ==== | ||
| - | == 시간자료 == | ||
| - | ^변수명^ | ||
| - | | 일시 | | ||
| - | | 기온 (°C)| | ||
| - | | 기온 QC플래그| | ||
| - | | 강수량 (mm)| | ||
| - | | 강수량 QC플래그| | ||
| - | | 풍속 (m/s)| | ||
| - | | 풍속 QC플래그| | ||
| - | | 풍향 (16방위)| | ||
| - | | 풍향 QC플래그| | ||
| - | | 습도 (%)| | ||
| - | | 습도 QC플래그| | ||
| - | | 증기압 (hPa)| | ||
| - | | 이슬점온도 (°C)| | ||
| - | | 현지기압 (hPa)| | ||
| - | | 현지기압 QC플래그| | ||
| - | | 해면기압 (hPa)| | ||
| - | | 해면기압 QC플래그| | ||
| - | | 일조 (hr)| | ||
| - | | 일조 QC플래그| | ||
| - | | 일사 (MJ/m2)| | ||
| - | | 일사 QC플래그| | ||
| - | | 적설 (cm)| | ||
| - | | 3시간신적설 (cm)| | ||
| - | | 전운량 (10분위)| | ||
| - | | 중하층운량 (10분위)| | ||
| - | | 운형 (운형약어)| | ||
| - | | 최저운고 (100m)| | ||
| - | | 시정 (10m)| | ||
| - | | 지면상태 (지면상태코드)| | ||
| - | | 현상번호 (국내식)| | ||
| - | | 지면온도 (°C)| | ||
| - | | 지면온도 QC플래그| | ||
| - | | 5cm 지중온도 (°C)| | ||
| - | | 10cm 지중온도 (°C)| | ||
| - | | 20cm 지중온도 (°C)| | ||
| - | | 30cm 지중온도 (°C)| | ||
| - | |||
| - | == 일 자료 == | ||
| - | ^ 변수명 ^ | ||
| - | | 일시 | | ||
| - | | 평균기온(°C) | | ||
| - | | 최저기온(°C) | | ||
| - | | 최저기온 시각(hhmi) | | ||
| - | | 최고기온(°C) | | ||
| - | | 최고기온 시각(hhmi) | | ||
| - | | 강수 계속시간(hr) | | ||
| - | | 10분 최다 강수량(mm) | | ||
| - | | 10분 최다강수량 시각(hhmi) | | ||
| - | | 1시간 최다강수량(mm) | | ||
| - | | 1시간 최다 강수량 시각(hhmi) | | ||
| - | | 일강수량(mm) | | ||
| - | | 최대 순간 풍속(m/s) | | ||
| - | | 최대 순간 풍속 풍향(16방위) | | ||
| - | | 최대 순간풍속 시각(hhmi) | | ||
| - | | 최대 풍속(m/s) | | ||
| - | | 최대 풍속 풍향(16방위) | | ||
| - | | 최대 풍속 시각(hhmi) | | ||
| - | | 평균 풍속(m/s) | | ||
| - | | 풍정합(100m) | | ||
| - | | 최다풍향(16방위) | | ||
| - | | 평균 이슬점온도(°C) | | ||
| - | | 최소 상대습도(%) | | ||
| - | | 최소 상대습도 시각(hhmi) | | ||
| - | | 평균 상대습도(%) | | ||
| - | | 평균 증기압(hPa) | | ||
| - | | 평균 현지기압(hPa) | | ||
| - | | 최고 해면기압(hPa) | | ||
| - | | 최고 해면기압 시각(hhmi) | | ||
| - | | 최저 해면기압(hPa) | | ||
| - | | 최저 해면기압 시각(hhmi) | | ||
| - | | 평균 해면기압(hPa) | | ||
| - | | 가조시간(hr) | | ||
| - | | 합계 일조시간(hr) | | ||
| - | | 1시간 최다일사량(MJ/ | ||
| - | | 합계 일사량(MJ/ | ||
| - | | 일 최심신적설(cm) | | ||
| - | | 일 최심신적설 시각(hhmi) | | ||
| - | | 일 최심적설(cm) | | ||
| - | | 일 최심적설 시각(hhmi) | | ||
| - | | 합계 3시간 신적설(cm) | | ||
| - | | 평균 전운량(1/ | ||
| - | | 평균 중하층운량(1/ | ||
| - | | 평균 지면온도(°C) | | ||
| - | | 최저 초상온도(°C) | | ||
| - | | 평균 5cm 지중온도(°C) | | ||
| - | | 평균 10cm 지중온도(°C) | | ||
| - | | 평균 20cm 지중온도(°C) | | ||
| - | | 평균 30cm 지중온도(°C) | | ||
| - | | 0.5m 지중온도(°C) | | ||
| - | | 1.0m 지중온도(°C) | | ||
| - | | 1.5m 지중온도(°C) | | ||
| - | | 3.0m 지중온도(°C) | | ||
| - | | 5.0m 지중온도(°C) | | ||
| - | | 합계 대형증발량(mm) | | ||
| - | | 합계 소형증발량(mm) | | ||
| - | | 9-9강수(mm) | | ||
| - | | 기사 | | ||
| - | | 안개 계속시간(hr) | | ||
| - | |||
| - | ==== 1.7.2. 변수명(기상청 api허브 ) ==== | ||
| - | |||
| - | == 시간자료 == | ||
| - | ^ 변수명 ^ 의미(단위) ^ 변수명 ^ 의미(단위) ^ | ||
| - | | TM | 관측시각 (KST) | STN | 국내 지점번호 | | ||
| - | | WD | 풍향 (16방위) | WS | 풍속 (m/s) | | ||
| - | | GST_WD | 돌풍향 (16방위) | GST_WS | 돌풍속 (m/s) | | ||
| - | | GST_TM | 돌풍속이 관측된 시각 (시분) | PA | 현지기압 (hPa) | | ||
| - | | PS | 해면기압 (hPa) | PT | 기압변화경향 (Code 0200) | | ||
| - | | PR | 기압변화량 (hPa) | TA | 기온 (C) | | ||
| - | | TD | 이슬점온도 (C) | HM | 상대습도 (%) | | ||
| - | | PV | 수증기압 (hPa) | RN | 강수량 (mm) | | ||
| - | | RN_DAY | 위 관측시간까지의 일강수량 (mm) | RN_INT | 강수강도 (mm/h) | | ||
| - | | SD_HR3 | 3시간 신적설 (cm) | SD_DAY | 일 신적설 (cm) | | ||
| - | | SD_TOT | 적설 (cm) | WC | GTS 현재일기 (Code 4677) | | ||
| - | | WP | GTS 과거일기 (Code 4561) | WW | 국내식 일기코드 (문자열 22개) | | ||
| - | | CA_TOT | 전운량 (1/10) | CA_MID | 중하층운량 (1/10) | | ||
| - | | CH_MIN | 최저운고 (100m) | CT | 운형 (문자열 8개) | | ||
| - | | CT_TOP | GTS 상층운형 (Code 0509) | CT_MID | GTS 중층운형 (Code 0515) | | ||
| - | | CT_LOW | GTS 하층운형 (Code 0513) | VS | 시정 (10m) | | ||
| - | | SS | 일조 (hr) | SI | 일사 (MJ/m2) | | ||
| - | | ST_GD | 지면상태 코드 (코드는 기상자원과 문의) | TS | 지면온도 (C) | | ||
| - | | TE_005 | 5cm 지중온도 (C) | TE_01 | 10cm 지중온도 (C) | | ||
| - | | TE_02 | 20cm 지중온도 (C) | TE_03 | 30cm 지중온도 (C) | | ||
| - | | ST_SEA | 해면상태 코드 (코드는 기상자원과 문의) | WH | 파고 (m) | | ||
| - | | BF | Beaufart 최대풍력(GTS코드) | IR | 강수자료 | | ||
| - | | IX | 유인관측/ | ||
| - | |||
| - | |||
| - | == 일 자료 == | ||
| - | |||
| - | ^ 변수명 ^ 의미(단위) ^ 변수명 ^ 의미(단위) ^ | ||
| - | | TM | 관측시각 (KST) | STN | 국내 지점번호 | | ||
| - | | RN_DAY | 위 관측시간까지의 일강수량 (mm) | CA_TOT | 전운량 (1/10) | | ||
| - | | WS_AVG | 일 평균 풍속 (m/s) | WR_DAY | 일 풍정 (m) | | ||
| - | | WD_MAX | 최대풍향 | WS_MAX | 최대풍속 (m/s) | | ||
| - | | WS_MAX_TM | 최대풍속 시각 (시분) | WD_INS | 최대순간풍향 | | ||
| - | | WS_INS | 최대순간풍속 (m/s) | WS_INS_TM | 최대순간풍속 시각 (시분) | | ||
| - | | TA_AVG | 일 평균기온 (C) | TA_MAX | 최고기온 (C) | | ||
| - | | TA_MAX_TM | 최고기온 시각 (시분) | TA_MIN | 최저기온 (C) | | ||
| - | | TA_MIN_TM | 최저기온 시각 (시분) | TD_AVG | 일 평균 이슬점온도 (C) | | ||
| - | | TS_AVG | 일 평균 지면온도 (C) | TG_MIN | 일 최저 초상온도 (C) | | ||
| - | | HM_AVG | 일 평균 상대습도 (%) | HM_MIN | 최저습도 (%) | | ||
| - | | HM_MIN_TM | 최저습도 시각 (시분) | PV_AVG | 일 평균 수증기압 (hPa) | | ||
| - | | EV_S | 소형 증발량 (mm) | EV_L | 대형 증발량 (mm) | | ||
| - | | FG_DUR | 안개계속시간 (hr) | PA_AVG | 일 평균 현지기압 (hPa) | | ||
| - | | PS_AVG | 일 평균 해면기압 (hPa) | PS_MAX | 최고 해면기압 (hPa) | | ||
| - | | PS_MAX_TM | 최고 해면기압 시각 (시분) | PS_MIN | 최저 해면기압 (hPa) | | ||
| - | | PS_MIN_TM | 최저 해면기압 시각 (시분) | SS_DAY | 일조합 (hr) | | ||
| - | | SS_DUR | 가조시간 (hr) | SS_CMB | 캄벨 일조 (hr) | | ||
| - | | SI_DAY | 일사합 (MJ/m2) | RN_D99 | 9-9 강수량 (mm) | | ||
| - | | RN_DUR | 강수계속시간 (hr) | SD_NEW | 최심 신적설 (cm) | | ||
| - | | SD_NEW_TM | 최심 신적설 시각 (시분) | SD_MAX | 최심 적설 (cm) | | ||
| - | | SD_MAX_TM | 최심 적설 시각 (시분) | TE_05 | 0.5m 지중온도 (C) | | ||
| - | | TE_10 | 1.0m 지중온도 (C) | TE_15 | 1.5m 지중온도 (C) | | ||
| - | | TE_30 | 3.0m 지중온도 (C) | TE_50 | 5.0m 지중온도 (C) | | ||
| - | | SI_60M_MAX | 최대 1시간일사 (MJ/m2) | SI_60M_MAX_TM | 최대 1시간일사 시각 | | ||
| - | | RN_60M_MAX | 1시간 최다강수량 (mm) | RN_60M_MAX_TM | 1시간 최다강수량 시각 | | ||
| - | | RN_10M_MAX | 10분간 최다강수량 (mm) | RN_10M_MAX_TM | 10분간 최다강수량 시각 (시분) | | ||
| - | | RN_POW_MAX | 최대 강우강도 (mm/h) | RN_POW_MAX_TM | 최대 강우강도 시각 (시분) | | ||
| - | |||
| - | |||
| - | ===== 8. 검색 및 획득 ===== | ||
| - | |||
| - | ==== 8.1. 검색·획득 – 기상자료개방포털 ==== | ||
| - | |||
| - | === 8.1.1. 자료 접근 === | ||
| - | |||
| - | * 사이트 : 기상자료개방포털 (data.kma.go.kr) | ||
| - | * 메뉴 : 데이터 -> 기상관측 -> 지상 -> 종관기상관측(ASOS), | ||
| - | |||
| - | === 8.1.2. 자료 검색 === | ||
| - | * 조건 : 자료형태, | ||
| - | |||
| - | ==== 8.2. 검색·획득 - 기상청 API허브 ==== | ||
| - | |||
| - | === 8.2.1. 자료 접근 === | ||
| - | * 사이트 : 기상청 API허브 (apihub.kma.go.kr) | ||
| - | * 메뉴 : 지상관측 -> 종관기상관측(ASOS), | ||
| - | |||
| - | === 8.2.2. 자료 획득 === | ||
| - | * 절차: 회원가입 및 로그인 -> API 메뉴 이동 -> API 활용신청 -> API호출 | ||
| - | * 호출 방법: {{기상청_API허브_사용_안내서.pdf}} | ||
| - | {{API_호출방법.PNG? | ||
| - | ===== 9. 활용방안 ===== | ||
| - | |||
| - | 소스코드: | ||
| - | |||
| - | === 9.1. 라이브러리 설치 === | ||
| - | |||
| - | <code py> | ||
| - | # API 요청을 위한 requests 라이브러리와 | ||
| - | # 그래프를 그리기 위한 seaborn 라이브러리, | ||
| - | # 지도를 표출하기 위한 folium 라이브러리를 설치합니다. | ||
| - | %pip install requests seaborn folium | ||
| - | </ | ||
| - | |||
| - | === 9.2. AWS 지점 목록 다운로드 === | ||
| - | |||
| - | 기상청 API허브에 회원가입 후 자신의 인증키를 사용하여 API 요청을 할 수 있습니다. | ||
| - | |||
| - | API 인증키를 코드상에 직접 남겨 사용하는 방식은 다른 사람에게 코드를 공유할때 인증키가 노출되는 문제가 생길 수 있습니다. | ||
| - | |||
| - | 따라서 인증키를 환경변수로 등록하여 코드상에 노출되지 않도록 사용하는 것이 바람직합니다. | ||
| - | |||
| - | <code py> | ||
| - | import os # 환경변수를 불러오는 표준 라이브러리 | ||
| - | |||
| - | # 바람직하지 않은 방법 | ||
| - | # my_api_key = ' | ||
| - | |||
| - | # 인증키를 ' | ||
| - | my_api_key = os.environ[' | ||
| - | </ | ||
| - | |||
| - | 먼저 AWS의 지점 정보를 조회해 파일로 다운로드합니다. | ||
| - | |||
| - | <code py> | ||
| - | import requests # API 요청을 보내고 받는 라이브러리 | ||
| - | import json # API 응답을 json형태로 가공하기 위한 라이브러리 | ||
| - | |||
| - | # 지상관측 지점정보 API url | ||
| - | api_url = ' | ||
| - | |||
| - | # 요청인자로 지점종류, | ||
| - | |||
| - | # 1. 지점종류를 입력합니다. | ||
| - | # SFC(지상), | ||
| - | stn_type = ' | ||
| - | |||
| - | # 2. 해당 시점 및 특정 지점번호를 입력합니다. | ||
| - | # 여기선 현재 시각에 존재하는 모든 지점번호를 조회하기 위해 값을 입력하지 않습니다. | ||
| - | |||
| - | # 3. 도움말추가 여부를 입력합니다. | ||
| - | # 파일 내에 각 필드에 대한 도움말을 확인할 수 있습니다. | ||
| - | help = 1 | ||
| - | |||
| - | # API 요청인자들을 묶어 dictionary로 정의합니다. | ||
| - | api_parameters = { | ||
| - | ' | ||
| - | ' | ||
| - | ' | ||
| - | } | ||
| - | |||
| - | # API 응답을 저장할 파일 형식은 txt 파일로 저장합니다. | ||
| - | file_name = f' | ||
| - | |||
| - | # 저장된 파일이 없는 경우에만 API를 요청해 파일을 다운로드합니다. | ||
| - | if not os.path.exists(file_name): | ||
| - | # API 요청인자와 함께 API 요청 | ||
| - | response = requests.get(api_url, | ||
| - | |||
| - | # 잘못된 응답을 받을 경우 에러 메세지 출력 | ||
| - | if response.status_code != 200: | ||
| - | raise requests.RequestException( | ||
| - | json.loads(response.content)[' | ||
| - | ) | ||
| - | else: | ||
| - | # 그외의 올바른 응답에 대해서만 UTF-8 txt 파일 형태로 저장합니다. | ||
| - | with open(file_name, | ||
| - | f.write(response.content.decode(' | ||
| - | print(f' | ||
| - | </ | ||
| - | ''// | ||
| - | |||
| - | 다운로드 받은 파일을 열면 AWS 각 지점 번호와 이름, 지점 정보를 확인할 수 있습니다. | ||
| - | |||
| - | AWS 각 지점들의 위치를 지도로 표출합니다. | ||
| - | |||
| - | <code py> | ||
| - | import pandas as pd # dataframe을 다루는 패키지 | ||
| - | |||
| - | # 다운로드 받은 txt파일을 dataframe으로 변환합니다. | ||
| - | # 도움말을 비롯한 파일의 첫 20줄과 마지막 1줄을 제외하여 변환합니다. | ||
| - | # 각 필드를 구분하도록 너비를 정의하고 | ||
| - | # 지점번호(STN), | ||
| - | stn_info = pd.read_fwf( | ||
| - | file_name, | ||
| - | skiprows=20, | ||
| - | skipfooter=1, | ||
| - | names=[' | ||
| - | usecols=[' | ||
| - | index_col=[' | ||
| - | widths=(5, 14, 14, 9, 10, 10, 5, 4, 10), | ||
| - | ) | ||
| - | |||
| - | # dataframe의 첫 5개의 데이터를 표출합니다. | ||
| - | stn_info.head(5) | ||
| - | </ | ||
| - | ^ STN_ID^ | ||
| - | | 90| 128.56473| | ||
| - | | 92| 128.66298| | ||
| - | | 93| 127.75443| | ||
| - | | 95| 127.30420| | ||
| - | | 96| 131.86983| | ||
| - | |||
| - | <code py> | ||
| - | import folium | ||
| - | |||
| - | # 너비, 높이 크기가 800인 지도 생성 | ||
| - | fig = folium.Figure(width=800, | ||
| - | |||
| - | # 지도의 위·경도 중심과 범위를 정해 맵을 생성합니다. | ||
| - | map = folium.Map( | ||
| - | location=[37.5, | ||
| - | zoom_start=12, | ||
| - | min_zoom=6, | ||
| - | min_lat=30, | ||
| - | max_lat=44, | ||
| - | min_lon=123, | ||
| - | max_lon=132, | ||
| - | max_bounds=True, | ||
| - | ).add_to(fig) | ||
| - | |||
| - | # dataframe의 데이터를 읽어 지도위에 마커를 추가합니다. | ||
| - | # marker를 클릭하면 팝업으로 지점명, 위경도와 해발고도를 표출하도록 html을 추가합니다. | ||
| - | for idx, row in stn_info.iterrows(): | ||
| - | html=f""" | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | < | ||
| - | """ | ||
| - | iframe = folium.IFrame(html=html, | ||
| - | popup = folium.Popup(iframe, | ||
| - | folium.Marker( | ||
| - | location=row[[' | ||
| - | popup=popup, | ||
| - | ).add_to(map) | ||
| - | |||
| - | # 지도를 표출합니다. | ||
| - | fig | ||
| - | </ | ||
| - | {{: | ||
| - | |||
| - | AWS 지점들 중 하나를 골라 시계열 그래프를 그려봅니다. | ||
| - | |||
| - | === 9.3. 시계열 그래프 표출 === | ||
| - | |||
| - | 시계열 그래프를 표출하기 전, 그래프에 한글을 표출하려면 한글 폰트의 설정이 필요합니다. | ||
| - | |||
| - | 만약, 한글 표출을 하지 않는다면 이 부분을 실행하지 않아도 좋습니다. | ||
| - | |||
| - | <code py> | ||
| - | # Linux Ubuntu에서의 나눔폰트 설치와 캐시를 제거합니다. | ||
| - | !sudo apt-get install -y fonts-nanum | ||
| - | !sudo fc-cache -fv | ||
| - | !rm -rf ~/ | ||
| - | |||
| - | import seaborn as sns # 그래프를 그리는 라이브러리 | ||
| - | import matplotlib.pyplot as plt # 그래프를 그리는 라이브러리 | ||
| - | |||
| - | # 한글을 출력하기 위해 사용하는 기본 폰트를 나눔고딕으로 설정합니다. | ||
| - | plt.rc(" | ||
| - | sns.set_theme(font=" | ||
| - | </ | ||
| - | |||
| - | AWS자료는 크게 AWS2 포맷의 매 분자료 조회와 AWS 일 통계 자료 조회 2가지가 존재합니다. | ||
| - | |||
| - | 먼저, AWS2 포맷의 매 분자료 시계열 그래프를 그립니다. | ||
| - | |||
| - | <code py> | ||
| - | import requests # API 요청을 보내고 받는 라이브러리 | ||
| - | import json # API 응답을 json형태로 가공하기 위한 라이브러리 | ||
| - | |||
| - | # AWS2 매분자료 조회 API url | ||
| - | api_url = ' | ||
| - | |||
| - | # 요청인자로 시작시간, | ||
| - | |||
| - | # 1. 한 지점에 대해 최대 12시간을 조회할 수 있습니다. | ||
| - | # 시작시간과 종료시간을 년월일시분 형태로 입력합니다. | ||
| - | start_time = ' | ||
| - | end_time = ' | ||
| - | |||
| - | # 2. 앞에서 확인한 지점번호를 입력합니다. | ||
| - | stn_id = 108 | ||
| - | |||
| - | # 3. 표출형태로 포트란과 엑셀에 적합한 형태를 입력할 수 있습니다. | ||
| - | # 여기선 변수별로 일정한 길이를 유지하는 기본값을 사용합니다. | ||
| - | |||
| - | # 4. 도움말추가 여부를 입력합니다. | ||
| - | # 파일 내에 각 필드에 대한 도움말을 확인할 수 있습니다. | ||
| - | help = 1 | ||
| - | |||
| - | # API 요청인자들을 묶어 dictionary로 정의합니다. | ||
| - | api_parameters = { | ||
| - | ' | ||
| - | ' | ||
| - | ' | ||
| - | ' | ||
| - | ' | ||
| - | } | ||
| - | |||
| - | # API 응답을 저장할 파일 형식은 txt 파일로 저장합니다. | ||
| - | file_name = f" | ||
| - | |||
| - | # 저장된 파일이 없는 경우에만 API를 요청해 파일을 다운로드합니다. | ||
| - | if not os.path.exists(file_name): | ||
| - | # API 요청인자와 함께 API 요청 | ||
| - | response = requests.get(api_url, | ||
| - | |||
| - | # 잘못된 응답을 받을 경우 에러 메세지 출력 | ||
| - | if response.status_code != 200: | ||
| - | raise requests.RequestException( | ||
| - | json.loads(response.content)[' | ||
| - | ) | ||
| - | # 짧은 에러메세지를 응답으로 받은 경우 에러 메세지 출력 | ||
| - | elif len(response.content) < 100: | ||
| - | raise ValueError(response.content.decode(' | ||
| - | else: | ||
| - | # 그외의 올바른 응답에 대해서만 UTF-8 txt 파일 형태로 저장합니다. | ||
| - | with open(file_name, | ||
| - | f.write(response.content.decode(' | ||
| - | print(f" | ||
| - | </ | ||
| - | //'' | ||
| - | |||
| - | 다운로드 받은 AWS 매 분자료 파일을 열어 자료를 확인할 수 있습니다. | ||
| - | |||
| - | 자료를 읽어 시계열 그래프를 그립니다. | ||
| - | |||
| - | <code py> | ||
| - | import pandas as pd # dataframe을 다루는 패키지 | ||
| - | import numpy as np # 배열을 다루는 패키지 | ||
| - | |||
| - | # 다운로드 받은 txt파일을 dataframe으로 변환합니다. | ||
| - | # 도움말을 비롯한 파일의 첫 22줄과 마지막 1줄을 제외하여 변환합니다. | ||
| - | # 각 필드는 공백으로 구분되어있으며 존재하는 모든 필드를 사용합니다. | ||
| - | aws_min_data = pd.read_csv( | ||
| - | file_name, | ||
| - | skiprows=22, | ||
| - | skipfooter=1, | ||
| - | sep=r' | ||
| - | names=[' | ||
| - | ' | ||
| - | parse_dates=[' | ||
| - | index_col=[' | ||
| - | engine=' | ||
| - | ) | ||
| - | |||
| - | # 도움말에 따르면 값이 -50 이하라면 관측이 없거나, 에러처리된 것을 표시합니다. | ||
| - | # 따라서 그 값을 NaN으로 변환합니다. | ||
| - | aws_min_data[aws_min_data <= -50] = np.nan | ||
| - | |||
| - | # dataframe의 첫 5개의 데이터를 표출합니다. | ||
| - | aws_min_data.head(5) | ||
| - | </ | ||
| - | ^ TIME^ STN_ID^ | ||
| - | |2024-03-01 12: | ||
| - | |2024-03-01 12: | ||
| - | |2024-03-01 12: | ||
| - | |2024-03-01 12: | ||
| - | |2024-03-01 12: | ||
| - | |||
| - | <code py> | ||
| - | # 필드 중 기온(TA), 이슬점온도(TD)를 표출합니다. | ||
| - | vars = [' | ||
| - | |||
| - | # 그래프를 그릴 크기를 지정합니다. | ||
| - | fig, ax = plt.subplots(1, | ||
| - | |||
| - | # 그래프의 제목을 지정합니다. | ||
| - | # 제목에 한글 지점명이 사용됩니다. | ||
| - | ax.set_title( | ||
| - | f" | ||
| - | f" | ||
| - | |||
| - | # 각 요소별로 시계열 그래프를 그립니다. | ||
| - | for var in vars: | ||
| - | sns.lineplot(aws_min_data, | ||
| - | |||
| - | # 그래프를 표출합니다. | ||
| - | plt.show() | ||
| - | </ | ||
| - | {{: | ||
| - | |||
| - | <code py> | ||
| - | # 필드 중 현지기압(PA), | ||
| - | vars = [' | ||
| - | |||
| - | # 그래프를 그릴 크기를 지정합니다. | ||
| - | fig, ax = plt.subplots(1, | ||
| - | |||
| - | # 그래프의 제목을 지정합니다. | ||
| - | # 제목에 한글 지점명이 사용됩니다. | ||
| - | ax.set_title( | ||
| - | f" | ||
| - | f" | ||
| - | |||
| - | # 각 요소별로 시계열 그래프를 그립니다. | ||
| - | for var in vars: | ||
| - | sns.lineplot(aws_min_data, | ||
| - | |||
| - | # 그래프를 표출합니다. | ||
| - | plt.show() | ||
| - | </ | ||
| - | {{: | ||
| - | |||
| - | <code py> | ||
| - | # 필드 중 1분 평균 풍속(WS1)를 표출합니다. | ||
| - | |||
| - | # 그래프를 그릴 크기를 지정합니다. | ||
| - | fig, ax = plt.subplots(1, | ||
| - | |||
| - | # 그래프의 제목을 지정합니다. | ||
| - | # 제목에 한글 지점명이 사용됩니다. | ||
| - | ax.set_title( | ||
| - | f" | ||
| - | f" | ||
| - | |||
| - | # 풍속 시계열 그래프를 그립니다. | ||
| - | sns.lineplot(aws_min_data, | ||
| - | |||
| - | # 그래프를 표출합니다. | ||
| - | plt.show() | ||
| - | </ | ||
| - | {{: | ||
| - | |||
| - | AWS 일 통계 자료를 조회하여 시계열 그래프로 표출합니다. | ||
| - | |||
| - | <code py> | ||
| - | import requests # API 요청을 보내고 받는 라이브러리 | ||
| - | import json # API 응답을 json형태로 가공하기 위한 라이브러리 | ||
| - | |||
| - | # AWS 일 통계 자료 조회 API url | ||
| - | api_url = ' | ||
| - | |||
| - | # 요청인자로 시작시간, | ||
| - | |||
| - | # 1. 시작시간과 종료시간을 년월일 형태로 입력합니다. | ||
| - | start_time = ' | ||
| - | end_time = ' | ||
| - | |||
| - | # 2. 기상요소를 입력합니다. | ||
| - | # rn_day(일강수량), | ||
| - | # ta_min(일 최저기온), | ||
| - | # sd_tot_max(최심적설), | ||
| - | obs = ' | ||
| - | |||
| - | # 3. 앞에서 확인한 지점번호를 입력합니다. | ||
| - | stn_id = 108 | ||
| - | |||
| - | # 4. 도움말추가 여부를 입력합니다. | ||
| - | # 파일 내에 각 필드에 대한 도움말을 확인할 수 있습니다. | ||
| - | help = 1 | ||
| - | |||
| - | # API 요청인자들을 묶어 dictionary로 정의합니다. | ||
| - | api_parameters = { | ||
| - | ' | ||
| - | ' | ||
| - | ' | ||
| - | ' | ||
| - | ' | ||
| - | ' | ||
| - | } | ||
| - | |||
| - | # API 응답을 저장할 파일 형식은 txt 파일로 저장합니다. | ||
| - | file_name = f" | ||
| - | |||
| - | # 저장된 파일이 없는 경우에만 API를 요청해 파일을 다운로드합니다. | ||
| - | if not os.path.exists(file_name): | ||
| - | # API 요청인자와 함께 API 요청 | ||
| - | response = requests.get(api_url, | ||
| - | |||
| - | # 잘못된 응답을 받을 경우 에러 메세지 출력 | ||
| - | if response.status_code != 200: | ||
| - | raise requests.RequestException( | ||
| - | json.loads(response.content)[' | ||
| - | ) | ||
| - | # 짧은 에러메세지를 응답으로 받은 경우 에러 메세지 출력 | ||
| - | elif len(response.content) < 100: | ||
| - | raise ValueError(response.content.decode(' | ||
| - | else: | ||
| - | # 그외의 올바른 응답에 대해서만 UTF-8 txt 파일 형태로 저장합니다. | ||
| - | with open(file_name, | ||
| - | f.write(response.content.decode(' | ||
| - | print(f" | ||
| - | </ | ||
| - | ''// | ||
| - | |||
| - | 다운로드 받은 AWS 일 통계 파일을 열어 자료를 확인할 수 있습니다. | ||
| - | |||
| - | 자료를 읽어 시계열 그래프를 그립니다. | ||
| - | |||
| - | <code py> | ||
| - | import pandas as pd # dataframe을 다루는 패키지 | ||
| - | |||
| - | # 다운로드 받은 txt파일을 dataframe으로 변환합니다. | ||
| - | # 도움말을 비롯한 파일의 첫 13줄과 마지막 1줄을 제외하여 변환합니다. | ||
| - | # 모든 필드를 사용하지 않고 시간, 값 필드만 사용합니다. | ||
| - | aws_day_data = pd.read_csv( | ||
| - | file_name, | ||
| - | skiprows=13, | ||
| - | skipfooter=1, | ||
| - | names=[' | ||
| - | usecols=[' | ||
| - | parse_dates=[' | ||
| - | index_col=[' | ||
| - | engine=' | ||
| - | ) | ||
| - | |||
| - | # dataframe의 첫 5개의 데이터를 표출합니다. | ||
| - | aws_day_data.head(5) | ||
| - | </ | ||
| - | ^ TIME^ VAL^ | ||
| - | | 2022-02-01| | ||
| - | | 2022-02-02| | ||
| - | | 2022-02-03| | ||
| - | | 2022-02-04| | ||
| - | | 2022-02-05| | ||
| - | |||
| - | <code py> | ||
| - | # AWS 일 통계 자료 시계열 그래프를 표출합니다. | ||
| - | |||
| - | # 그래프를 그릴 크기를 지정합니다. | ||
| - | fig, ax = plt.subplots(1, | ||
| - | |||
| - | # 그래프의 제목을 지정합니다. | ||
| - | # 제목에 한글 지점명이 사용됩니다. | ||
| - | ax.set_title( | ||
| - | f" | ||
| - | f" | ||
| - | |||
| - | # 일 통계 자료 시계열 그래프를 그립니다. | ||
| - | sns.lineplot(aws_day_data) | ||
| - | |||
| - | # 그래프를 표출합니다. | ||
| - | plt.show() | ||
| - | </ | ||
| - | {{: | ||