示例#1
0
    def __init__(self):
        super(DataStore, self).__init__()
        self.data_objects = OrderedDict()

        # create the default theoretical dataset
        q = np.linspace(0.005, 0.5, 1000)
        r = np.empty_like(q)
        dataset = ReflectDataset()
        dataset.data = (q, r)
        dataset.name = "theoretical"
        air = SLD(0, name="fronting")
        sio2 = SLD(3.47, name="1")
        si = SLD(2.07, name="backing")
        structure = air(0, 0) | sio2(15, 3.0) | si(0, 3.0)

        structure[1].name = "slab"
        structure[1].thick.name = "thick"
        structure[1].rough.name = "rough"
        structure[1].sld.real.name = "sld"
        structure[1].sld.imag.name = "isld"
        structure[1].vfsolv.name = "vfsolv"

        model = ReflectModel(structure, name="theoretical")
        self.add(dataset)
        self["theoretical"].model = model
示例#2
0
    def __init__(self):
        super(DataStore, self).__init__()
        self.data_objects = OrderedDict()

        # create the default theoretical dataset
        q = np.linspace(0.005, 0.5, 1000)
        r = np.empty_like(q)
        dataset = ReflectDataset()
        dataset.data = (q, r)
        dataset.name = 'theoretical'
        air = SLD(0, name='fronting')
        sio2 = SLD(3.47, name='1')
        si = SLD(2.07, name='backing')
        structure = air(0, 0) | sio2(15, 3.) | si(0, 3.)

        structure[1].name = 'slab'
        structure[1].thick.name = 'thick'
        structure[1].rough.name = 'rough'
        structure[1].sld.real.name = 'sld'
        structure[1].sld.imag.name = 'isld'
        structure[1].vfsolv.name = 'vfsolv'

        model = ReflectModel(structure, name='theoretical')
        self.add(dataset)
        self['theoretical'].model = model
示例#3
0
    def snapshot(self, snapshot_name):
        original = self.datastore["theoretical"]
        dataset = ReflectDataset()
        dataset.data = (
            original.dataset.x,
            original.model.model(original.dataset.x, x_err=dataset.x_err),
        )
        dataset.name = snapshot_name

        new_model = deepcopy(original.model)
        new_model.name = snapshot_name

        # if the snapshot already exists then overwrite it.
        if snapshot_name in self.datastore.names:
            row = self.data_object_row(snapshot_name)
            self._rootnode.child(row).set_dataset(dataset)
            self._rootnode.child(row).set_reflect_model(new_model)
            data_object = self.data_object_node(snapshot_name).data_object
        else:
            # otherwise you have to add it.
            data_object = DataObject(dataset)
            data_object.model = new_model
            self._rootnode.set_data_object(data_object)

        return data_object