书接上文:
程序员如何庆祝十一:用Python绘制红色的中国地图
基本投影
basemap提供了25种投影,bm.supported_projections中给出了这34种投影的代码。下表中,NP指代North-Polar,SP指代South-Polar。
| code | 含义 |
|---|---|
| cyl | 等距圆柱投影(cylindrical Equidistant) |
| merc | 墨卡托投影(Mercator) |
| tmerc/omerc | 横轴/斜轴墨卡托(Transverse/Oblique merc) |
| mill | 米勒圆柱(Miller Cylindrical) |
| gall | 高尔立体圆柱(Gall Stereographic Cylindrical) |
| ceea | 圆柱等积投影(Cylindrical Equal Area) |
| lambert | 兰勃特共形映射(Lambert Conformal) |
| laea | 兰勃特等角圆锥投影(L Azimuthal Equal Area) |
| nplaea/splaea | 北极/南极兰伯特等方位角投影 ( NP/SP Lmbert Equal Azimuthal) |
| eqdc | 等距圆锥投影(Equi distant Conic) |
| aeqd | 等距方位投影(Azimuthal Equi distant) |
| npaeqd/spaeqd | 北极/南极等方位角投影(NP/SP aeqd) |
| aea | Albers投影(Albers Equal Area) |
| stere | 立体投影(Stereographic) |
| npstere/spstere | 北极/南极立体投影(NP/SP stere) |
| 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 Grinten) |
| mbtfpq | 麦克布赖德-托马斯平极四次投影 ( Mc Bryde-Thomas Flat-Polar Quartic) |
| gnom | 球心投影(Gnomonic) |
| rotpole | 极地旋转(Rotated Pole) |
通过 bm.projection_params可查看其参数,找出几个只需要 lon_0,lat_0的投影然后画一下
import mpl_toolkits.basemap as bm
maps = list(bm.projection_params.keys())
fig, axes = plt.subplots(2,3)
for i in range(6):
ax = axes[divmod(i,3)]
ax.set_title(maps[i])
ax.axis('off')
m = bm.Basemap(projection=maps[i], lon_0=100, lat_0=50, ax=ax)
m.drawcoastlines()
plt.show()
如果不喜欢极致线条,也可以采用极致色彩
地图样式
通过 drawcoastlines和 bluemarble得到的地图完全是两个风格,当然耗时也完全不一样。在basemap中,封装了多种绘制方案。
bluemarble画的是Nasa的照片,拥有极致色彩,主要参数为 scale可进行放缩。
下面五种地图均以画线为主,其参数包括 (linewidth=1.0, linestyle=’solid’, color=’k’, antialiased=1, ax=None, zorder=None),其中 antialiased为抗锯齿开关,ax为绘制图像的坐标轴,zorder为图层位置。
drawcoastlines:用于绘制海岸线。drawcountries:绘制国家/地区边界drawrivers:绘制河流drawstates:绘制北美或澳大利亚的州界drawcounties:绘制国家
此外,drawcounties还有额外的两个参数:facecolor为县的颜色,drawbounds为绘制边界线的开关。
drawmeridians,drawparallels用来绘制经、纬线,除了经线对应 meridians,纬线对应 circles,二者的其他参数包括 (color=’k’, linewidth=1.0, zorder=None, dashes=[1, 1], labels=[0, 0, 0, 0], labelstyle=None, fmt=’%g’, xoffset=None, yoffset=None, ax=None, latmax=None, **kwargs)
此外,还有以下绘图函数:
drawlsmask(land_color=‘0.8’, ocean_color=’w’, lsmask=None, lsmask_lons=None, lsmask_lats=None, lakes=True, resolution=’l’, grid=5, **kwargs):绘制湖泊、陆地以及海洋。drawmapboundary(, fill_color=None):绘制地球边界,fill_color填充球体颜色etopo(ax=None, scale=None, **kwargs):绘制浮雕图像fillcontinents(color=‘0.8’, lake_color=None, ax=None, zorder=None, alpha=None):填充大陆
今天的文章地图投影基本类型_投影的基本知识「建议收藏」分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/68373.html

