台风“灿都”来了(附台风实时路径图)!Python可视化 | 台风路径轨迹图

admin 次浏览

摘要:【东台论坛】进入白露在冷空气的影响下大家好,欢迎来到 Crossin的编程教室 !天气凉意渐渐浮现先问大家一个问题:台风天要带多少钱出门?今天是周末答案是:四千万。因为台风天没四(事)千万不要出门这不最近又到了台风频发的季节。作为没有四千万的沿海人,

台风“灿都”来了(附台风实时路径图)!Python可视化 | 台风路径轨迹图(图1)

【东台论坛】

进入白露

在冷空气的影响下

台风“灿都”来了(附台风实时路径图)!Python可视化 | 台风路径轨迹图(图2)

大家好,欢迎来到 Crossin的编程教室 !

天气凉意渐渐浮现

先问大家一个问题:

台风天要带多少钱出门?

今天是周末

答案是:四千万。因为台风天没四(事)千万不要出门台风“灿都”来了(附台风实时路径图)!Python可视化 | 台风路径轨迹图(图3)

这不最近又到了台风频发的季节。作为没有四千万的沿海人,多关注一下天气预报还是有必要的。

那么今天呢,就给大家讲一个:用Python绘制台风路径轨迹图的可视化案例。

此案例中用到的核心绘图库是:plotly。plotly库是一个可交互,基于浏览器的绘图库,功能非常强大, 可以在线绘制常见的条形图、散点图、饼图、直方图等。

虽然出门的市民会觉得

涉及到的内容:

requests+json – 网页数据爬取

气温比前两天略高了些

但是总体来说

openpyxl – 保存数据至Excel

天气情况还是比较平静的

os.walk() – 文件路径遍历

台风“灿都”来了(附台风实时路径图)!Python可视化 | 台风路径轨迹图(图4)

pandas – 表格数据处理

不过看似平静的天气

其实并不安分

因为台风又来“凑热闹”了

plotly – 地图数据可视化

今天早上

东台市气象台发布了

1. 数据爬取
1.1 网页分析 

