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')


当map对象调用bluemarble()函数时,生成的是蓝底图,如上图所示的风格。
当map对象调用etopo()函数时,生成的是浮雕图,风格如下图所示:

浮雕风格下可以看到大陆的明显地貌,各种地形都很清晰。

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

参数为ortho时,

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

轮廓突出图
Python+matplotlib绘制地图_第1张图片
仿真图

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

参数为robin时,指定经度线

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

Python+matplotlib绘制地图_第2张图片

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

你可能感兴趣的:(#,玩过的python模块,matplotlib,python)