기상청API를 활용한 나만의 Weather 만들기(2) - 기상청API 데이터 분석

2024. 6. 25. 15:50Spring-Project

 

이전글
https://codepracticeroom.tistory.com/206

 

기상청API를 활용한 나만의 Weather 만들기(1)

JAVA :17개발 OS : WindowIDE : IntelliJ  기상청 API를 활용하여 날씨 정보를 실시간으로 확인하고  일주일 예상 날씨를 구할 것이다.  먼저 기상청 단기예보 API 키를 발급받아야 한다.아래 사이트에

codepracticeroom.tistory.com

 

 

 

이번에는 단기예보의 JSON 데이터에 관해 알아볼 것이다.

 

 

단기예보로 오는 JSON 데이터를 보면 


  POP    강수확률
  PTY    강수형태
  PCP    1시간 강수량
  REH    습도
  SNO    1시간 신적설
  SKY    하늘상태
  TMP    1시간 기온
  TMN    일 최저기온
  TMX    일 최고기온
  UUU    풍속(동서성분)
  VVV    풍속(남북성분)
  WAV    파고
  VEC    풍향
  WSD    풍속

이렇게 있다.

 

POP

단위 : %

 

먼저 POP는 강수 확률이다. 

이 데이터를 보면 
{

baseDate : 20240625
baseTime : 1400
category : POP
fcstDate : 20240625
fcstTime : 1500
fcstValue : 20
nx : 64
ny : 123

                     }

 

이렇게 데이터가 들어온다.

baseDate : 20240625, baseTime : 1400는 내가 조회한 시간대,

fcstDate : 20240625, fcstTime : 1500는 미래에 시간대이다.

내가 20240625, 14시경을 조회했을 때 알려주는 데이터는 20240625, 15시 날씨를 예보해 준다.

여기서 예보 값은 fcstValue로

 

->  20240625, 1400   조회 시 20240625. 1500의 날씨는 강수확률이 20%이다.

 

 

PTY

단위 : 코드값

 

PTY는 강수 형태를 나타낸다.

 

{

baseDate : 20240625
baseTime : 1400
category : PTY
fcstDate : 20240625
fcstTime : 1500
fcstValue : 0
nx : 64
ny : 123

                  }

 

이런 형식으로 데이터가 나오는데 위 POP 설명처럼 fcst가 예보를 나타낸다.

위 데이터에서 fcstValue 값은 0 이므로 강수가 없다는 뜻이다.(비가 안 온다)

 

PTY : 없음(0), 비(1), 비/눈(2), 눈(3), 빗방울(5), 빗방울눈날림(6), 눈날림(7) 

 

 

 

PCP

단위 : 범주(1mm)

 

PCP는 1시간 강수량을 나타낸다.

 

{

baseDate : 20240625
baseTime : 1400
category : PCP
fcstDate : 20240625
fcstTime : 1500
fcstValue : 강수 없음
nx : 64
ny : 123

                       }

이렇게 있는데 현재 factValue 가 강수없음 값이다.

0, null이랑 같은 뜻이다.

 

공식 문서를 보면 
PCP = 6.2 일 경우 강수량은 6.2mm
PCP = 30 일 경우 강수량은 30.0~50.0mm

이런 형식으로 나와있다.

 

 

REH   

단위 : %

 

PEH는 습도를 나타낸다

 

{

baseDate : 20240625
baseTime : 1400
category : REH
fcstDate : 20240625
fcstTime : 1500
fcstValue : 40
nx : 64
ny : 123

                               }

 

fcstValue 값이 40이므로 예보된 습도는 40%이다.

 

 

SNO  

 

단위 : 범주(1cm)

 

SNO는 1시간 신적설을 나타낸다.

 

{

baseDate : 20240625
baseTime : 1400
category : SNO
fcstDate : 20240625
fcstTime : 1500
fcstValue : 적설 없음
nx : 64
ny : 123

                                   }

 

fcstValue값이 적설 없음이고,

신적설은 겨울에만 값이 나온다고 생각이 된다.

 


SKY    하늘상태

 

단위 : 코드값

 

SKY는 하늘의 상태를 나타낸다

 

