Matplotlib是Python常用的数据绘制包,其绘图功能强大;而Basemap则是Matplotlib的一个子包,负责地图绘制。本文简单介绍如何利用该程序包绘制风向图。具体操作如下:

导入命令

1)设置工作环境并导入程序包%cd "F:\\Dropbox\\python"

import numpy as np

import matplotlib.pyplot as plt

import datetime

from mpl_toolkits.basemap import Basemap, shiftgrid

from netCDF4 import Dataset

3)设定时间并读取数据yyyy=1993; mm=03; dd=14; hh=00

date = datetime.datetime(yyyy,mm,dd,hh)

URLbase="http://nomads.ncdc.noaa.gov/thredds/dodsC/modeldata/cmd_pgbh/"

URL=URLbase+"%04i/%04i%02i/%04i%02i%02i/pgbh00.gdas.%04i%02i%02i%02i.grb2" %\

(yyyy,yyyy,mm,yyyy,mm,dd,yyyy,mm,dd,hh)

data = Dataset(URL)

4)数据预处理latitudes = data.variables['lat'][::-1]

longitudes = data.variables['lon'][:].tolist()

slpin = 0.01*data.variables['Pressure_msl'][:].squeeze()

slp[:,0:-1] = slpin[::-1]; slp[:,-1] = slpin[::-1,0]u = np.zeros((uin.shape[0],uin.shape[1]+1),np.float64)

u[:,0:-1] = uin[::-1]; u[:,-1] = uin[::-1,0]v = np.zeros((vin.shape[0],vin.shape[1]+1),np.float64)v[:,0:-1] = vin[::-1];

v[:,-1] = vin[::-1,0]longitudes.append(360.); longitudes = np.array(longitudes)lons, lats = np.meshgrid(longitudes,latitudes)

5)设定并绘制图示m = Basemap(resolution='c',projection='ortho',lat_0=60.,lon_0=-60.)fig1 = plt.figure(figsize=(8,10))

ax = fig1.add_axes([0.1,0.1,0.8,0.8])clevs = np.arange(960,1061,5)x, y = m(lons, lats)parallels = np.arange(-80.,90,20.)

meridians = np.arange(0.,360.,20.)CS1 = m.contour(x,y,slp,clevs,linewidths=0.5,colors='k',animated=True)

CS2 = m.contourf(x,y,slp,clevs,cmap=plt.cm.RdBu_r,animated=True)ugrid,newlons = shiftgrid(180.,u,longitudes,start=False)

vgrid,newlons = shiftgrid(180.,v,longitudes,start=False)

uproj,vproj,xx,yy = \

m.transform_vector(ugrid,vgrid,newlons,latitudes,31,31,returnxy=True,masked=True)

Q = m.quiver(xx,yy,uproj,vproj,scale=700)qk = plt.quiverkey(Q, 0.1, 0.1, 20, '20 m/s', labelpos='W')m.drawcoastlines(linewidth=1.5)

m.drawparallels(parallels)

m.drawmeridians(meridians)

cb = m.colorbar(CS2,"bottom", size="5%", pad="2%")

cb.set_label('hPa')

ax.set_title('SLP and Wind Vectors '+str(date))

plt.show()

输出图像如下

以上就是【Python教程】地理可视化的内容,更多相关内容请关注PHP中文网(www.php.cn)!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

