def estimate_poissonian(self, x_axis, data, params):
""" Provide an estimator for initial values of a poissonian function.
@param numpy.array x_axis: 1D axis values
@param numpy.array data: 1D data, should have the same dimension as x_axis.
@param lmfit.Parameters params: object includes parameter dictionary which
can be set
@return tuple (error, params):
Explanation of the return parameter:
int error: error code (0:OK, -1:error)
Parameters object params: set parameters of initial values
"""
error = self._check_1D_input(x_axis=x_axis, data=data, params=params)
# a gaussian filter is appropriate due to the well approximation of poisson
# distribution
# gaus = gaussian(10,10)
# data_smooth = filters.convolve1d(data, gaus/gaus.sum(), mode='mirror')
data_smooth = self.gaussian_smoothing(data=data, filter_len=10,
filter_sigma=10)
# set parameters
mu = x_axis[np.argmax(data_smooth)]
params['mu'].value = mu
params['amplitude'].value = data_smooth.max() / self.poisson(mu, mu)
return error, params
评论列表
文章目录