def _breakList(self, inList, index, parameter): par = float(parameter) array = [parameters[index] for parameters in inList] array = N.array(array, dtype=N.float64) upperArray = array[array >= par] lowerArray = array[array <= par] if upperArray.size == 0: maxAllowed = array.max() s = "Parameter '%s' exceeds data. Max allowed=%f, entered=%f." s = s % (self.parameter_names[index], maxAllowed, parameter) raise exceptions.ParameterOutOfBounds(s) elif lowerArray.size == 0: minAllowed = array.min() s = "Parameter '%s' exceeds data. Min allowed=%f, entered=%f." s = s % (self.parameter_names[index], minAllowed, parameter) raise exceptions.ParameterOutOfBounds(s) upper = upperArray.min() lower = lowerArray.max() upperList = [] lowerList = [] for i,parameters in enumerate(inList): if array[i] >= par and array[i] <= upper: upperList.append(parameters) if array[i] >= lower and array[i] <= par: lowerList.append(parameters) return upperList, lowerList
def _getSpectrum(self, parlist, basename): name = parlist[3] filename = name.split('[')[0] column = name.split('[')[1][:-1] filename = locations.KUR_TEMPLATE.replace('*', os.path.join(basename,filename)) sp = spectrum.TabularSourceSpectrum(filename, fluxname=column) totflux = sp.integrate() if not N.isfinite(totflux) or totflux <= 0: raise exceptions.ParameterOutOfBounds( "Parameter '{0}' has no valid data.".format(parlist)) result = [] for member in parlist: result.append(member) result.pop() result.append(sp) return result