【译】Basemap⼿册——第⼀章⼊门(始于颜值)
刚接触Python的basemap库时,被它所能产⽣的效果震撼了。
但是在深⼊的学习时发现⽹上很难到系统的中⽂教程,仅能搜到⼀些博客⽂章⾥讲到的某些知识点,不成体系,就难以运⽤⾃如。
在⽹上看了看官⽅⽂档,⼜到了这⼀使⽤⼿册《Basemap tutorial Documentation Release 0.1
Roger Veciana i Rovira》,原作者在这⾥深⼊浅出的系统讲解了basemap的⽤法,有实例、有⽅法、有探讨、有研究,我在学习的时候受益匪浅,同时边学习边简单的翻译⼀下,供以后使⽤之便。
正所谓 始于颜值,陷于才华,忠于⼈品。在翻译的时候,我在保持原⼿册知识框架的同时,结合我学习的收获,侧重于以下三个层次:
1. ⼊门 始于颜值。这⼀章主要是基础的知识,能够从宏观上对basemap有⼀个直观的印象
2. 进阶 陷于才华。这⼀张主要是⾼级的⽤法,这些能让我们进⼀步领略到basemap的强⼤之处。
3. ⾼级 忠于⼈品。这⼀张主要是实⽤技巧,通过各种实例,展现各种技巧,让我们⽤起来爱不释⼿,游刃有余!
开始吧。。。。(⽔平有限,⽂章粗糙,仅供参考)
1 ⼊门
1. 安装
详细的安装教程在官⽅⽂档⾥已经有所阐述,所以这本使⽤指南侧重于向⼤家展⽰怎样使⽤Basemap。
在这些案例中,我使⽤的Linux系统的⼀些配置情况:
·在Ubuntu系统中,使⽤Synaptic安装库⽂件
·在Suse系统(⼀个⽼的Linux发⾏版)中,运⾏这些代码
以下为译者强⾏插⼊:
简单粗暴的安装⽅法(尤其对于Windows系统总是安装不成攻的时候):
在我经历了各种各样难以名状的坑之后,终于在 的⽂章种到了终极解决办法()
1. 确认电脑有pip
2. 下载pypro和basemap
通过 下载两个⽂件
basemap-1.1.0-cp36-cp36m-win_amd64.whl
pyproj-1.9.5.1-cp36-cp36m-win_amd64.whl
根据电脑配置和使⽤的Python版本下载对应的⽂件
1. 打开命令提⽰符,进⼊到上⾯两个⽂件所在⽂件夹
2. 安装pypro和basemap:
pip install pyproj-1.9.5.1-cp36-cp36m-win_amd64.whl
pip install basemap-1.1.0-cp36-cp36m-win_amd64.whl
下载⽤户指南
如果安装有GIT客户端,可以直接⽤下⾯命令下载到本地:
git clone
1. 画第⼀张地图
画⼀张最简单的地图(当然不是⼩时候每个⼈都画过的地图#^.^#):
from mpl_toolkits.base import Basemap
import matplotlib.pyplot as plt
map = Basemap()
map.drawcoastlines()
plt.show()
plt.savefig('test.png')
1. 第⼀⾏代码引⼊了Basemap库和matplotlib,这两个都是必须的。
2. 这张地图是由Basemap类创建的,这个类包含很多属性。如果使⽤默认值,则使⽤普通圆柱投影模式显⽰地图。
3. 如果设置了属性,我们就能根据需要创建地图。在这个例⼦中,⽤drawcoastlines()⽅法画出海岸线,海岸线的数据已经默认包
含在了库⽂件中。
4. 最后使⽤mathplotlip中的⽅法显⽰和保存图⽚,在这个例⼦中,plt.show()打开⼀个新的窗⼝来显⽰运⾏结
果,plt.savefig('file_name')把运⾏结果保存为图⽚。
改变地图的投影⽅式⾮常简单,只⽤在Basemap()中加⼊projection参数和lat_0, lon_0参数。(关于更多的地图投影只是,可以参考百度百科www.baidu/link?url=d7mToqKOKCk3Ba60s2HtT-
4pEuC4jzHhFqhytovCw2IKA6cu6GiBHuR-V7negpngoN8dKyHBNA8_8y8-
GRs1tJ7Q6o2bwDLtuB9277b6L6UrIKTRv2DPJtbw87iv6NeA&wd=&eqid=8077e6880001a123000000025a600f50)即使使⽤新的地图投影⽅式,⽣成的地图还是丑的⼀逼,⽤下⾯的代码可以给陆地和海洋填上不同的颜⾊:
From mpl_toolkits.basemp import Basemap
Import matplotlib.pyplot as plt
Map = Basemap(projection = 'ortho', lat_0 = 0, lon_0 = 0)
# ⾸先给地球涂上蓝⾊的⼀层
# 再给⼤陆涂上屎黄⾊,给江河湖泊涂上⼤海⼀样的颜⾊
map.fillcontinents(color = 'coral', lake_color = 'aqua')
map.drawcoastlines()
plt.show()嵌入式自学需要多久
Duang~Duang~Duang~
见证奇迹的时刻
2. 管理地图投影
所有的地图都应该设置投影模式,在创建Basemap对象时要指定投影模式以及相关属性。设置的⽅法和别的别的库⽂件有很⼤的不同,理解到这⼀点对后⾯使⽤Basemap很重要。
投影模式
projection参数⽤来设置投影模式
创建的地图是酱紫的,和上⾯的球球有很⼤不同:
1from mpl_toolkits.basemap import Basemap 2import matplotlib.pyplot as plt map = Basemap(projection = 'cyl') map.drawmapboundary(fill_color = 'aqua') map.fillcontinents(color = 'coral', lake_colo
projection默认的值是 cyl,是cylindrical Equidistant projection (等距圆柱投影)的缩写,也叫作等距柱状投影图(Equirectangular projection)或者⽅格投影(Plate carree)
许多投影模式需要补充额外的参数
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
python入门教程 非常详细 pdfmap = Basemap(projection = 'aeqd', lon_0 = 10, lat_0 = 50)
map.drawmapboundary(fill_color = 'aqua')
map.fillcontinents(color = 'coral', lake_color = 'aqua')
map.drawcoastlines()命名空间通俗解释
plt.show()
电脑启动为什么要按f1
(谁能告诉我这是什么⿁。。。。还是⽣我养我的地球吗?)
代码管理工具git怎么用这张图是以东经10度,北纬50度为中⼼(欧洲⼤陆上)绘制的等距投影地图,不同的投影需要不同的参数,具体参阅()
利⽤epsg 设置地图投影
ESPG是⼀种标准的命名投影⽅式的数字编码。Basemap允许使⽤这些标记来创建地图,但只局限于某些特定的情况下。要使⽤ESPG标记,需要在Basemap()⾥⾯加上epsg参数。
Basemap中的<python_packages_path>/mpl_toolkits/basemap/data/epsg对这种EPSG提供⽀持,但是有时使⽤这种⽅法还是会报错(ValueError: 23031 is not a supported EPSG code),所以不建议使⽤。
Basemap对带有"utm"的projection⽀持不太好,但是对带有"tmere"都能很好的⽀持。
下⾯的例⼦是⽤UTM投影显⽰祖国宝岛台湾省。
1from mpl_toolkits.basemap import Basemap
jquery插件在哪里下载2import matplotlib.pyplot as plt map = Basemap(llcrnrlon = 119.3, llcrnrlat = 20.7, urcrnrlon = 124.6, urcrnrlat = 26, resolution = 'h', epsg = 3415
extension
到⽬前为⽌,所有的例⼦都是在整个地球上画出地图。只绘制某⼀个区域的地图,可以通过设置地图边界或者地图中⼼来实现。官⽅
⽂档说⼤多数情况下两种⽅式都通⽤,但是还有⼀些例外。
注意:使⽤cyl,merc,mill,cea和gall投影时,如果没有设置边界,那么边界默认设置为-180,-90,180,90(也就是整个球
体),其他投影都需要额外设置。
通过经纬度设置边界Passing the bounding box(以祖国第⼆⼤岛为例)
1from mpl_toolkits.basemap import Basemap
2import matplotlib.pyplot as plt map = Basemap(llcrnrlon = 108.3, llcrnrlat = 18, urcrnrlon = 111.5, urcrnrlat = 20.3, resolution = 'i', projection = 'tmerc'
左下⾓和右上⾓的经纬度作为参数传⼊,

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。