首页 > 解决方案 > 坐标系变换

问题描述

我有 matlab 用 putpole 和 rotatem 制作的网格上的数据。我无权访问原始数据,但想使用 Python 处理它。网格的原点是 78 度和 11 度(星形标记),但是用 cartopy 绘制它总是把北极放在中间,所以我的数据有点偏离。

有人知道如何解决吗?我尝试使用 false_northing 但这没有任何作用。请忽略我正在尝试修复地图的可怕彩条。

    fig=plt.figure(figsize=(8,8))
    ax = fig.add_subplot(1,1,1,projection=ccrs.NorthPolarStereo())
    cmap = plt.get_cmap('jet')

    #plotting settings
    ax.set_extent([-180, 180, 40, 90], ccrs.PlateCarree())
    ax.gridlines(linewidth=2, color='k', alpha=0.7, linestyle='--')
    ax.coastlines(zorder=3)

    ZEP_coords=(78.9,11.8)
    ax.plot(ZEP_coords,'*',c='orangered', markersize=25, transform=ccrs.PlateCarree())

    data_mod, lon_mod = add_cyclic_point(a, coord=lon)
    plt.contourf(lon_mod,lat,data_mod,20,vmin=0,     vmax=0.05,cmap=cmap,transform=ccrs.PlateCarree())
    plt.colorbar()

绘制它现在的样子:

图像1

数据结构和我拥有的所有信息:

img2

标签: python-3.xmappingpython-xarraycartopymap-projections

解决方案


NorthPolarStereo如果您使用Stereographic投影代替,则可以同时指定中心纬度和经度。您可能还想查看RotatedPole投影。


推荐阅读