难以用熵重新投影图像

时间:2013-10-01 23:29:40

标签: python cartopy

我在使用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()

生成以下图像PlateCarree

然而,当我尝试选择不同的投影时,比如Lambert Conformal,通过替换

ax = plt.axes(projection=ccrs.PlateCarree())

ax = plt.axes(projection=ccrs.LambertConformal())

我得到以下图片:

LambertConformal

如您所见,此图片存在问题。我究竟做错了什么?是否可以在不同的投影中显示此图像?

2 个答案:

答案 0 :(得分:8)

为了将来参考,此问题是由于纸箱中的错误现已在主分支上修复。该修复程序将包含在0.10.0版本中。使用固定代码运行的Julien脚本的输出如下所示:

enter image description here

答案 1 :(得分:1)

这绝对是一个错误,所以我鼓励你打开一个github问题(https://github.com/SciTools/cartopy/issues/new)。

我最初认为它可能是LambertConformal投影,但同样的问题也出现在其他投影中(例如Robinson),这表明我对图像范围的定义存在问题。

不幸的是,我目前没有解决方法。

HTH