如何用Cartopy的NearsidePerspective投影拟合Matplotlib的stock_img()

时间:2019-03-28 10:20:59

标签: python matplotlib map-projections cartopy

我正在尝试使用Cartopy的投影NearsidePerspective,但与Matplotlib提供的真实地球图像重叠,并通过降低satellite_height参数来进行放大。对于这种特定类型的设置,Cartopy似乎无法正确修剪图像。图像仍显示出原本应该是地图边界的位置。

import cartopy.crs as ccrs
import matplotlib.pyplot as plt

fig=plt.figure(figsize=(10,10))

# Set Projection
height=3000000 
#height=35785831 # this is the default height
projection=ccrs.NearsidePerspective(central_longitude=120,
                                    central_latitude=78,
                                    satellite_height=height)
# Draw 
ax = plt.axes(projection=projection)
ax.stock_img()
ax.coastlines(resolution='50m')
plt.show()

enter image description here

如何结合Matplotlib的stock_img()和NearsidePerspective的此配置才能正常工作?还是获得期望结果的替代方法是什么?

我正在Jupyter Notebook,Matplotlib 3.0.2和Cartopy 0.16.0上使用Python 3.6。

1 个答案:

答案 0 :(得分:2)

在具有Python 3.7,Matplotlib 3.0.3和Cartopy 0.17.0的Mac上使用相同的代码,可以正确裁剪图像:

result of the OP's code

这可能是版本问题或Jupyter Notebook的问题。