2

我已经使用 miniconda2 安装了 cartopy。当运行一个小样本时,代码永远不会通过 plt.imshow 行上的图像转换,它只是使用 100% CPU 挂在那里。这是代码:

#!~/miniconda2/bin/python
import cartopy.crs as ccrs
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import numpy as np
import datetime
import time
import sys

print datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')

fname = '2016_2_24_1200_MTSAT3_10_S1_grid.jpeg'

img = plt.imread(fname)

print datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')

img_proj = ccrs.Geostationary(satellite_height=35786000)
img_extent = (-5500000, 5500000, -5500000, 5500000)

ax = plt.axes(projection=ccrs.Miller())
ax.coastlines()
ax.set_global()
origin = 'upper'

print datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')

plt.imshow(img, transform=img_proj, extent=img_extent, origin=origin, cmap='gray')
fig.savefig('html/test.jpg')

任何线索任何人?

4

1 回答 1

1

所以我在 Cartopy 中的图像转换遇到了类似的问题,我通过在 Cartopy 脚本中添加关键字来解决这个问题。在您的 Python 安装目录中转到Lib\site-packages\cartopy. 您需要编辑的文件是img_transform.py并且您还需要删除img_transform.pyc以使其与您所做的更改一起重新编译。

img_transform.pyc您需要编辑的行内是:

kdtree = scipy.spatial.cKDTree(xyz)

这是 Cartopy v0.14.2 中的第 288 行(撰写本文时最新)。

将此行更改为:

kdtree = scipy.spatial.cKDTree(xyz, balanced_tree=False)

这会关闭 SciPy v0.16 中引入的新默认值(请参阅scipy.spatial.ckdtree running slow)。

对我来说,这让花费了 24 小时以上的东西恢复到了大约 3 分钟——希望它对你有用!

于 2016-05-30T19:34:22.910 回答