使用Python绘制台风轨迹图的示例代码
作者:caishunzhe 发布时间:2021-09-10 16:15:56
标签:python,绘制,台风,轨迹图
参考:
1.Basemap绘制中国地图
2.Basemap生成的图中绘制轨迹
使用CMA热带气旋最佳路径数据集,对我国周边的台风进行绘制
import re
import os
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
path=r"E:\Computer Science\数学建模\第二次模拟赛题\附件"
files= os.listdir(path) #得到文件夹下的所有文件名称
data=[]
all=[]
for file in files: #遍历文件夹
if not os.path.isdir(file): # 判断是否是文件夹,不是文件夹才打开
f = open(path + "/" + file) # 打开文件
tmp=f.readlines()
for i in tmp:
line=i.split()
if(line[0]=='66666'):
if(len(all)>0):
data.append(all)
# print(line)
all=[]
else:
we=(int(line[2])*0.1,int(line[3])*0.1)
all.append(we)
# print(data)
print(len(data))
CHN='E:\Computer Science\数学建模\python_basemap'
plt.figure(figsize=(20,12))
map=Basemap(llcrnrlon=70,llcrnrlat=2,urcrnrlon=170,urcrnrlat=58)
map.drawcoastlines()
map.drawcountries()
#添加河流
# map.drawrivers(color='blue',linewidth=0.3)
#添加大陆
map.readshapefile(CHN+'\gadm36_CHN_shp\gadm36_CHN_1',
'states',color='blue',drawbounds=True)
map.readshapefile(CHN+'\gadm36_TWN_shp\gadm36_TWN_1',
'taiwan',color='blue',drawbounds=True)
#添加经纬线
parallels = np.linspace(3,55,5)
# print(parallels)
map.drawparallels(parallels,labels=[False,True,False,False],fontsize=5)
meridians = np.linspace(70,170,5)
# print(meridians)
map.drawmeridians(meridians,labels=[False,False,False,True],fontsize=5)
plt.rcParams['savefig.dpi'] = 300 #图片像素
plt.rcParams['figure.dpi'] = 300 #分辨率
ans=1
x=[]
y=[]
for typhoon in data:
length=len(typhoon)
print("%d is process!" % ans)
ans += 1
for i in range(length):
x.append(typhoon[i][1])
y.append(typhoon[i][0])
# print(x,y)
# map.plot(x, y, 'c*-', linewidth=2)
map.plot(x, y, color='r',linewidth=1.5)
x = []
y = []
map.fillcontinents()
plt.title(r'$China\ Typhoon$',fontsize=24)
# plt.ylim(70, 170)
# plt.xlim(2, 58)
plt.show()
效果图:
来源:https://www.cnblogs.com/caishunzhe/p/13640898.html


猜你喜欢
- 一、 问题现象 在执行 SQL Server分布式事务时,在SQL Server 2005下收到如下错误: 消息 7391,级别 16,状态
- 很多时候关心的是优化SELECT 查询,因为它们是最常用的查询,而且确定怎样优化它们并不总是直截了当。相对来说,将数据装入数据库是直截了当的
- DROP TABLE IF EXISTS [TEMP_TABLE_NAME]; create temporary table [TEMP_T
- 计模式的目的是让代码易维护、易扩展,不能为了模式而模式,因此一个简单的工具脚本是不需要用到任何模式的。简单工厂模式又叫静态工厂方法模式,工厂
- V5.0之后,我们总结了一些得失。首先要说的是改版的动力。产品设计或产品升级的驱动力只有两个:用户需求和网站目标。之前的我们的多次改版,其驱
- 前言在制作网页动态效果时,一定会遇到某些需求,要求某段程序等待多时时间后再开始执行,就像在我们的生活中一样,待会儿再开始做一件事。在Java
- 最近经常看到各平台里都有Python的广告,都是对excel的操作,这里明哥收集整理了一下pandas对excel的操作方法和使用过程。本篇
- 下面我摘录了SQL Server官方教程中的一段关于触发器的文字,确实有用的一点文字描述。 可以定义一个无论何时用INSERT语句向表中插入
- 从概念上讲,大多数关系数据库系统都是类似的:它们都由一组数据库组成,且每个数据库都包含一组表。但是,所有的系统都有自己的管理数据的方法, M
- 炫酷地图前期我们介绍了很多的地图模板,不管是全球的还是中国的,其实我感觉都十分的炫酷,哈哈哈,可是还有更加神奇的,更加炫酷的地图模板,下面让
- 一般我们的项目中会使用1到2个数据库连接配置,同程艺龙的数据库连接配置被收拢到统一的配置中心,由DBA统一配置和维护,业务方通过某个字符串配
- 什么是主键?主键是表中唯一标识该表中每个元组(行)的列。主键对表实施完整性约束。表中只允许使用一个主键。主键不接受任何重复值和空值。表中的主
- 最近做项目的时候有一个发布新闻的需求,新闻编辑的时候要求能发布带格式的文本内容和能展示支持图片。由于项目是用 Vue 开发的,所以找编辑器的
- 在做维护项目的时,我们经常会遇到索引维护的问题,通过语句,我们就可以判断某个表的索引是否需要重建。 执行一下语句:先分析表的索引 分析表的索
- 用于序列化的两个模块json:用于字符串和Python数据类型间进行转换pickle: 用于python特有的类型和python的数据类型间
- 前段时间看到letcode上的元音字母字符串反转的题目,今天来研究一下字符串反转的内容。主要有三种方法:1.切片法(最简洁的一种)#切片法d
- InstrRev描述:返回某字符串在另一个字符串中出现的从结尾计起的位置。语法:InstrRev(string1, string2
- 在设计主键的时候往往需要考虑以下几点: 1.无意义性:此处无意义是从用户的角度来定义的。这种无意义在一定程度上也会减少数据库的信息冗余。常常
- 这篇文章主要介绍了Python FTP文件定时自动下载实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价
- 1.前言这段时间,金三银四,很多人面试,很多人分享面试题。在前段时间,我也临时担任面试官,为了大概了解面试者的水平,我也写了一份题目,面试了