태풍:베스트트랙
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판이전 판다음 판 | 이전 판 | ||
| 태풍:베스트트랙 [2026/05/06 02:17] – [5. 활용방안] admin | 태풍:베스트트랙 [2026/05/06 08:24] (현재) – [4. 베스트트랙 제공 위치] admin | ||
|---|---|---|---|
| 줄 17: | 줄 17: | ||
| 태풍의 위치(위‧경도), | 태풍의 위치(위‧경도), | ||
| - | ====① 베스트트랙 양식(예시)==== | + | ====3.1 베스트트랙 양식(예시)==== |
| - | ^ | + | ^ |
| ^ ::: ^ ::: ^ 년 ^ 월 ^ 일 ^ 시 ^ 경도(°E) | ^ ::: ^ ::: ^ 년 ^ 월 ^ 일 ^ 시 ^ 경도(°E) | ||
| | TS | 2401 | 2024 | 05 | 25 | 12 | 122.2 | 13.3 | 18 | 1000 | 180 | 110 | 270.0 | -999 | -999 | -999.9 | | TS | 2401 | 2024 | 05 | 25 | 12 | 122.2 | 13.3 | 18 | 1000 | 180 | 110 | 270.0 | -999 | -999 | -999.9 | ||
| - | ====② 베스트트랙 세부내용==== | + | ====3.2 베스트트랙 세부내용==== |
| ^ 종류 | ^ 종류 | ||
| 줄 50: | 줄 50: | ||
| =====4. 베스트트랙 제공 위치===== | =====4. 베스트트랙 제공 위치===== | ||
| - | • 기상청 누리집(https:// | + | |
| - | • 기상청 API허브(https:// | + | |
| - | • IBTrACS(International Best Track Archive for Climate Stewardship) | + | |
| ===== 5. 활용방안 ===== | ===== 5. 활용방안 ===== | ||
| 줄 379: | 줄 379: | ||
| {{: | {{: | ||
| {{: | {{: | ||
| - | ====① 데이터 정제 함수==== | ||
| - | <code py> | ||
| - | def clean_besttrack_df(df): | ||
| - | if df.empty: | ||
| - | return df | ||
| - | df = df.copy() | ||
| - | numeric_cols = [" | ||
| - | for col in numeric_cols: | ||
| - | df[col] = pd.to_numeric(df[col], | ||
| - | # 결측값 처리 | ||
| - | for col in [" | ||
| - | df.loc[df[col] <= -9, col] = pd.NA | ||
| - | # YY가 2자리면 2000년대 보정 | ||
| - | if df[" | ||
| - | df[" | ||
| - | else: | ||
| - | df[" | ||
| - | def make_dt(row): | ||
| - | try: | ||
| - | return datetime( | ||
| - | int(row[" | ||
| - | int(row[" | ||
| - | int(row[" | ||
| - | int(row[" | ||
| - | ) | ||
| - | except Exception: | ||
| - | return pd.NaT | ||
| - | df[" | ||
| - | # 유효한 범위만 남김 | ||
| - | df = df.dropna(subset=[" | ||
| - | df = df[(df[" | ||
| - | df = df[(df[" | ||
| - | # 0~360 경도를 -180~180으로 바꾸고 싶으면 아래 사용 | ||
| - | # df[" | ||
| - | df = df.sort_values(" | ||
| - | return df | ||
| - | </ | ||
| - | ====② 지도 시각화 함수==== | ||
| - | <code py> | ||
| - | def plot_typhoon_track(df): | ||
| - | # 1. 지도 및 투영법 설정 | ||
| - | fig = plt.figure(figsize=(12, | ||
| - | ax = plt.axes(projection=ccrs.PlateCarree()) | ||
| - | # 2. 지형지물 추가 (육지, 바다, 해안선) | ||
| - | | ||
| - | | ||
| - | | ||
| - | # 3. 태풍 경로 및 중심점 그리기 | ||
| - | | ||
| - | | ||
| - | # 4. 강풍 반경 원 그리기 (반복문을 통해 R15, R25 표시) | ||
| - | for i, row in df.iterrows(): | ||
| - | | ||
| - | | ||
| - | # 5. 결과물 저장 | ||
| - | | ||
| - | </ | ||
| - | ====③ 예상결과==== | ||
| - | |||
| - | {{: | ||
| - | {{: | ||