我在使用Cartopy重新投影图像时出现问题。
我有以下代码(从找到here的示例中修改):
import os
import matplotlib.pyplot as plt
from cartopy import config
import cartopy.crs as ccrs
import cartopy.feature as cfeature
fig = plt.figure(figsize=(8, 10))
img_extent = (-120.67660000000001, -106.32104523100001, 13.2301484511245, 30.766899999999502)
img = plt.imread('/tmp/Miriam.A2012270.2050.2km.jpg')
ax = plt.axes(projection=ccrs.PlateCarree())
plt.title('Hurricane Miriam from the Aqua/MODIS satellite\n'
'2012 09/26/2012 20:50 UTC')
ax.set_extent([-125, -105, 10, 35], ccrs.Geodetic())
ax.imshow(img, origin='upper', extent=img_extent, transform=ccrs.PlateCarree())
ax.coastlines(resolution='50m', color='black', linewidth=1)
ax.gridlines()
plt.show()
生成以下图像
然而,当我尝试选择不同的投影时,比如Lambert Conformal,通过替换
ax = plt.axes(projection=ccrs.PlateCarree())
与
ax = plt.axes(projection=ccrs.LambertConformal())
我得到以下图片:
如您所见,此图片存在问题。我究竟做错了什么?是否可以在不同的投影中显示此图像?
答案 0 :(得分:8)
为了将来参考,此问题是由于纸箱中的错误现已在主分支上修复。该修复程序将包含在0.10.0版本中。使用固定代码运行的Julien脚本的输出如下所示:
答案 1 :(得分:1)
这绝对是一个错误,所以我鼓励你打开一个github问题(https://github.com/SciTools/cartopy/issues/new)。
我最初认为它可能是LambertConformal投影,但同样的问题也出现在其他投影中(例如Robinson),这表明我对图像范围的定义存在问题。
不幸的是,我目前没有解决方法。
HTH