python中如何使用cartopy库代码绘制台风路径
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,这篇文章主要介绍"python中如何使用cartopy库代码绘制台风路径"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"python中如何使用cartopy库代
千家信息网最后更新 2025年02月23日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安全错误
数据库的锁怎样保障安全
大一网络技术实训总结和体会
支持数据库操作的软件是什么
黑莓9000软件开发
5g互联网科技工作室
网络安全手抄报简单内容小雷
课设网络安全管理软件
数据库肉鸡
顺网科技 最具互联网
手机微信设置网络安全
华为h225服务器配置
湖南美音网络技术有限公司地址
内网网络安全拓扑图
无锡博世嵌入式软件开发
网络安全专项整治自查自纠
城阳区ios软件开发企业
如果突然停电数据库数据
播放视频文件服务器运行失败
上海卫哲网络安全
网络安全工作要点网信
腾讯用的什么服务器
网络安全宣传周滨海
华为h225服务器配置
银行软件开发岗的职业规划
郑州代理投标软件开发
网络安全股票有那些
网络安全的不良行为
佛山热潮网络技术有限公司
ERP是基于数据库技术
用户可不可以直接接触数据库
游野新互联网科技有限公司