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),解压后在终端安装。
具体过程:

  1. 解压后文件夹里会有setup.py的文件;

  2. 打开终端,输入cd ./desktop/..(Change Directory到setup.py的位置);

  3. 输入python setup.py install

  4. 在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入坑手册相关推荐

  1. [Python] Basemap入坑手册 - 地图投影示例

    Basemap入坑手册 - 地图投影示例 文章目录 Basemap入坑手册 - 地图投影示例 cyl - Cylindrical Equidistant merc - Mercator tmerc - ...

  2. Python 小入坑

    python入坑 学习的是python3 一些信息 官网 https://www.python.org/ 官方文档 https://docs.python.org/3/ github https:// ...

  3. 体脂秤Flash MCU:HT45F75 入坑手册

    一.认识HT45F75 一句话简介 HT45F75是Holtek专为人体脂肪秤应用而设计的. 详细描述 该单片机集成了体脂秤电路,是一款A/D 型具有8 位高性能精简指令集的Flash 单片机,内置的 ...

  4. python小白用哪个版本好_完全小白Python极速入坑指南

    现在很多非IT行业的朋友都知道python,看到铺天盖地的广告,想学又不知如何入坑,也犹豫是否值得学习.一直以来我都觉得编程是有门槛的,并非所有人都适合.很多血淋淋的现实,比如很多小白就倒在配置环境上 ...

  5. 时间序列经济python_(13)Python初入坑之时间序列基础内容

    本节介绍python的关于时间序列的基础内容. 一.时间序列的基础内容 在金融和经济学领域python已经承担起了很多任务,这得益于pandas对于时间序列的良好支持.现在在金融和数据分析的重要性正在 ...

  6. 《毕业论文新手入坑手册》分享

    由于微信公众号外部链接的限制,文中的部分链接可能无法正确打开.如有需要,请点击文末的"阅读原文"按钮,访问可以正常显示外链的版本. 链接 咱们开门见山. 我把之前公众号和专栏发布的 ...

  7. python web-python web入坑指南

    原标题:python web入坑指南 Invest regularly in your knowledge portfolio. Make learning a habit. 自学python web ...

  8. python这个软件学会能做什么工作-学会Python真的有高收入?盯,请查收这份入坑指南...

    学会Python真的有高收入?盯,请查收这份入坑指南 2018-10-10 20:51:00 567点赞 6312收藏 186评论 小编注:想获得更多专属福利吗?金币加成.尊享众测.专属勋章.达人福利 ...

  9. python工程师薪资坑吗-入坑Python爬虫值不值?

    点击蓝字"python教程"关注我们哟! 有很多小伙伴,学习了Python的很多知识,比如基础语法.函数,web.爬虫.人工智能等,但是这么多就业方向,一时难选,不知道入坑Pyth ...

最新文章

  1. SqlServer 中Binary类型的数据如何转化为字符串
  2. Android Resources
  3. 04-String——课后作业1:字串加密
  4. xml.query() 实例演示
  5. 内六角尺寸规格_常见螺丝和规格
  6. SAP License:SAP中的容差
  7. 给开源项目贡献代码的经历
  8. springBoot+JSP搭建项目
  9. java pdf文件如何转换tiff文件_C#实现TIF图像转PDF文件的方法
  10. KEIL5 C51软件安装详细图文教程
  11. shell脚本中 EOF的意思
  12. 来看看一位阿里P9的年薪和资产
  13. 关于连接池、JDBC、DBUtils的一些知识
  14. 2015年热门的国产开源软件TOP 50
  15. Linux小知识:查看当前最耗费CPU的线程(Arthas工具)
  16. Ubuntu下mentohust的配置
  17. android bitmap nv21,Android开发之虹软人脸识别活体检测SDK包Bitmap转NV21方法
  18. 传苹果或推出安卓版iTunes音乐商店
  19. 华硕计算机用户名默认,华硕路由器设置方法_华硕(ASUS)路由器怎么设置?-192路由网...
  20. 计算机视觉 ----全面介绍

热门文章

  1. 江苏大学考研计算机专业目录,江苏大学考研专业目录
  2. 6.6.6 低保救助记录
  3. 《暗黑王座》10日双平台公测 三年夜女神代言(视频)
  4. Laravel 对中大型项目的架构设计
  5. 解决win7下玩starcraft花屏问题(转自http://zhuyilun8.wordpress.com/2009/11/30/%E8%A7%A3%E5%86%B3win7%E4%B8%8B%E)
  6. 博士3年前被判定学术不端、失去工作,如今发Nature子刊证明自己是对的
  7. 基于微信小程序的二手车交易管理系统设计与实现
  8. linux下h.264码流实时rtp打包与发送,Linux下H.264码流实时RTP打包与发送
  9. BS 软件 研发流程到上线流程
  10. 纪客老白【每日答疑】和白老师说下我目前的情况,自己的不足和我想解决的问题!