python地理_【Python教程】地理可视化相关推荐

  1. 初识python 视频_#python day02 初识python 学习视频来源于 太白金星

    #python day02 初识python 学习视频来源于 太白金星 ''' 知识点:安装PyCharm''' # 设置鼠标条件字体大小:file ->settings # 搜索mouse E ...

  2. python 白盒测试_白盒测试教程 - 颜丽的个人空间 - OSCHINA - 中文开源技术交流社区...

    总共贴了39节,后续还有很长,共122节,文章名为'白盒测试教程' 1.白盒测试概念 2.测试覆盖标准 3.逻辑驱动测试 4.基本路径测试 白盒测试概念 1.白盒测试也称结构测试或逻辑驱动测试,是一种 ...

  3. 手机上的python编辑器_菜鸟教程在线编辑器|菜鸟教程app手机版下载(html/java/python3)v1.0-乐游网安卓下载...

    <菜鸟教程app手机版>是一款为想要学习编程的朋友们打造的在线学习和编辑的软件,菜鸟教程app中有着html.java.C++等众多不同的编程语言可以学习,软件还自带编辑功能,有着java ...

  4. python评价指标_[Python人工智能] 六.神经网络的评价指标、特征标准化和特征选择...

    从本系列文章开始,作者正式开始研究Python深度学习.神经网络及人工智能相关知识.前五篇文章讲解了神经网络基础概念.Theano库的安装过程及基础用法.theano实现回归神经网络.theano实现 ...

  5. 汉诺塔问题递归算法python代码_[python]汉诺塔问题递归实现

    一.问题描述及算法步骤 汉诺塔问题的大意是有三根柱子a, b, c,现在a柱有N个盘子从下往上尺寸递减排列,要求: 1. 将a上的盘子移动到c柱上; 2. 每次移动一个盘子; 3. 柱子上的盘子始终必 ...

  6. python数据模型_#PYTHON#数据模型 | 学步园

    今天,谈谈python中的数据模型,当然你可以不了解这些东西,照样可以写出漂亮的python代码,但是"知其然知其所以然"是我的作风,总是不明白python的一些机制,心里很不爽. ...

  7. 小甲鱼python笔记_[Python]之前初学python,看小甲鱼视频的笔记(未整理)

    BIF == Built-in functions (内置函数) 用冒号: 而不是分号: 001作业 0.Python是一种面向对象的脚本语言. 1.IDLE是python的一个shell. 2.输出 ...

  8. python低通滤波器_[Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波

    [Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波 发布时间:2019-04-28 20:35, 浏览次数:2739 , 标签: Python 该系列文章是讲解Python OpenCV ...

  9. 哆啦a梦简单图画python编程_[python]画哆啦A梦,Python,绘制

    from turtle import * #无轨迹跳跃 defmy_goto(x, y): penup() goto(x, y) pendown()#眼睛 defeyes(): fillcolor(& ...

  10. python加法器_[python bottle] 网页加法器

    QPython 操作效果 代码: from bottle import Bottle, ServerAdapter from bottle import run, route #### 调用 qpy ...

最新文章

  1. eclipse保存自动组织导入、删除不必要的导入、格式化代码
  2. 超酷flash光芒光线特效
  3. struts2异常处理,global-results定义全局结果处理
  4. python3 数组大小_python3从零学习-5.1.8、高效的数值数组array
  5. mysql大量数据分页优化_mysql大量数据分页优化
  6. JavaScript call,apply和prototype的介绍,区别
  7. java和打印机_java实现打印机打印的区别
  8. LeetCode 470. 用 Rand7() 实现 Rand10()(随机概率)
  9. mysql innodb索引原理
  10. AOP就是面向切面编程,我们可以从几个层面来实现AOP。 ![](https://upload-im
  11. win7必须重新启动计算机才能应用这些更改,专家支招:当商用计算机遇到必须重新启动才能生效的更新...
  12. 数据结构与算法python—5.队列及python实现与leetcode总结
  13. 《暗时间》中提到的一些书籍整理
  14. 请立即卸载这款 IDEA 插件
  15. 小程序分销的规则是怎样的?
  16. SAP菜单中添加事务操作实例
  17. 高精度加法(C++,高精度)
  18. 关于国密HTTPS的那些事(三)
  19. python-字符串 修改间隔符 and定义变量 交换变量
  20. vue中Route和router、routes的关系

热门文章

  1. servlet中web.xml配置详解
  2. spring-data-mongodb查询结果返回指定字段
  3. Linux安全基础:grep命令的使用
  4. mysql分组之后统计数量
  5. iverilog命令选项解释
  6. 十分钟让你明白AIDL
  7. 多图上传乱序php,discuz图片顺序混乱解决方案_php技巧
  8. MDK530编译出现ARM版本不符问题
  9. ubuntu常见问题
  10. STM32——EEPROM