用pandas库提取IBTrACS中特定条件的热带气旋最佳路径数据

JTWC的官网还是上不了,但是IBTrACS的数据下载还是没有问题的,本文就跟大家交流一下如何从IBTrACS中提取特定机构和特定条件的热带气旋最佳路径数据。

IBTrACS下载地址https://www.ncei.noaa.gov/products/international-best-track-archive?name=ib-v4-access

为了使用方便,用了函数封装,可以针对自己需要的条件修改

import pandas as pd
# 从ibtracs数据中筛选某个机构的最佳路径数据
def IBTrACS_Select_TS(AGENCY='USA'):
    data = pd.read_csv('ibtracs.WP.list.v04r00.csv',low_memory=False) #文件路径自己改

    # 选取WP(Western North Pacific)的数据中TS(Tropical),NR(Not Reported),MX(Mixed)的数据(只考虑热带气旋)
    data=data[[ i in ['TS','NR','MX'] for i in data['NATURE']]]
    # print(data.shape)
    
    # 只留下需要的机构数据columns
    data=data[list(filter(None,[i*(i in ['SID','SEASON','NUMBER','NAME','ISO_TIME'] or AGENCY in i) for i in data.columns]))]
    # print(data.shape)
    
    # 选取时间是6,12,18,00的数据(统一数据间隔,方便后续计算)
    data=data[[i.split(' ')[1].split(':')[0] in ['00','06','12','18'] for i in data['ISO_TIME']]]
    # print(data.shape)
    
    # 提取需要的年份,以1980-2020年为例
    data=data[[ i in [str(i) for i in range(1980,2021)] for i in data['SEASON']]]
    # print(data.shape)
    
    # 选取Wind不为空的数据
    data=data[[i != ' ' for i in data[AGENCY+'_WIND']]]
    # print(data.shape)
    
    # 去掉数据太少的columns
    data=data[list(filter(None,[k*(pd.Series([i != ' ' for i in data[k]]).sum()>100) for k in data.columns]))]
    # print(data.shape)
    # print(data.columns)
    
    return data

调用函数即可。

JTWC_data=IBTrACS_Select_TS(AGENCY='USA')
CMA_data=IBTrACS_Select_TS(AGENCY='CMA')
JMA_data=IBTrACS_Select_TS(AGENCY='TOKYO')

试着筛选了美国(JTWC)、中国(CMA)和日本(TOKYO)的数据,都没有问题。

因为观测方法和准入标准等不同,数据量会有差别。

本文部分思路参考了JTWC数据下载及处理_小朱小朱绝不认输的博客-CSDN博客_jtwc

祝大家科研顺利~

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值