def __init__(self): self._data = xr.Dataset() self._jobs = {} self._instrumental_parameters = [] self._instrumental_parameters_link = {} self._experimental_parameters = [] self._experimental_parameters_link = {} self._phases = [] self._phase_link = {}
__author__ = 'github.com/wardsimon' __version__ = '0.1.0' from easyCore import np from easyCore.Datasets.xarray import xr from easyCore.Objects.ObjectClasses import Parameter, BaseObj from easyCore.Fitting.Fitting import Fitter import matplotlib.pyplot as plt d = xr.Dataset() b = BaseObj('line', m=Parameter('m', 1), c=Parameter('c', 1)) def fit_fun(x, *args, **kwargs): # In the real case we would gust call the evaluation fn without reference to the BaseObj return b.c.raw_value + b.m.raw_value * x f = Fitter() f.initialize(b, fit_fun) nx = 1E3 x_min = 0 x_max = 100 x = np.linspace(x_min, x_max, num=int(nx)) y1 = 2 * x - 1 + 5 * (np.random.random(size=x.shape) - 0.5) x2 = x + 20 y2 = 2 * x2 - 1 + 5 * (np.random.random(size=x2.shape) - 0.5)
from easyDiffractionLib.Elements.Backgrounds.Point import PointBackground, BackgroundPoint from easyCore.Fitting.Fitting import Fitter from easyCore.Datasets.xarray import xr interface = InterfaceFactory() c = Phases.from_cif_file('PbSO4.cif') S = Sample(phases=c, parameters=Pars1D.default(), pattern=Pattern1D.default(), interface=interface) file_path = 'PbSO4_neutrons_short.xye' data_x, data_y, data_e = np.loadtxt(file_path, unpack=True) data_set = xr.Dataset() data_set.easyCore.add_coordinate('tth', data_x) data_set.easyCore.add_variable('I', ['tth'], data_y) data_set.easyCore.sigma_attach('I', data_e) S.parameters.wavelength = 1.912 S.parameters.u_resolution = 1.4 S.parameters.v_resolution = -0.42 S.parameters.w_resolution = 0.38 S.parameters.x_resolution = 0.0 S.parameters.y_resolution = 0.0 bg = PointBackground(linked_experiment='PbSO4') bg.append(BackgroundPoint.from_pars(data_x[0], 200)) bg.append(BackgroundPoint.from_pars(data_x[-1], 200))
def experiments(self) -> xr.Dataset: temp_dataset = xr.Dataset() for exp in self.experiment_names: temp_dataset[exp] = self._dataset[exp] return temp_dataset