坐标系转换

问题描述

我在Matlab用Putpole和Rotatem制作的网格上有数据。 我无权访问原始数据,但想在其上使用Python。 网格的原点是78度和11度(星形标记),但用方格图进行绘制始终会将北极放在中间,所以我的数据有些偏离。

有人知道如何解决吗? 我尝试了false_northing,但没有做任何事情。请忽略我正在尝试解决地图问题的可怕的颜色条。

    fig=plt.figure(figsize=(8,8))
    ax = fig.add_subplot(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()

绘制当前的样子:

img1

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

img2

解决方法

如果您将NorthPolarStereo用作投影,则可以指定中心纬度和经度而不是Stereographic。您可能还需要查看RotatedPole投影。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...