use*_*827 7 python numpy netcdf joblib
我得到了foll.尝试使用joblib缓存结果时的用户警告:
from tempfile import mkdtemp
cachedir = mkdtemp()
from joblib import Memory
memory = Memory(cachedir=cachedir, verbose=0)
@memory.cache
def get_nc_var3d(path_nc, var, year):
"""
Get value from netcdf for variable var for year
:param path_nc:
:param var:
:param year:
:return:
"""
try:
hndl_nc = open_or_die(path_nc)
val = hndl_nc.variables[var][int(year), :, :]
except:
val = numpy.nan
logger.info('Error in getting var ' + var + ' for year ' + str(year) + ' from netcdf ')
hndl_nc.close()
return val
Run Code Online (Sandbox Code Playgroud)
我得到了foll.使用foll调用此函数时发出警告.参数:
UserWarning: Persisting input arguments took 0.58s to run.
If this happens often in your code, it can cause performance problems
(results will be correct in all cases).
The reason for this is probably some large input arguments for a wrapped
function (e.g. large strings).
THIS IS A JOBLIB ISSUE. If you can, kindly provide the joblib's team with an
example so that they can fix the problem.
Run Code Online (Sandbox Code Playgroud)
输入参数: C:/Users/rit/Documents/PhD/Projects/\GLA/Input/LUWH/\LUWLAN_v1.0h\transit_model.nc range_to_large 1150
我如何摆脱警告?以及为什么会发生这种情况,因为输入参数不会太长.
对于“为什么这不起作用?”我没有答案。问题的一部分。但是,要简单地忽略警告,您可以使用warnings.catch_warnings
with warnings.simplefilter
,如此处所示。
import warnings
with warnings.catch_warnings():
warnings.simplefilter("ignore")
your_code()
Run Code Online (Sandbox Code Playgroud)
显然,我不建议忽略警告,除非你确定它无害,但如果你打算这样做,这种方式只会抑制上下文管理器内的警告,并且直接来自 python 文档
归档时间: |
|
查看次数: |
392 次 |
最近记录: |