png文件在非PlateCarree投影的地图上无法正确显示

时间:2019-08-11 10:01:11

标签: python cartopy

刚刚开始使用cartopy for Python,这是我关于堆栈溢出的第一篇文章。投影到PlateCarree投影上的png文件的显示图像效果很好,但是当我尝试任何其他投影时,数据会偏斜并向下推。由于lon / lats在png图像中有规律地间隔,因此在imshow中将Transform设置为PlateCarree,因此我只更改了plt.axes投影参数。

我查看了有关stackoverflow的各种报告以及cartopy网页上的示例和教程。我以为我了解了plt.axes中的投影与imshow中的transform之间的区别,但是我必须缺少一些东西。

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

proj=ccrs.Mercator()

img = plt.imread('plot1.png')
img_extent = [-120.0, 70.0, 0.0, 90.0]

ax = plt.axes(projection=proj)

ax.coastlines(resolution='50m', color='black', linewidth=1)

ax.imshow(img, origin='upper',extent=img_extent, transform=ccrs.PlateCarree())

plt.show()

png代表北大西洋的热带风暴频率。 PlateCarree符合预期的项目。例如,使用墨卡托(Mercator),数据将从南极开始向下推向南。看起来经度可以正确读取,但纬度却不能正确读取,因为看起来南极正被用作基准0纬度。图像向上拉伸到正确的北纬,因此纬度比例也不是线性的(否则,根据范围,所有数据都将出现在南半球)。

使用墨卡托的结果:

Result using Mercator

0 个答案:

没有答案