내용으로 건너뛰기
기상기후데이터위키
사이트 도구
검색
도구
문서 보기
이전 판
역링크
최근 바뀜
사이트맵
>
최근 바뀜
사이트맵
태풍:베스트트랙
문서의 이전 판을 선택했습니다!
저장하면 이 자료로 새 판을 만듭니다.
미디어 파일
======베스트트랙 (Best-track)====== [[태풍:베스트트랙#활용방안 |{{:wiki:활용방안클릭.png?linkonly250|}}]] =====1. 개요 (Overview)===== 베스트트랙은 태풍 종료 후, 예보 현업 상황에서 실시간으로 활용하지 못했던 관측 자료들을 수집하여 충분한 시간을 거쳐 정밀 재분석하여 생산한 최적의 태풍정보입니다. 태풍 분석 정보의 불확실성을 최소화하고, 모든 가용 데이터를 종합하여 도출한 '태풍 분석의 결정체'라 할 수 있습니다. =====2. 절차===== 베스트트랙은 태풍 종료 후 다음과 같은 절차를 통해 생산되고, 확정됩니다. ^ 자료 \\ 수집 ^ 베스트트랙 \\ 초안 작성 ^ 태풍예보관 \\ 교차검토 ^ 재분석 검토(2차) \\ - 내외부 전문가2)- ^ 베스트트랙 확정 ^ | 수시 | (당해) \\ 1~2월 | 3~4월 | 5월 | 6월 | =====3. 산출물 (Data Products)===== 태풍의 위치(위‧경도), 중심기압, 최대풍속, 강도 등급, 강풍반경, 폭풍반경 정보를 포함합니다. ====① 베스트트랙 양식(예시)==== ^ 등급 ^ 태풍호수 ^ 날짜(UTC) ^^^^ 위치 ^^^ 강도 ^^ 강풍반경 ^^ 폭풍반경 ^^^ 태풍이름 ^ ^ ::: ^ ::: ^ 년 ^ 월 ^ 일 ^ 시 ^ 경도(°E) ^ 위도(°N) ^ 최대풍속(m/s) ^ 중심기압(hPa) ^ 장반경(km) ^ 단반경(km) ^ 장반경방향(°) ^ 장반경(km) ^ 단반경(km) ^ 단반경방향(°) ^ ::: ^ | TS | 2401 | 2024 | 05 | 25 | 12 | 122.2 | 13.3 | 18 | 1000 | 180 | 110 | 270.0 | -999 | -999 | -999.9 | EWINIAR | ====② 베스트트랙 세부내용==== ^ 종류 ^^ 자리수 ^ 세부내용 ^ | \\ \\ \\ \\ \\ 등급 || \\ \\ \\ \\ \\ 3자리 문자 | TD 열대저압부(Tropical Depression) \\ 중심부근 최대풍속 14 m/s 이상인 열대저압부 | | ::: || ::: | TS 열대폭풍(Tropical Storm) \\ 중심부근 최대풍속 17 m/s 이상, 25 m/s 미만인 태풍 | | ::: || ::: | STS 강한열대폭풍(Severe Tropical Storm) \\ 중심부근 최대풍속 25 m/s 이상, 33 m/s 미만인 태풍 | | ::: || ::: | TY 태풍(Typhoon) \\ 중심부근 최대풍속 33 m/s 이상인 태풍 | | ::: || ::: | L 온대저기압(Extratropical Cyclone) | | 태풍호수 || 4자리 정수 | 앞 두자리: 태풍 발생 해의 뒤 두자리 수 \\ 뒷 두자리: 그 해 발생한 TS이상의 강도를 가진 폭풍의 개수 | | \\ \\ 날짜 | 년 | 4자리 정수 | 년 (年, Year) | | ::: | 월 | 2자리 정수 | 월 (月, Month) | | ::: | 일 | 2자리 정수 | 일 (日, Day) | | ::: | 시 | 2자리 정수 | 시 (UTC) | | \\ 위치 | 경도 | 5자리 실수 | 단위: 도 (0.0~360.0°) | | ::: | 위도 | 5자리 실수 | 단위: 도 (-90.0~90.0°) | | \\ 강도 | 풍속 | 2자리 실수 | 중심부근 최대풍속, 단위: m/s (10분 평균 풍속) \\ 존재하지 않을 시: -9 | | ::: | 기압 | 4자리 정수 | 중심기압, 단위: hPa | | \\ \\ \\ 강풍반경 | 장반경 | 4자리 정수 | 강풍(풍속 15 m/s 이상) 장반경, 단위: km \\ 존재하지 않을 시: -999 | | ::: | 단반경 | 4자리 정수 | 강풍(풍속 15 m/s 이상) 단반경, 단위: km \\ 존재하지 않을 시: -999 | | ::: | \\ 방향 | \\ 6자리 실수 | 강풍 단반경의 방향 \\ 단위: 16방위(22.5° 단위, 0~337.5°) \\ 존재하지 않을 시: -999.9 | | \\ \\ \\ 폭풍반경 | 장반경 | 4자리 정수 | 폭풍(풍속 25 m/s 이상) 장반경, 단위: km \\ 존재하지 않을 시: -999 | | ::: | 단반경 | 4자리 정수 | 폭풍(풍속 25 m/s 이상) 단반경, 단위: km \\ 존재하지 않을 시: -999 | | ::: | \\ 방향 | \\ 6자리 실수 | 폭풍 단반경의 방향 \\ 단위: 16방위(22.5° 단위, 0~337.5°) \\ 존재하지 않을 시: -999.9 | | 태풍이름 || 20자리 문자 | 영문 대문자로 표시 | =====4. 베스트트랙 제공 위치===== • 기상청 누리집(https://www.kma.go.kr/kma/): 알림‧자료 > 기상간행물 > 국가태풍센터 간행물 > 베스트트랙 • 기상청 API허브(https://apihub.kma.go.kr/): 태풍 > 태풍 베스트트랙 • IBTrACS(International Best Track Archive for Climate Stewardship) =====5. 활용방안===== 소스코드 : {{ :태풍:typhoon_besttrack_example.py |}} ====① 데이터 정제 함수==== <code py> def clean_besttrack_df(df): if df.empty: return df df = df.copy() numeric_cols = ["TYNO", "YY", "MM", "DD", "HH", "LON", "LAT", "MAX_WS", "PRES", "R15", "R25"] for col in numeric_cols: df[col] = pd.to_numeric(df[col], errors="coerce") # 결측값 처리 for col in ["MAX_WS", "PRES", "R15", "R25"]: df.loc[df[col] <= -9, col] = pd.NA # YY가 2자리면 2000년대 보정 if df["YY"].dropna().max() < 100: df["YYYY"] = df["YY"].apply(lambda x: int(2000 + x) if pd.notna(x) else pd.NA) else: df["YYYY"] = df["YY"] def make_dt(row): try: return datetime( int(row["YYYY"]), int(row["MM"]), int(row["DD"]), int(row["HH"]) ) except Exception: return pd.NaT df["datetime"] = df.apply(make_dt, axis=1) # 유효한 범위만 남김 df = df.dropna(subset=["LAT", "LON"]).copy() df = df[(df["LAT"] >= -90) & (df["LAT"] <= 90)] df = df[(df["LON"] >= 0) & (df["LON"] <= 360)] # 0~360 경도를 -180~180으로 바꾸고 싶으면 아래 사용 # df["LON"] = df["LON"].apply(lambda x: x - 360 if x > 180 else x) df = df.sort_values("datetime").reset_index(drop=True) return df </code> ====② 지도 시각화 함수==== <code py> def plot_typhoon_track(df): # 1. 지도 및 투영법 설정 fig = plt.figure(figsize=(12, 10)) ax = plt.axes(projection=ccrs.PlateCarree()) # 2. 지형지물 추가 (육지, 바다, 해안선) ax.add_feature(cfeature.LAND, facecolor="#f2f2f2") ax.add_feature(cfeature.OCEAN, facecolor="#e6f2ff") ax.add_feature(cfeature.COASTLINE, linewidth=0.8) # 3. 태풍 경로 및 중심점 그리기 ax.plot(df["LON"], df["LAT"], color="black", transform=ccrs.PlateCarree()) ax.scatter(df["LON"], df["LAT"], color="royalblue", transform=ccrs.PlateCarree()) # 4. 강풍 반경 원 그리기 (반복문을 통해 R15, R25 표시) for i, row in df.iterrows(): draw_wind_radius(ax, row["LON"], row["LAT"], row["R15"], "orange", "gold") draw_wind_radius(ax, row["LON"], row["LAT"], row["R25"], "red", "red") # 5. 결과물 저장 plt.savefig(OUTPUT_PNG, dpi=150, bbox_inches="tight") </code> ====③ 예상결과==== {{:태풍:typhoon_besttrack_map_2023_2301.png?nolink500}} {{:태풍:typhoon_besttrack_map_2023_2311.png?nolink500}}
저장
미리 보기
취소
편집 요약
문서 도구
문서 보기
이전 판
역링크
맨 위로