[Python] Basemap入坑手册
Basemap入坑手册
2021-07-19
换了电脑装basemap报错后一直没更新,今天本来想怎么着也给他装上,才发现这个项目从2016年就换主了,basemap被维护到2020年。
但是现在都2021了,所以这篇不会再更新了,可能会开个cartopy的学习笔记。
文章目录
- Basemap入坑手册
- 0. 介绍
- 1. 安装
- 2. 画第一张图
- 3. 地图投影专题
- 3.1 地图投影基础
- 3.1.1 用EPSG进行设置
- 3.2 地图投影拓展
- 4. 基本功能
- 4.1 在图上画点
前面的废话
本来只是想画个热点图,然后一路 百度地图API —> folium —> Basemap,因为前两个要html的知识,而我并没有,所以最后入坑了Basemap。
然而网上的资源虽然很多,但是比较零散,不过找到英文版的tutorial,全英文的怕自己读不下去,决定边学边记笔记,以及有好用的教程和资源也在这里马克一下。
0. 介绍
Python里画地图的。
1. 安装
每逢非pip可以安装的包就有点头大。
安装部分官方也有指南,大概的意思就是先装python (废话)、matplotlib、numpy、PROJ4、GEOS、Pillow(可选)再安装Basemap。
我是Mac的Anaconda,所以直接在下载了Source Code (tar.gz),解压后在终端安装。
具体过程:
解压后文件夹里会有setup.py的文件;
打开终端,输入
cd ./desktop/..
(Change Directory到setup.py的位置);输入
python setup.py install
;在python里输入
from mpl_toolkits.basemap import Basemap
,如果没有报错说明安装成功。
更详细的教程可以参考:
Mac:Mac Python+basemap安装
Linux:python番外(2)——Basemap安装
Windows:window下安装basemap
2. 画第一张图
最基础的图代码如下:
# 导入包
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt# 新建地图
map = Basemap() #Basemap类有很多属性,这里全都使用默认参数# 画图
map.drawcoastlines()# 显示结果
plt.show()# 存储结果
plt.savefig('test.png')
得到这样的图↓\downarrow↓
一丢丢进阶的图代码如下:
# 导入包
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt# 更改投影方式
map = Basemap(projection = 'ortho', lat_0 = 0, lon_0 = 0) #’ortho’指正射投影,具体参数后面再讨论;后面两个参数是设置中心点# 给整个地图上蓝色
map.drawmapboundary(fill_color = 'aqua')# 给陆地涂上珊瑚色,湖泊涂上蓝色
map.fillcontinents(color = 'coral', lake_color = 'aqua')# 画图
map.drawcoastlines()# 显示结果
plt.show()
得到这样的图↓\downarrow↓
如果遇到error请点这里看看。
3. 地图投影专题
地图投影是利用一定数学法则把地球表面的经、纬线转换到平面上的理论和方法。——百度百科
tutorial指出Basemap里的投影方式跟其他库不太一样(如GDAL),所以要好好学一学。
3.1 地图投影基础
Basemap的投影方式是由Basemap类中projection
这一属性控制的,默认为cyl
,可选项如下,对应的具体效果见地图投影示例。:
选项 | 描述 | 解释 |
---|---|---|
cyl | Cylindrical Equidistant | 默认,圆柱投影 |
merc | Mercator | 墨卡托投影,是正轴等角圆柱投影 |
tmerc | Transverse Mercator | 横轴墨卡托投影 |
omerc | Oblique Mercator | 斜轴墨卡托投影 |
mill | Miller Cylindrical | 米勒圆柱投影 |
gall | Gall Stereographic | 高尔立体投影 |
cea | Cylindrical Equal-Area | 圆柱等面积投影 |
lcc | Lambert Conformal | 兰勃特等角投影 |
laea | Lambert Azimuthal Equal Area | 兰勃特等积投影 |
nplaea | North-Polar Lambert | 北极兰勃特投影? |
splaea | South-Polar Lambert | 南极兰勃特投影? |
eqdc | Equidistant Conic | 等距圆锥投影 |
aeqd | Azimuthal Equidistant | 等距方位投影 |
npaeqd | North-Polar Azimuthal | 北极方位投影 |
spaeqd | South-Polar Azimuthal | 南极方位投影 |
aea | Albers Equal | 阿尔伯斯等积投影 |
stere | Stereographic | 立体投影 |
npstere | North-Polar Stereographic | 北极立体投影 |
spstere | South-Polar Stereographic | 南极立体投影 |
cass | Cassini-Soldner | 卡西尼-斯洛德投影 |
poly | Polyconic | 多圆锥投影 |
ortho | Orthographic | 正射投影 |
geos | Geostationary | 对地静止投影 |
nsper | Near-Sided Perspective | 近端透视投影? |
sinu | Sinusoidal | 正弦投影 |
moll | Mollweide | 摩尔威德投影 |
hammer | Hammer | 哈默投影 |
robin | Robinson | 罗宾森投影 |
kav7 | Kavrayskiy VII | |
eck4 | Eckert IV | |
vandg | van der | |
mbtfpq | McBryde-Thomas Flat-Polar | |
gnom | Gnomonic | |
rotpole | Rotated Pole |
解释部分的参考:
- Matplotlib: Setting up the map
- 地图投影种类-中英文对照
- 地图投影的N种姿势
- 以及百度百科
3.1.1 用EPSG进行设置
没太整明白
3.2 地图投影拓展
如果不想展示整个地图,可以通过修改地图边界或中心来展示部分区域。
除了cyl、merc、mill、cea和gall默认显示整个地球llcrnrlon = -180, llcrnrlat = -90, urcrnrlon = 180, urcrnrlat=90
,其他投影方式都要手动设置Basemap类的参数来设置所展示的区域。
多数投影方式可以通过三种方法中的若干种进行设置:
方法一:设置边界的经纬度
参数 | 解释 |
---|---|
llcrnrlon |
longitude of lower left hand corner of the desired map domain (degrees). 地图左边经度 |
llcrnrlat |
latitude of lower left hand corner of the desired map domain (degrees). 地图下方纬度 |
urcrnrlon |
longitude of upper right hand corner of the desired map domain (degrees). 地图右边经度 |
urcrnrlat |
latitude of upper right hand corner of the desired map domain (degrees). 地图上方纬度 |
方法二:设置边界的坐标
参数 | 解释 |
---|---|
llcrnrx |
x value of lower left hand corner of the selected map domain in map projection coordinates. 地图左下角的x值 |
llcrnry |
y value of lower left hand corner of the selected map domain in map projection coordinates. 地图左下角的y值 |
urcrnrx |
x value of upper right hand corner of the selected map domain in map projection coordinates. 地图右上角的x值 |
urcrnry |
y value of upper right hand corner of the selected map domain in map projection coordinates. 地图右上角的y值 |
方法三:设置中心点和高与宽
参数 | 解释 |
---|---|
width |
width of desired map domain in projection coordinates (meters). 宽 |
height |
height of desired map domain in projection coordinates (meters). 高 |
lon_0 |
center of desired map domain (in degrees). 中心点的经度 |
lat_0 |
center of desired map domain (in degrees). 中心点的纬度 |
#其他相关参数:
4. 基本功能
4.1 在图上画点
画一个点
画多个点
[Python] Basemap入坑手册相关推荐
- [Python] Basemap入坑手册 - 地图投影示例
Basemap入坑手册 - 地图投影示例 文章目录 Basemap入坑手册 - 地图投影示例 cyl - Cylindrical Equidistant merc - Mercator tmerc - ...
- Python 小入坑
python入坑 学习的是python3 一些信息 官网 https://www.python.org/ 官方文档 https://docs.python.org/3/ github https:// ...
- 体脂秤Flash MCU:HT45F75 入坑手册
一.认识HT45F75 一句话简介 HT45F75是Holtek专为人体脂肪秤应用而设计的. 详细描述 该单片机集成了体脂秤电路,是一款A/D 型具有8 位高性能精简指令集的Flash 单片机,内置的 ...
- python小白用哪个版本好_完全小白Python极速入坑指南
现在很多非IT行业的朋友都知道python,看到铺天盖地的广告,想学又不知如何入坑,也犹豫是否值得学习.一直以来我都觉得编程是有门槛的,并非所有人都适合.很多血淋淋的现实,比如很多小白就倒在配置环境上 ...
- 时间序列经济python_(13)Python初入坑之时间序列基础内容
本节介绍python的关于时间序列的基础内容. 一.时间序列的基础内容 在金融和经济学领域python已经承担起了很多任务,这得益于pandas对于时间序列的良好支持.现在在金融和数据分析的重要性正在 ...
- 《毕业论文新手入坑手册》分享
由于微信公众号外部链接的限制,文中的部分链接可能无法正确打开.如有需要,请点击文末的"阅读原文"按钮,访问可以正常显示外链的版本. 链接 咱们开门见山. 我把之前公众号和专栏发布的 ...
- python web-python web入坑指南
原标题:python web入坑指南 Invest regularly in your knowledge portfolio. Make learning a habit. 自学python web ...
- python这个软件学会能做什么工作-学会Python真的有高收入?盯,请查收这份入坑指南...
学会Python真的有高收入?盯,请查收这份入坑指南 2018-10-10 20:51:00 567点赞 6312收藏 186评论 小编注:想获得更多专属福利吗?金币加成.尊享众测.专属勋章.达人福利 ...
- python工程师薪资坑吗-入坑Python爬虫值不值?
点击蓝字"python教程"关注我们哟! 有很多小伙伴,学习了Python的很多知识,比如基础语法.函数,web.爬虫.人工智能等,但是这么多就业方向,一时难选,不知道入坑Pyth ...
最新文章
- SqlServer 中Binary类型的数据如何转化为字符串
- Android Resources
- 04-String——课后作业1:字串加密
- xml.query() 实例演示
- 内六角尺寸规格_常见螺丝和规格
- SAP License:SAP中的容差
- 给开源项目贡献代码的经历
- springBoot+JSP搭建项目
- java pdf文件如何转换tiff文件_C#实现TIF图像转PDF文件的方法
- KEIL5 C51软件安装详细图文教程
- shell脚本中 EOF的意思
- 来看看一位阿里P9的年薪和资产
- 关于连接池、JDBC、DBUtils的一些知识
- 2015年热门的国产开源软件TOP 50
- Linux小知识:查看当前最耗费CPU的线程(Arthas工具)
- Ubuntu下mentohust的配置
- android bitmap nv21,Android开发之虹软人脸识别活体检测SDK包Bitmap转NV21方法
- 传苹果或推出安卓版iTunes音乐商店
- 华硕计算机用户名默认,华硕路由器设置方法_华硕(ASUS)路由器怎么设置?-192路由网...
- 计算机视觉 ----全面介绍
热门文章
- 江苏大学考研计算机专业目录,江苏大学考研专业目录
- 6.6.6 低保救助记录
- 《暗黑王座》10日双平台公测 三年夜女神代言(视频)
- Laravel 对中大型项目的架构设计
- 解决win7下玩starcraft花屏问题(转自http://zhuyilun8.wordpress.com/2009/11/30/%E8%A7%A3%E5%86%B3win7%E4%B8%8B%E)
- 博士3年前被判定学术不端、失去工作,如今发Nature子刊证明自己是对的
- 基于微信小程序的二手车交易管理系统设计与实现
- linux下h.264码流实时rtp打包与发送,Linux下H.264码流实时RTP打包与发送
- BS 软件 研发流程到上线流程
- 纪客老白【每日答疑】和白老师说下我目前的情况,自己的不足和我想解决的问题!