python地理_【Python教程】地理可视化

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中文网,转载请注明出处,感谢您的尊重!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476433.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

部署windows服务

写好了windows服务以后,再切换到设计页面,右键点击添加安装程序,点击后自动给你添加上一个安装组件,再设置下serviceProcessInstaller1组件的属性(在设计器中设置,不在代码中),其中有…

LeetCode 327. 区间和的个数(multiset二分查找/归并排序)

文章目录1. 题目2. 解题2.1 动态规划超时2.2 二分查找2.3 归并排序1. 题目 给定一个整数数组 nums,返回区间和在 [lower, upper] 之间的个数,包含 lower 和 upper。 区间和 S(i, j) 表示在 nums 中,位置从 i 到 j 的元素之和,包…

AcWing之二维数组的查找

题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。样例 输入数组: [ [1,2,8,9]&…

sql server排序慢_SQL 查询调优之 where 条件排序字段以及 limit 使用索引的奥秘

(给数据分析与开发加星标,提升数据技能)作者:风过无痕-唐www.cnblogs.com/tangyanbo/p/6378741.html奇怪的慢sql我们先来看2条sql第一条:select * from acct_trans_log WHERE acct_id 1000000000009000757 order by create_time desc limit…

fedora10完全配置文档连接网址

code.google.com/p/fedora-zh/downloads/list 转载于:https://www.cnblogs.com/glc400/archive/2008/12/20/4473856.html

LeetCode 326. 3的幂

1. 题目 给定一个整数,写一个函数来判断它是否是 3 的幂次方。 示例 1: 输入: 27 输出: true示例 2: 输入: 0 输出: false示例 3: 输入: 9 输出: true示例 4: 输入: 45 输出: false进阶: 你能不使用循环或者递归来完成本题吗?来源&#xff…

ps抠头发插件_彻底告别抠图的烦恼!PS自动抠图超级插件Topaz ReMask大放送

我们经常需要对各种图片进行抠图,虽然抠图方法很多,但是我们却要花费很长的时间,这无疑来说效率非常不高。有没有一款PS插件可以快速对照片进行抠图?并且可以达到自己理想的效果?当然是有的,今天米朵就送给…

AcWing之找替换空格

题目 请实现一个函数,把字符串中的每个空格替换成"%20"。 你可以假定输入字符串的长度最大是1000。 注意输出字符串的长度可能大于1000。样例 输入:"We are happy."输出:"We%20are%20happy."方法一&#xff…

VC++中忽略所有默认库纯Win32 API编译及链接 - 计算机软件编程 - Wangye's Space

原始链接:VC中忽略所有默认库纯Win32 API编译及链接 - 计算机软件编程 - Wangyes Space 我们在用VC编写Windows程序的时候可能会发现一般可执行体(.EXE)的文件体积都比较大,于是非常羡慕那些使用Win32汇编编写程 序的人&#xff0…

LeetCode 345. 反转字符串中的元音字母

1. 题目 编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例 1: 输入: "hello" 输出: "holle"示例 2: 输入: "leetcode" 输出: "leotcede"说明: 元音字母不包含字母"y"。来源&#xf…

python list存储对象_《python解释器源码剖析》第4章--python中的list对象

4.0 序python中的list对象,底层对应的则是PyListObject。如果你熟悉C,那么会很容易和C中的list联系起来。但实际上,这个C中的list大相径庭,反而和STL中的vector比较类似4.1 PyListObject对象我们知道python里面的list对象是支持对…

AcWing之从尾到头打印链表

题目 输入一个链表的头结点,按照 从尾到头 的顺序返回节点的值。 返回的结果用数组存储。样例 输入:[2, 3, 5] 返回:[5, 3, 2]方法一: /* struct ListNode {int val; //当前结点的值ListNode *next; //指向下一个结点的指针L…

javascript 打开新窗口

一、window.open()支持环境: JavaScript1.0/JScript1.0/Nav2/IE3/Opera3 二、基本语法:window.open(pageURL,name,parameters) 其中:pageURL 为子窗口路径 name 为子窗口句柄 parameters 为窗口参数(各参数用逗号分隔) 三、示例:…

python修改mac地址_python利用_winreg模块制作MAC地址修改工具

通过百度搜索知道,xp下修改MAC地址的方法主要有两个,一种是通过配置本地链接属性来实现,这种方法不适合用程序来完成,另一种是通过修改注册表来完成,本程序主要是利用了这种方法。具体方法:Windows 2000/XP…

我们为什么需要工作流

我们为什么需要工作流 这是我的"基于WF设计业务流程平台"的题外篇 以下是这系列的文章列表,写的很痛苦,但我会继续写下去 基于WF设计业务流程平台-架构 基于WF设计业务流程平台-权限体系 基于WF设计业务流程平台_特定群体与特定人 基于WF设计业务流程平台_参与者与任…

LeetCode 371. 两整数之和(位运算加法)

1. 题目 不使用运算符 和 - ​​​​​​​,计算两整数 ​​​​​​​a 、b ​​​​​​​之和。 示例 1: 输入: a 1, b 2 输出: 3示例 2: 输入: a -2, b 3 输出: 1来源:力扣(LeetCode) 链接:https://leetcod…

python函数方法里面用浅复制深复制_图解 Python 浅拷贝与深拷贝

Python 中的赋值语句不会创建对象的拷贝,仅仅只是将名称绑定至一个对象。对于不可变对象,通常没什么差别,但是处理可变对象或可变对象的集合时,你可能需要创建这些对象的 “真实拷贝”,也就是在修改创建的拷贝时不改变…

32位Windows系统未分页内存限制导致的VPS的容量问题

问题 32位Windows系统未分页内存限制导致的VPS的容量问题 解决方案 在32位的Windows系统上,制约VPS的数量的主要参数是“未分页内存” 打开Windows自己的任务管理器,选择性能标签,查看“核心内存”,查看“未分页” 在32位的windo…

AcWing之重建二叉树

题目 输入一棵二叉树前序遍历和中序遍历的结果,请重建该二叉树。 注意:二叉树中每个节点的值都互不相同;输入的前序遍历和中序遍历一定合法;样例 给定: 前序遍历是:[3, 9, 20, 15, 7] 中序遍历是:[9, 3, …

奇异值分解(Singular Value Decomposition,SVD)

文章目录1. 奇异值分解的定义与性质1.1 定义1.2 两种形式1.2.1 紧奇异值分解1.2.2 截断奇异值分解1.3 几何解释1.4 主要性质2. 奇异值分解与矩阵近似2.1 弗罗贝尼乌斯范数2.2 矩阵的最优近似2.3 矩阵的外积展开式3. 奇异值分解Python计算4. SVD应用一种矩阵因子分解方法矩阵的奇…