限制正交投影的范围(缩放)

时间:2016-03-18 13:39:09

标签: cartopy

我想制作南极洲的正交(极地)地块,这些地块已被缩放。关于默认设置。默认情况下我得到这个:

Antarctica polar

以下脚本产生了这个。

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

ax = plt.axes(projection=ccrs.Orthographic(central_longitude=0.0, central_latitude=-90.))
ax.stock_img()
plt.show()

我最好尝试告诉Cartopy将纬度限制在60S到90S'是:

ax.set_extent([-180,180,-60,-90], ccrs.PlateCarree())

遗憾的是,它没有给出desired result。有任何想法吗?提前致谢。

1 个答案:

答案 0 :(得分:1)

我不确定我是否完全明白你要做的事情。您的示例看起来像是已定义的边界框,但您是否喜欢它像您的第一个示例一样?

cartopy文档提供了此http://scitools.org.uk/cartopy/docs/latest/examples/always_circular_stereo.html的示例:

 import matplotlib.path as mpath
 import matplotlib.pyplot as plt
 import numpy as np

 import cartopy.crs as ccrs
 import cartopy.feature


 def main():
     fig = plt.figure(figsize=[10, 5])
     ax1 = plt.subplot(1, 2, 1, projection=ccrs.SouthPolarStereo())
     ax2 = plt.subplot(1, 2, 2, projection=ccrs.SouthPolarStereo(),
                       sharex=ax1, sharey=ax1)
     fig.subplots_adjust(bottom=0.05, top=0.95,
                         left=0.04, right=0.95, wspace=0.02)

     # Limit the map to -60 degrees latitude and below.
     ax1.set_extent([-180, 180, -90, -60], ccrs.PlateCarree())

     ax1.add_feature(cartopy.feature.LAND)
     ax1.add_feature(cartopy.feature.OCEAN)

     ax1.gridlines()
     ax2.gridlines()

     ax2.add_feature(cartopy.feature.LAND)
     ax2.add_feature(cartopy.feature.OCEAN)

     # Compute a circle in axes coordinates, which we can use as a boundary
     # for the map. We can pan/zoom as much as we like - the boundary will be
     # permanently circular.
     theta = np.linspace(0, 2*np.pi, 100)
     center, radius = [0.5, 0.5], 0.5
     verts = np.vstack([np.sin(theta), np.cos(theta)]).T
     circle = mpath.Path(verts * radius + center)

     ax2.set_boundary(circle, transform=ax2.transAxes)

     plt.show()

 if __name__ == '__main__':
     main()