作为一个测绘GIS专业的学生,会有很多绘制地图的需求,一般情况使用ArcGIS、QGIS就可以解决,但是在绘制如论文插图时需要使用更加专业可定制化程度更高的工具,专业传统一般使用GMT,几经比较,最终选择学习basemap,所以有了一下这篇博文。

basemap与其他工具比较

工具简介

  1. Basemap: Basemap是 Python 可视化库 Matplotlib 下的一个工具包,主要功能是绘制二维地图,是Python空间数据可视化的重要手段。
  2. GMT:即Generic Mapping Tools,是地球科学最广泛使用的制图软件之一。目前GMT主要有三大版本:GMT4、GMT5和GMT6,GMT4已不再更新维护;GMT5已进入维护期,不再增加新功能,仅修复已知BUG;GMT6是GMT目前的最新版本,也是开发者在着重维护和更新的版本。GMT6几乎完全兼容GMT5的语法,且提供了一种更为简洁易用的新写法。除此之外,GMT 还为其他常用的编程语言提供了方便的接口,如gmtmex(matlab 接口)、GMT.jl(Julia接口)、pygmt(Python接口)。
  3. Matlab:Matlab是一个强大的数学软件,可以用于数据分析、图像处理、模拟仿真等各种领域,是工科非常常用的软件。
  4. 其他:如Grads、NCL(NCAR Command Language)等,更多用于气象界,没研究不了解。

basemap与其他软件比较

优势

  1. Python语法更加简介易懂,容易上手。比较起来,GMT语法跟鬼一样……
  2. 安装简单,占用空间小,启动迅速。Matlab我电脑没两分钟启动不起来……
  3. 可以和Python的各种库,如matplotlib、geopandas、shapely、arcpy等协同使用,一站式解决数据处理、绘图等问题
  4. Python使用人数多,社区活跃,遇到问题更好解决

劣势

  1. Matlab是工科编程最常使用的工具,大量的算法都能直接找到Matlab源代码,与此相比,Python还需更多积累
  2. GMT是地球科学最常使用的绘图软件,绘制出的图形能比较容易满足期刊的要求。

basemap安装

由于basemap既不在conda中,也无法使用pip直接安装,所以安装较为复杂。我的环境是Windows7+Python3.8.3+Anaconda3_4.8.3,以下安装仅适用于我的环境。此外,因为我的电脑上同时装有Python2与Python3,因此,pip命令使用pip3,以防止混淆。

  1. 安装geos模块,直接使用pip安装即可

    pip3 install geos
  2. 安装pyproj模块,直接使用pip安装即可

    pip3 install pyproj
  3. 官网中下载对应版本的basemap .whl安装文件,我下载的版本为"basemap‑1.2.2‑cp38‑cp38‑win_amd64.whl",如下图

  4. 使用下载好的whl文件安装basemap。在命令行中cd至安装文件所在目录安装即可。

    pip3 install basemap‑1.2.2‑cp38‑cp38‑win_amd64.whl

至此,basemap则安装完成,测试一下是否正确安装

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
m = Basemap(projection='mill')
m.drawcoastlines()
plt.show()

显示如下图则表明basemap已正确安装,可以开始使用了。


本文参考博客 https://www.cnblogs.com/thisyan/p/9680095.htmlhttps://www.xuebuyuan.com/1597247.html