数据来源:中国天气台风网(http://typhoon.weather.com.cn/index.shtml)

以2020年为例,打开网址查看2020年台风列表:

大雾警报和台风消息

台风“灿都”来了(附台风实时路径图)!Python可视化 | 台风路径轨迹图(图5)

去年有记录的台风一共有23个,编号2001~2023。

今年第14号台风“灿都”(超强台风级)的中心今天05时位于距离我国台湾省宜兰县偏南方向约530公里的西北太平洋洋面上(北纬19.9度、东经122.1度),中心附近最大风力17级(62米/秒),中心最低气压915百帕。预计,“灿都”将以每小时14公里左右的速度向北偏西方向移动,强度缓慢减弱。受其影响,12日夜间至15日我市将有明显风雨过程。请有关方面注意!

台风“灿都”来了(附台风实时路径图)!Python可视化 | 台风路径轨迹图(图6)

台风“灿都”来了(附台风实时路径图)!Python可视化 | 台风路径轨迹图(图7)

1.2 查看网页台风数据 

F12调试模式,以编号2001为例:

“灿都”于24小时内连跳四级

目前已加强为

超强台风级

台风“灿都”来了(附台风实时路径图)!Python可视化 | 台风路径轨迹图(图8)

可以看到轨迹数据在页面返回的getData字符串中,内部数据为json格式。

台风“灿都”来了(附台风实时路径图)!Python可视化 | 台风路径轨迹图(图9)

台风“灿都”来了(附台风实时路径图)!Python可视化 | 台风路径轨迹图(图10)

数据包含:台风名称、时间(间隔1小时)、经度、纬度、风速、移动方向、移动速度等等。

受其外围影响

12日后期至15日

对于浏览器调试模式还不熟悉的同学,可以看之前的文章:爬虫必备工具,掌握它就解决了一半的问题

我市将有明显风雨过程

1.3 数据爬取 

单个台风轨迹爬取,需要输入年份和台风编号:

具体来说 

def get_tp_data(year, code):
    tim = int(time.time())
    url = f'http://d1.weather.com.cn/typhoon/typhoon_data/{year}/{code}.json?callback=getData&_={tim}'
    headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36' }
    r = requests.get(url,headers=headers)
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    datas = json.loads(r.text[8:-1])
    tp_name = datas['typhoon'][2]
    detail_datas = datas['typhoon'][8]
    # 台风信息
    allinfo = []
    for data in detail_datas:
        # 时间
        tp_time = data[1]
        # 经度
        tp_lon = data[4]
        # 纬度
        tp_lat = data[5]
        # 中心气压
        central_pressure = data[6]
        # 风速
        tp_speed = data[7]
        # 移向
        tp_direction = data[8]
        # 去除台风登陆时的空行
        if tp_direction == None :
            continue
        # 移速
        move_speed = data[9]
        tp_info = [f'{code}-' + tp_name,tp_time,tp_lon,tp_lat,central_pressure,tp_speed,tp_direction,move_speed]
        allinfo.append(tp_info)

台风“灿都”来了(附台风实时路径图)!Python可视化 | 台风路径轨迹图(图11)

注意操作:去除台风登陆时的空行数据(该数据无经、纬度信息),这一步也可以在后续数据处理中进行。

以前10个台风为例(可根据需要调整):

# 台风年份、编号
year = 2020
# 数据爬取
for code in range(2001,2011):
   get_tp_data(year, code)
   pass

台风“灿都”来了(附台风实时路径图)!Python可视化 | 台风路径轨迹图(图12)

关于 requests 库的使用也可以参考之前文章:让你的爬虫开发效率提升8倍1.4 数据保存 

使用openpyxl库保存Excel文件:

def insert2excel(filepath, allinfo):
    try:
        # 表头
        tableTitle = ['名称','时间','经度','纬度','中心气压(hPa)','风速(m/s)','移向','移速(m/s)']
        wb = Workbook()
        ws = wb.active
        ws.title = 'sheet1'
        ws.append(tableTitle)
        for info in allinfo:
            ws.append(info)
        wb.save(filepath)
        return True
    except:
        return False

台风“灿都”来了(附台风实时路径图)!Python可视化 | 台风路径轨迹图(图13)

台风“灿都”来了(附台风实时路径图)!Python可视化 | 台风路径轨迹图(图14)今年第14号台风“灿都”(超强台风级)的中心今天15时位于巴士海峡海面上,距离我国台湾省宜兰县偏南方向约410公里(北纬21.0度、东经121.6度),中心附近最大风力16级(55米/秒),中心最低气压930百帕。预计,“灿都”将以每小时12公里左右的速度向偏北方向移动,强度缓慢减弱。受其影响,12日夜间至15日我市将有明显风雨过程,其中13-14日内陆风力6到9级、沿海海面风力8到11级。请有关方面注意!今天夜里到明天白天多云,明天白天局部阴有阵雨或雷雨,偏东风3到4级明天逐步增强为4到5级阵风6级,明晨最低气温22℃左右,明天最高气温28℃左右。海区:今天夜里到明天白天多云,局部有雨,偏东风5到6级阵风7级明天逐渐增强为6到7级阵风8到9级。13日多云到阴有阵雨或雷雨,局部雨量大。14日阴有阵雨或雷雨,局部大到暴雨。

来源:东台时空综合盐城发布、东台气象

结果:

台风“灿都”来了(附台风实时路径图)!Python可视化 | 台风路径轨迹图(图15)

注意新建data文件夹(路径可自行调整):

台风“灿都”来了(附台风实时路径图)!Python可视化 | 台风路径轨迹图(图16)2. 地理轨迹
2.1 mapbox网站Token获取 

网站:https://account.mapbox.com/

需要邮箱注册:

本文版权归原作者所有,如有侵权请联系我们删除

台风“灿都”来了(附台风实时路径图)!Python可视化 | 台风路径轨迹图(图17)

2.2 导入plotly相关包 

导入express模块:

import plotly.express as px

添加下方二维码

如果环境没有plotly包,直接通过pip安装即可:

pip install plotly

2.3 单个台风轨迹 

代码:

第一时间了解东台大小事

台风“灿都”来了(附台风实时路径图)!Python可视化 | 台风路径轨迹图(图18)东台人都在关注☟

东台市2021年事业单位公开招聘体检人员名单

def trace_point_shows():
    df = pd.read_excel('./data/2020_2001_黄蜂轨迹数据.xlsx')
    print(df)
    token = '你的token'
    fig = px.scatter_mapbox(df,
         hover_data=['时间'],
         lon = '经度',
         lat = '纬度',
         color = '风速(m/s)',
         hover_name = '名称',
         size_max = 14,
         color_continuous_scale = px.colors.carto.Temps
        )
    fig.update_layout(mapbox = {'accesstoken': token, # 官网注册token
                             'center':{'lon':121.54,'lat':25.00}, # 地图中心
                             'zoom': 8,
     &n

东台这个村喜添“国字头”称号!盐城唯一!

东台历史上的三次建市

台风“灿都”来了(附台风实时路径图)!Python可视化 | 台风路径轨迹图(图19)

『东台论坛』

东台精致生活指南

小编微信号:donglun9

合作或建议,请加小编微信

随机内容
韦森特“芭玛”进占,今后四天江苏这些沿海地区需严加严防最新消息!韦森特 韦森特“芭玛”进占,今后四天江苏这些沿海地区需严加严防最新消息!韦森特
“烟火”来了请注意!——南京大学湖州德瑟莱申岛之星幼稚园韦森特温情提示信息韦森特预警系统升级! “烟火”来了请注意!——南京大学湖州德瑟莱申岛之星幼稚园韦森特温情提示信息韦森特预警系统升级!
中国寿命最长台风在海上停留了几天? 中国寿命最长台风在海上停留了几天?
“灿都”“康森”双台风逼近,中央气象台发布橙色预警,浙江请注意超强台风“灿都”今日开始将影响浙江 “灿都”“康森”双台风逼近,中央气象台发布橙色预警,浙江请注意超强台风“灿都”今日开始将影响浙江
有没有比较精确的天气预报app推荐?什么平台的天气预报最准确? 有没有比较精确的天气预报app推荐?什么平台的天气预报最准确?
扎堆来袭!第19号台风“天鹅”生成,20号台风酝酿中!东莞未来天气将这样....快讯!19号台风生成,20号也在路上!厦门将迎10级大风!网友:台风也要冲业绩? 扎堆来袭!第19号台风“天鹅”生成,20号台风酝酿中!东莞未来天气将这样....快讯!19号台风生成,20号也在路上!厦门将迎10级大风!网友:台风也要冲业绩?
飓风竟一路“打怪升级”!3级升为5级佛州“喜提”今夏全球风王!狂跳5级!“海贝思”成17级超强台风!2019风王! 飓风竟一路“打怪升级”!3级升为5级佛州“喜提”今夏全球风王!狂跳5级!“海贝思”成17级超强台风!2019风王!
官方消息!阳江数个韦森特紫色预警系统施行!预计今年进占处所....韦森特预计今年进占处所又变!电白开渔天数延后! 官方消息!阳江数个韦森特紫色预警系统施行!预计今年进占处所....韦森特预计今年进占处所又变!电白开渔天数延后!
台风影响下海南风雨来袭,导致了海口等地有大雨,琼州海峡停航吗? 台风影响下海南风雨来袭,导致了海口等地有大雨,琼州海峡停航吗?
上海什么时候下雨? 上海什么时候下雨?