{

baseDate : 20240625
baseTime : 1400
category : SKY
fcstDate : 20240625
fcstTime : 1500
fcstValue : 3
nx : 64
ny : 123

                           }

 

fcstValue 값이 3이므로 구름 많음을 나타 낸다.

SKY : 맑음(1), 구름많음(3), 흐림(4)

 

 

TMP    1시간 기온

 

단위 : ℃

 

TMP는 1시간 기온을 나타낸다.

 

{

baseDate : 20240625
baseTime : 1400
category : TMP
fcstDate : 20240625
fcstTime : 1500
fcstValue : 27
nx : 64
ny : 123

                              }

 

fcstValue값이 27이므로 15시의 기온은 27℃를 나타낸다.

 

 

TMN    일 최저기온

 

단위 : 

 

TMN은 일 최저기온을 나타낸다

 

{

baseDate : 20240625
baseTime : 1400
category : TMN
fcstDate : 20240626
fcstTime : 0600
fcstValue : 17.0
nx : 64
ny : 123

                                      }

 

TNM의 값은 06시에만 값이 나온다.

2024 06 26일 최저기온은 17℃ 이다.

 

 

TMX    일 최고기온

 

단위 : 

 

TMX는 일 최고기온을 나타낸다.

 

{

baseDate : 20240625
baseTime : 1400
category : TMX
fcstDate : 20240626
fcstTime : 1500
fcstValue : 30.0
nx : 64
ny : 123

                             }

TMX의 값은 15시에만 값이 나온다.

2024 06 26일 최고기온은 30℃ 이다.

 

 


UUU    풍속(동서성분)

 

단위 : m/s

 

UUU는 풍속(동서성분)을 나타낸다.

 

{

baseDate : 20240625
baseTime : 1400
category : UUU
fcstDate : 20240625
fcstTime : 1500
fcstValue : 4.5
nx : 64
ny : 123

                                 }

 

fcstValue의 값이 -(마이너스)면 서풍, +(플러스)면 동풍을 나타낸다.

위 데이터 값은 4.5이므로 동풍을 나타내고 속도는 4.5 m/s이다.

 

 

VVV    풍속(남북성분)

단위 : m/s

 

VVV는 풍속(남북성분)울 나타낸다.

 

{

baseDate : 20240625
baseTime : 1400
category : VVV
fcstDate : 20240625
fcstTime : 1500
fcstValue : -0.3
nx : 64
ny : 123

                                 }


fcstValue의 값이 -(마이너스)면 남풍, +(플러스)면 북풍을 나타낸다.

위 데이터 값은 -0.3이므로 남풍을 나타내고 속도는 0.3 m/s이다.

 

 

WAV    

 

단위 : M

 

WAV는 파고를 나타낸다

 

{

baseDate : 20240625
baseTime : 1400
category : WAV
fcstDate : 20240625
fcstTime : 1500
fcstValue : 0
nx : 64
ny : 123

                           }

 

fcstValue가 0이므로 파고는 0M 이다.

 

 

VEC    

 

단위 : deg

 

VEC는 풍향을 나타낸다

 

{

baseDate : 20240625
baseTime : 1400
category : VEC
fcstDate : 20240625
fcstTime : 1600
fcstValue : 269
nx : 64
ny : 123

                                 }

 

fcstValue값이 269 이므로 SW-W 방향이다.

 

아래 표는 공식 문서에서 제공하는 풍향 범위이다.

 

풍향

풍향 구간(°)  표현 단위 풍향 구간(°)  표현 단위
0 – 45 N-NE 80 – 225 S-SW
45 – 90 NE-E 225 – 270  SW-W
90 – 135 E-SE  270 – 315  W-NW
135 – 180 SE-S  315 – 360  NW-N



WSD   

단위 : m/s

 

WDS는 풍속을 나타낸다.

{

baseDate : 20240625
baseTime : 1400
category : WSD
fcstDate : 20240625
fcstTime : 1600
fcstValue : 4.2
nx : 64
ny : 123

                                }

 

fcstValue 값이 4.2이므로 4.2m/s의 속도를 나타낸다.

 

 

 

 

이렇게 단기예보의 JSON 데이터 내용 분석은 끝났고

다음에는 Spring를 활용해서 클래스에 데이터를 매핑할 것이다,