Python+matplotlib绘制地图

背景

地球是我们目前唯一的家园,虽然你我可能只生活在一个十几平的小屋子里,但是一想到,作为地球上的本土生物,连自己的居住环境都不了解,就有一种白白走一遭的感觉。所以我企图用Python来干一些探索性的事情,比如:通过绘制地图来了解一下我们赖以存活的星球。

  • 地球主要板块有7大洲:亚洲,欧洲,非洲,大洋洲,北美洲,南美洲,南极洲,都是陆地
  • 5大洋:太平洋,大西洋,北冰洋,南冰洋,印度洋

模块介绍

matplotlib模块+Basemap()函数
目前了解到的绘图方式是通过Python中的matplotlib拓展库中的Basemap函数完成的。

  • 这里简单介绍几个Basemap()的参数:
    projection->投影方式,当我们观测地球这个球体是,以不同的视角(即投影)会观测到不同的球面。因此这个参数的指定决定了最终展示的二维平面图。
    resolution->精度,主要有这几个级别的精度: c (crude), l (low), i (intermediate), h (high), f (full) or None

绘图

引入模块

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

Basemap的主要投影方式

  • mill – Miller Cylindrical 米勒图柱投影
    米勒投影是一种圆柱投影。经线是等间距的直线。纬线和两个极点均为直线,垂直于经线,且与赤道的长度相同。距离赤道越远,纬线的间距越大,但是增长幅度小于墨卡托投影上的增长幅度。经纬网沿赤道和中央经线对称。整个地图的高宽比为 0.73。越靠近极点,畸变越严重。

参数为mill时,

map = Basemap(projection='mill')

参数为mill的bluemarble()渲染图
当map对象调用bluemarble()函数时,生成的是蓝底图,如上图所示的风格。
当map对象调用etopo()函数时,生成的是浮雕图,风格如下图所示:
调用etopo()函数生成的浮雕图风格
浮雕风格下可以看到大陆的明显地貌,各种地形都很清晰。

  • ortho-- OrthoGraphic 正射投影
    正射投影是一种方位透视投影,可将地球表面从无限距离投影到平面。它可以提供三维地球的图像,因此通常用作插图或太空下地球的图像视图。此地图投影与局部投影相同,但支持球体。

参数为ortho时,

map = Basemap(projection='ortho',resolution='l',lat_0=23, lon_0=113)

轮廓突出图
参数为ortho的投影
仿真图
参数为ortho的bluemarble()函数投影

  • robin-- Robinson 罗宾森投影
    罗宾森投影可能是一种最常用于绘制世界地图的折衷伪圆柱地图投影。“国家地理”将罗宾森投影用于其世界地图约十年,直到 1998 年。

参数为robin时,指定经度线

map = Basemap(projection='robin',resolution='l',lon_0=-180)

参数为robin的投影

  • lcc- Lambert Conformal兰勃特正形投影
    参数为lcc时,指定宽和高,指定经纬度
map = Basemap(projection='lcc',width=8E6,height=8E6,resolution='l',lat_0=23, lon_0=113)

参数为lcc的投影

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunbcy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值