地图绘制之basemap第一弹 basemap选择与安装的更多相关文章

  1. Java基础-程序流程控制第一弹(分支结构/选择结构)

    Java基础-程序流程控制第一弹(分支结构/选择结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.if语句 1>.if语句的第一种格式 if(条件表达式){ 语句体: ...

  2. 利用Arcgis for javascript API绘制GeoJSON并同时弹出多个Popup

    1.引言 由于Arcgis for javascript API不可以绘制Geojson,并且提供的Popup一般只可以弹出一个,在很多专题图制作中,会遇到不少的麻烦.因此本文结合了两个现有的Arcg ...

  3. Matplotlib Toolkits:地图绘制工具

    Matplotlib Toolkits:地图绘制工具 有没有一种可以直接在详细地图(如谷歌地图)上绘制上百万坐标点的工具???谷歌地图坐标点多了也不能绘制了. Basemap (Not distrib ...

  4. arcgis api for javascript 学习(五) 实现地图绘制工具

    1.本文实现的功能为鼠标与地图之间的交互,能够在地图上绘制不同形状的图形 2.代码部分主要讲到的为Graphic函数的相关功能 <!DOCTYPE html> <html> & ...

  5. [deviceone开发]-底部弹出选择

    一.简介 个人上传的第一个示例源码,两天空闲时间写的,一点简单组件,写的挺乱还没啥注释,仅供新手学习. 底部弹出选择,可滑动选择选项,如果停留在选项中间,可自动校正位置,加了一点简单的动画效果,需要的 ...

  6. C#小程序飞行棋地图绘制

    1. 初始化地图,在绘制时可先将地图进行初始化,用数组来存储关卡的位置,然后利用循环给地图中 关卡所在处赋予代表关卡的值. 关键代码如下 /// <summary> /// 初始化游戏地图 ...

  7. iOS-Andriod百度地图仿百度外卖-饿了么-选择我的地址-POI检索/

    http://zanderzhang.gitcafe.io/2015/09/19/iOS-Andriod百度地图仿百度外卖-饿了么-选择我的地址-POI检索/ 百度外卖选择送货地址: 饿了么选择送货地 ...

  8. Hadoop基础-MapReduce的工作原理第一弹

    Hadoop基础-MapReduce的工作原理第一弹 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在本篇博客中,我们将深入学习Hadoop中的MapReduce工作机制,这些知识 ...

  9. codechef 营养题 第一弹

    第一弾が始まる! 定期更新しない! 来源:http://wenku.baidu.com/link?url=XOJLwfgMsZp_9nhAK15591XFRgZl7f7_x7wtZ5_3T2peHh5 ...

随机推荐

  1. hdu6755 Mow

    半平面交+数组模拟双端队列 人生第一次代码过两百行啊...加油加油 #include<iostream> #include<algorithm> #include<cma ...

  2. 在java中进行日期时间比较的4种方法

    1. Date.compareTo() java.util.Date提供了在Java中比较两个日期的经典方法compareTo(). 如果两个日期相等,则返回值为0. 如果Date在date参数之后, ...

  3. 跟老刘学运维day03~新手必须掌握的Linux命令(3)

    第2章 Linux命令 今天已经跟老刘学习运维第三天了,前两天对虚拟机和Linux系统的安装进行了深入的学习,今天开始命令的学习 系统状态检测命令 1.ifconfig   2.uname:查看系统内 ...

  4. Spring Boot+Socket实现与html页面的长连接,客户端给服务器端发消息,服务器给客户端轮询发送消息,附案例源码

    功能介绍 客户端给所有在线用户发送消息 客户端给指定在线用户发送消息 服务器给客户端发送消息(轮询方式) 项目搭建 项目结构图 pom.xml <?xml version="1.0&q ...

  5. ubuntu18.04安装opencv+CUDA10.2+cuDNN+YOLOv3

    安装顺序: Opencv 显卡驱动 CUDA10.2 cuDnn YOLOv3 1.Opencv3.2.0安装 搭建依赖环境 sudo apt-get install build-essential ...

  6. break statement not within loop or switch报错

    break statement not within loop or switch. 注意你的循环,可能多加了个分号.for语句后面?

  7. Spring学习之Spring与Mybatis的两种整合方式

    本机使用IDEA 2020.1.MySql 8.0.19,通过Maven进行构建 环境准备 导入maven依赖包 <dependencies> <dependency> < ...

  8. PHP is_array() 函数

    is_array() 函数用于检测变量是否是一个数组.高佣联盟 www.cgewang.com PHP 版本要求:PHP 4, PHP 5, PHP 7 语法 bool is_array ( mixe ...

  9. PHP setlocale() 函数

    实例 设置地区为 US English,然后再设置回系统默认: <?php高佣联盟 www.cgewang.comecho setlocale(LC_ALL,"US");ec ...

  10. luogu P4166 [SCOI2007]最大土地面积 凸包 旋转卡壳

    LINK:最大土地面积 容易想到四边形的边在凸包上面 考虑暴力枚举凸包上的四个点计算面积. 不过可以想到可以直接枚举对角线的两个点找到再在两边各找一个点 这样复杂度为\(n^3\) 可以得到50分. ...