刚刚开始使用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纬度。图像向上拉伸到正确的北纬,因此纬度比例也不是线性的(否则,根据范围,所有数据都将出现在南半球)。
使用墨卡托的结果: