我希望在代表某个区域的图表上叠加一些海岸线。该区域由框定义:
使用坐标系WGS_1984_UTM_Zone_36N。
我已尝试使用mpl_toolkits.basemap但是我无法确定如何指定该区域,因为底图不接受ESPG代码(32636),并且当我尝试手动插入投影参数时(m = Basemap(projection='tmerc', k_0=0.9996, lat_0=0, lon_0=33, llcrnrx=300000, llcrnry=3450000, urcrnrx=800000, urcrnry=3900000
)它仍然需要一个lat长边框。
还有另一种在Basemap中定义该区域的方法吗?
谢谢!
编辑:我试图返回由utm系统中的框定义的海岸线区域,使用框的末端的纬度/经度值将导致所覆盖区域的过度/不足转换回utm系统时的海岸线(我想,如果我错了,请纠正我。)
答案 0 :(得分:4)
尝试使用cartopy及其新的epsg功能:
projection = ccrs.epsg(32636)
fig, ax = plt.subplots(figsize=(5, 5),
subplot_kw=dict(projection=projection))
ax.coastlines(resolution='10m')
这是一个带有示例的笔记本: http://nbviewer.ipython.org/gist/ocefpaf/832cf7917c21da229564
答案 1 :(得分:0)
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
# make sure the value of resolution is a lowercase L,
# for 'low', not a numeral 1
map = Basemap(projection='merc', lat_0=57, lon_0=-135,
resolution = 'h', area_thresh = 0.1,
llcrnrlon=-136.25, llcrnrlat=56,
urcrnrlon=-134.25, urcrnrlat=57.75)
map.drawcoastlines()
map.drawcountries()
map.fillcontinents(color='coral')
map.drawmapboundary()
map.drawmeridians(np.arange(0, 360, 30))
map.drawparallels(np.arange(-90, 90, 30))
plt.show()
所有链接https://peak5390.wordpress.com/2012/12/08/matplotlib-basemap-tutorial-making-a-simple-map/