在 matplotlib 地块上叠加海岸线

Overlay coastlines on a matplotlib plot

我想在表示区域的图表上叠加一些海岸线。区域由方框定义:

坐标系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)它仍然需要一个经纬度边界框。

是否有另一种方法可以在底图中定义该区域?

谢谢!

编辑:我正在尝试 return 由 utm 系统中的盒子定义的海岸线区域,使用盒子末端的 lat/long 值将导致 over/underlap转换回utm系统时海岸线覆盖的面积(我想,如果我错了请纠正我)。

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

都在这linkhttps://peak5390.wordpress.com/2012/12/08/matplotlib-basemap-tutorial-making-a-simple-map/

试用 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