python中如何使用cartopy库代码绘制台风路径
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章主要介绍"python中如何使用cartopy库代码绘制台风路径"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"python中如何使用cartopy库代
千家信息网最后更新 2025年11月08日python中如何使用cartopy库代码绘制台风路径
这篇文章主要介绍"python中如何使用cartopy库代码绘制台风路径"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"python中如何使用cartopy库代码绘制台风路径"文章能帮助大家解决问题。
使用python基于cartopy库绘制台风路径
使用python 绘制西太平洋进入我国的台风路径,文件为.dat格式,内容如下所示:

代码如下:
import netCDF4 as nc4import matplotlib.pyplot as pltimport numpy as npimport datetimeimport osimport cartopy.crs as ccrspath='E://' #文件路径files= os.listdir(path) #得到文件夹下的所有文件名称fig=plt.figure(figsize=(20,12)) #设置画布大小parallels = np.arange(0.,90.,3.) meridians = np.arange(0.0,360.,3.) ax = plt.axes(projection=ccrs.Robinson()) #设置投影方式# Set figure extent & ticksax.set_extent([100, 150, 5, 50]) #设置纬度范围# plt.grid(linestyle=':',color='y')#for file in files: #按照顺序在 files 里面进行每一个文件的 数据名称 循环读取 f = open(path+file,'r') # 打开第一个 dat 文件 records = f.readlines() # 读取这个文件里面的所有数据 f.close() # 关闭这个dat文件 date_t = '' # 设置一个用来表示空格 btk_lat = [] # 设置一个空的 待传入数据的纬度 btk_lon = [] # 设置一个空的 待传入数据的经度 btk_vmax = [] # 风速最大值 Maximum sustained wind speed in knots: 0 - 300 kts. btk_time = [] # 时间 btk_rmw = [] # 最大风速半径 radius of max winds, 0 - 999 n mi. btk_name = [] # 台风名称 for rcd in records: # 对这个dat文件里面,已经读取的每一行数据进行循环处理 strs = rcd.split(',') #将每一个','分隔开 if(len(strs)<21): #判断语句,如果这个被分割开的字符 长度<21 ,继续进行处理 continue date_str = strs[2].strip(' ') #将strs这个list的索引为2的值赋给data_str,既年月日时 if date_str == date_t:#判读如果是一个空格值,赋给data--str continue dt = datetime.datetime(int(date_str[0:4]),int(date_str[4:6]),int(date_str[6:8]),\ int(date_str[8:]),0,0,0) btk_time.append(nc4.date2num(dt,units='second since 1970-1-1 00:00:00'))#计算距离给的时间有多少秒,并从后往前排列 #处理纬度 lat_str = strs[6].strip() #判断南北纬 if lat_str[-1] == 'N': lat_t = float(lat_str[0:-1])*0.1 else: lat_t = float(lat_str[0:-1])*-0.1 btk_lat.append(lat_t) #处理经度 lon_str = strs[7].strip() #判断 东西经 if lon_str[-1] == 'E': lon_t = float(lon_str[0:-1])*0.1 else: lon_t = float(lon_str[0:-1])*-0.1 btk_lon.append(lon_t) #处理最大风速 vmax = strs[8].strip() btk_vmax.append(float(vmax))#转换为单浮点型,(带小数点) #时间 date_t = date_str #最大风速半径 rmw = strs[19].strip() btk_rmw.append(float(rmw)) #处理台风名称 if(len(strs) < 27): btk_name.append('noname') else: name = strs[27].strip() btk_name.append(name)#============================================================================== btk_lat = np.array(btk_lat) #将得到的list 值转换为数组型的值,为了便于绘图。因为绘图的横纵坐标都是数组排列 btk_lon = np.array(btk_lon)%360 #因为原始经度为-180 - 0 -180 ,出现断隔,为解决问题,化为 0-360 btk_time = np.array(btk_time) #时间转换 btk_vmax = np.array(btk_vmax)*0.5144 #风速换算公式 btk_rmw = np.array(btk_rmw)*1.852 # #判断,如果数组纬度的值是0,则为nan值,既无法计算的值(无穷大,,),否则即为台风的名称 if(len(btk_lat) == 0): tc_name = 'noname' else: index = btk_vmax.argmax() tc_name = btk_name[index] #进行绘图,经度、纬度曲线 ax.plot(btk_lon,btk_lat,color='k',linewidth=0.5,transform=ccrs.PlateCarree()) #散点图绘制,经度、纬度、最大风速, cb = ax.scatter(btk_lon,btk_lat,c=btk_vmax,s=10.0,transform=ccrs.PlateCarree() ,vmin=10,vmax=60)ax.coastlines()ax.gridlines(draw_labels=True, dms=True, x_inline=False, y_inline=False)plt.colorbar(cb,label='Vmax (m/s)',pad=0.07,orientation='vertical',shrink=1)plt.title(' path')# 保存绘制图片 ,注意保存路径不能放在dat文件夹中 #fig.savefig(path3+'tester.tiff',format='tiff',dpi=100)关于"python中如何使用cartopy库代码绘制台风路径"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
文件
台风
路径
纬度
风速
处理
最大
名称
数据
经度
代码
时间
数组
知识
绘图
内容
半径
文件夹
空格
行业
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
厦门商城软件开发
服务器数据保存多长时间
传奇4国际服服务器列表
qt创建数据库什么版本
网络安全三观是什么
网络技术培训利润高吗
软件开发脚手架工程
快速学习嵌入式软件开发
数据库为什么要关联实体
剑侠世界3服务器21区
网络安全证书颁发机构
软件开发常见的配置库
qq拉群服务器繁忙几天就好了
网络安全进校园主题班会感悟
计算机网络安全设计原则
sql数据库备份失败
淄博怎么备份织梦数据库文件
网络安全工程师基础到进阶
正大集团数据库工程师
网络安全防范启示
远端服务器
黄浦区电商软件开发市场价
青岛网警 网络安全
超星图书全文数据库
腾讯服务器20000押金怎么退
如何用一台电脑做中转服务器
到达现场了会影响网络安全吗
服务器管理口IP保存失败
网络安全备用大全
定制安卓软件开发