cartopy.vector_transform.vector_scalar_to_grid存在内存问题

时间:2014-07-18 11:16:28

标签: python out-of-memory cartopy

我在风速pcolormesh图上添加风箭。这些看起来很好,几乎就是我希望它们看起来的样子。不幸的是,当我循环多个级别,预测时间等时,内存使用量会累积到机器崩溃的程度。

当我不对风箭进行计算时,这不会发生。问题出现在以下代码中:

#!/usr/local/sci/bin/python

'''
Created on Jul 18, 2014

@author: freb
'''

import numpy as np

import cartopy
from cartopy.vector_transform import vector_scalar_to_grid

input_coord_system = cartopy.crs.PlateCarree()

this_plot_projection =  cartopy.crs.PlateCarree()

x_start = -180.0
x_end = 180.0
n_x = 500
d_x = (x_end - x_start) / n_x

y_start = -90.0
y_end = 90.0
n_y = 400
d_y = (y_end - y_start) / n_y



n_runs = 10

for i_run in range(n_runs):

    print 'vector_scalar_to_grid call number %s' % i_run
    random_u_data = np.random.randn(n_y, n_x)
    random_v_data = np.random.randn(n_y, n_x)
    random_spd_data = np.sqrt( random_u_data**2 + random_v_data**2)             

    source_lon = np.arange(x_start, x_end, d_x)
    source_lat = np.arange(y_start, y_end, d_y)

    regrid_shape = (60, 40)

    #import pdb #@@@
    #pdb.set_trace() #@@@
    #print 'stop here' #@@@

    (vt_lon, vt_lat, vt_u, vt_v, vt_spd) = vector_scalar_to_grid(input_coord_system,     \
                            this_plot_projection, \
                            regrid_shape, \
                            source_lon, source_lat, \
                            random_u_data, \
                            random_v_data, \
                            random_spd_data )

    print vt_lon.shape, vt_lat.shape, vt_u.shape, vt_v.shape, vt_spd.shape

我做错了吗?或者这是一个纸板虫?

谢谢,

马尔科姆

1 个答案:

答案 0 :(得分:0)

我无法在我的环境中重现内存问题。我'使用:

  • numpy v1.8.1
  • scipy v0.14.0
  • cython v0.20.1
  • cartopy(master)

变换代码使用scipy的griddata例程,我已经看到过去曾遭遇过内存泄漏的报告(例如Scipy griddata doesn't work inside a loop / memory leak)。我怀疑这是问题所在,但我不知道它是在scipy,cython还是两者中修复的......你使用的是哪个软件包版本?

(编辑:我忘了提及,我在conda包管理器中使用scipy / cython等)