def __init__(self, filename, exclude): from cosmosis.datablock import option_section, names from cosmosis.plotting.kde import KDE exclude += ['post', 'like'] names = open(filename).readline().lstrip('#').split() names = [[i, name] for i, name in enumerate(names) if name.split("--")[-1] not in exclude] indices = np.array(names).T[0].astype(int) names =np.array(names).T[1].astype(str) n = nsample_multinest(filename) data = np.loadtxt(filename).T if n is not None: print "Using last {} rows of data".format(n) data = data[:,-n:] if "weight" in names: weight = data[np.argwhere(names=="weight")[0,0]] weight /= weight.max() else: weight = None indices = [index for index,name in zip(indices,names) if name!='weight' ] names = [name for name in names if name!='weight'] self.data = data[indices] names = [name.split("--") for name in names] self.names = names self.kde = KDE(self.data, weights=weight)
def smooth_likelihood(obj,x, y): n = obj.options.get("n_kde", 100) factor = obj.options.get("factor_kde", 2.0) kde = KDE([x,y], factor=factor) x_range = (x.min(), x.max()) y_range = (y.min(), y.max()) (x_axis, y_axis), like = kde.grid_evaluate(n, [x_range, y_range]) return n, x_axis, y_axis, like
def smooth_likelihood(obj,x, y): n = 100 factor = 2.0 kde = KDE([x,y], factor=factor) x_range = (x.min(), x.max()) y_range = (y.min(), y.max()) (x_axis, y_axis), like = kde.grid_evaluate(n, [x_range, y_range]) return n, x_axis, y_axis, like