微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python 脚本在函数调用或对象创建时意外终止

如何解决python 脚本在函数调用或对象创建时意外终止

我正在编写一个脚本来使用 Scipy 的内置 RBFInterpolator 对二维数据集进行插值。所有脚本都运行良好,直到需要创建 RBFInterpolator 对象,然后它突然终止而没有错误。这对我来说没有意义。 python没有循环跳过一段代码,所以不可能是编程错误。我以前没见过这种probem,不知道该怎么办。

我认为问题与 Windows 终止程序有关,但我不确定原因。

这是我的代码。我添加一个注释来确定它在哪里终止。

import numpy as np 
import scipy.interpolate as inter
import matplotlib.pyplot as plt
import os 
import h5py

#import hdf data

lowres_hdf = h5py.File('exdat.h5','r')
r_bounds = np.array(lowres_hdf['AXIS']['AXIS1'])
z_bounds = np.array(lowres_hdf['AXIS']['AXIS2'])
lowres_dat = np.array(lowres_hdf['exslicexz'])
dat_shape = np.shape(lowres_dat)

#create mesh
z = np.linspace(z_bounds[0],z_bounds[1],num = dat_shape[1]).astype(float)
r = np.linspace(r_bounds[0],r_bounds[1],num = dat_shape[0]).astype(float)

xx,yy = np.meshgrid(z,r)
xx = np.ravel(xx)
yy = np.ravel(yy)
mesh = np.stack([xx,yy],axis = 1)

print(np.shape(mesh))

#create output mesh (high-res)
z_out = np.linspace(z_bounds[0],num = 1024).astype(float)
r_out = np.linspace(r_bounds[0],num = 512).astype(float)
xx,r)
xx = np.ravel(xx)
yy = np.ravel(yy)
mesh_out = np.stack([xx,axis = 1)

#data pre-processing
dat = np.ravel(lowres_dat)

####----------------------- TERMINATES HERE -------------------------------

#RBF interpolate 
interpolated = inter.RBFInterpolator(mesh,dat,smoothing = 0.0)(mesh_out)
interpolated = interpolated.reshape(512,1024)

我通过在相关行的上方和下方放置一个打印语句来确保程序在我指定的位置终止。该行上面的语句被打印出来,但下面的语句没有打印出来,程序终止。

非常感谢任何帮助

编辑:如果您需要运行代码来识别问题,这是完整的代码以及脚本所需的文件和数据。只需运行 python 脚本。 Link-googledrive

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。