博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用BaseMap绘制地图它不香么
阅读量:3959 次
发布时间:2019-05-24

本文共 4047 字,大约阅读时间需要 13 分钟。

一 前言

使用baseMap绘制地图简单方便,使用BaseMap需要搭配其它库进行使用常见的就是matplotlib; 读完本篇,读者将学会简单的使用baseMap或世界地图,国家地图,省份甚至特定地区等等;如果作者文章不错,随手点赞关注谢谢,不要耍白嫖哟;

二 BaseMap绘图

地图背景说明

  1. drawcoastlines():绘制海岸线。
  2. fillcontinents():为大陆内部着色(通过填充海岸线多边形)
  3. drawcountries():绘制国家边界。
  4. drawstates():绘制北美的州界。
  5. drawrivers():绘制河流。
  6. drawlsmask():绘制高分辨率海陆掩码作为图像,指定土地和海洋颜色。
  7. bluemarble():绘制一张NASA蓝色大理石图像作为地图背景。
  8. shadedrelief():绘制一个阴影浮雕图像作为地图背景。
  9. etopo():绘制etopo浮雕图像作为地图背景。
  10. warpimage():使用abitrary图像作为地图背景。图像必须是全球的,从国际数据线向东,南极向北,以纬度/经度坐标覆盖世界。

2.1 arcgis REST API服务绘制图像

Basemap 参数说明

  • llcrnrlon 经度下界
  • llcrnrlat 纬度下界
  • urcrnrlon 经度上界
  • urcrnrlat 纬度上界

arcgisimage 参数说明

  • server 远程服务器地址
  • service 底图类型
  • xpixels 缩放比例
  • dpi 分辨率
  • verbose 打印用于获取远程图像的URL

service参数列表

# -*- coding: utf-8 -*-import warningswarnings.filterwarnings('ignore')from mpl_toolkits.basemap import Basemapimport matplotlib.pyplot as pltmap = Basemap(llcrnrlon=70,llcrnrlat=3,urcrnrlon=140,urcrnrlat=54)map.arcgisimage(service='NatGeo_World_Map', xpixels = 1500, ypixels=None,dpi=120, verbose= True)plt.show()

2.2 绘制海岸线

drawcoastlines 参数说明

  • linewidth : 线宽度
  • linestyle : 设置线风格,参照matplotlib
  • color :颜色,参照matplotlib
  • antialiasing:抗锯齿
  • axes 轴实例
  • zorder: 海岸线图层位置
# -*- coding: utf-8 -*-import warningswarnings.filterwarnings('ignore')from mpl_toolkits.basemap import Basemapimport matplotlib.pyplot as pltmap = Basemap()# 国家陆地填充颜色,湖泊填充颜色map.fillcontinents(color='coral',lake_color='aqua')# 绘制海岸线map.drawcoastlines(linewidth=0.5, linestyle='solid', color='k', antialiased=1, ax=None, zorder=None)plt.show()

结果

在这里插入图片描述

2.3 绘制国家地图

drawcountries 参数与海岸线类似,不赘述

drawcountries(linewidth=0.5,linestyle=‘solid’,color=‘k’,antialiased=1,ax=None,zorder=None)

# -*- coding: utf-8 -*-import warningswarnings.filterwarnings('ignore')from mpl_toolkits.basemap import Basemapimport matplotlib.pyplot as plt# 规定投影方法;设置中国地图中部经纬度map = Basemap(projection='ortho',              lat_0=25, lon_0=105)# 绘制地图边界,填充颜色 蓝色; 设置线宽度map.drawmapboundary(fill_color='aqua',linewidth=1.0)# 陆地填充颜色,湖泊填充颜色map.fillcontinents(color='coral',lake_color='aqua')# 绘制国家map.drawcountries()plt.show()

结果

在这里插入图片描述

2.4绘制浮雕地图

