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))
Beispiel #4
0
 def experiments(self) -> xr.Dataset:
     temp_dataset = xr.Dataset()
     for exp in self.experiment_names:
         temp_dataset[exp] = self._dataset[exp]
     return temp_dataset