2024. 6. 25. 15:50ㆍSpring-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를 활용해서 클래스에 데이터를 매핑할 것이다,
'Spring-Project' 카테고리의 다른 글
기상청API를 활용한 나만의 Weather 만들기(4) - service (0) | 2024.07.04 |
---|---|
기상청API를 활용한 나만의 Weather 만들기(3) - domain, repository, service (0) | 2024.07.02 |
기상청API를 활용한 나만의 Weather 만들기(1) (0) | 2024.06.24 |
Arduino와 SpringBoot를 사용한 온습도 측정 사이트(완) - SpringBoot편 (0) | 2024.06.19 |
Arduino와 SpringBoot를 사용한 온습도 측정 사이트(7) - SpringBoot편 (0) | 2024.06.18 |