# -*- coding: utf-8 -*-import warningswarnings.filterwarnings('ignore')from mpl_toolkits.basemap import Basemapimport matplotlib.pyplot as pltmap = Basemap(llcrnrlon=70,llcrnrlat=3,urcrnrlon=140,urcrnrlat=54,             resolution='i', projection='cass', lat_0 = 25, lon_0 = 105)# 浮雕图像map.etopo()# 海岸线map.drawcoastlines()# 显示plt.show()

结果

在这里插入图片描述

2.5 绘制地图带有经纬度

# -*- coding: utf-8 -*-import warningswarnings.filterwarnings('ignore')from mpl_toolkits.basemap import Basemapimport matplotlib.pyplot as plt# 规定投影方法;设置中国地图中部经纬度map = Basemap(projection='ortho',              lat_0=25, lon_0=105,              width=25000000, height=25000000)# 绘制地图边界,填充颜色 蓝色; 设置线宽度map.drawmapboundary(fill_color='aqua',linewidth=1.0)# 陆地填充颜色,湖泊填充颜色map.fillcontinents(color='coral',lake_color='aqua')# 绘制国家map.drawcountries()# 设置经度map.drawmeridians(range(0, 360, 20))# 设置纬度map.drawparallels(range(-90, 100, 10), dashes=[4, 2], color='r', zorder=0 )plt.show()

结果

在这里插入图片描述

2.6 绘制美洲地图

# -*- coding: utf-8 -*-import warningswarnings.filterwarnings('ignore')from mpl_toolkits.basemap import Basemapimport matplotlib.pyplot as pltmap = Basemap(width=12000000,height=9000000,            rsphere=(6378137.00,6356752.3142),            resolution='l',area_thresh=1000.,projection='lcc',            lat_1=45.,lat_2=55,lat_0=50,lon_0=-107.)# 地图边界map.drawmapboundary(fill_color='aqua')# 陆地海洋填充map.fillcontinents(color='#FF7F50', lake_color='#00BFFF')# 国家map.drawcountries()# 美洲地图map.drawstates(color='0.5')plt.show()

结果

在这里插入图片描述

2.7 绘制河流

# -*- coding: utf-8 -*-import warningswarnings.filterwarnings('ignore')from mpl_toolkits.basemap import Basemapimport matplotlib.pyplot as pltmap = Basemap(width=25000000, height=25000000,llcrnrlon=70,llcrnrlat=3,urcrnrlon=140,urcrnrlat=54,             resolution='i', projection='cass', lat_0 = 25, lon_0 = 105)# 地图边界map.drawmapboundary(fill_color='aqua')# 陆地填充map.fillcontinents(color='coral', lake_color='aqua')# 绘制国家map.drawcountries()# 绘制河流map.drawrivers(color='#0000ff')plt.show()

结果

在这里插入图片描述

三 参考连接

RGB 颜色对照

basemap教程:

matplotlib basemap教程

分类:

转载地址:http://qymzi.baihongyu.com/

你可能感兴趣的文章
安装zabbix 3.4版本编译报错configure: error: Unable to use libevent (libevent check failed) 解决办法
查看>>
一行代码更改密码
查看>>
非插件实现cookie版Typecho文章阅读次数统计功能
查看>>
非插件实现Typecho语法高亮
查看>>
windows 下 netsh 实现 端口映射(端口转发)
查看>>
两个好用的命令行工具 watch 和 rsync
查看>>
信安入门神级书单
查看>>
【IPFS指南】IPFS的竞争对手们(一)
查看>>
docker更换国内镜像
查看>>
CentOS 下 tree命令用法详解
查看>>
docker上传镜像至Registry时https报错解决方法
查看>>
安装 docker-compose (实测可用,妈妈再也不用担心被墙了)
查看>>
docker下删除none的images
查看>>
Linux提权获取敏感信息方法
查看>>
Ubuntu 16.04开机A start job is running for Raise network interface(5min 4s)解决方法
查看>>
Ubuntu 16.04开机隐藏菜单缩短时间
查看>>
Ubuntu 更换国内源
查看>>
Ubuntu16.04下Docker pull connection refused 解决办法
查看>>
通过 三大机制 揭秘 IPFS 工作原理
查看>>
Ubuntu 16.04卸载PostgresQL
查看>>