Esempio n. 1
0
def test():
    Sample = RockPy3.Sample(name='parameter_test',
                            mass=10.,
                            mass_unit='kg',
                            height=4.5,
                            diameter=6.,
                            length_unit='mm')
    Sample = RockPy3.Sample(name='parameter_test',
                            mass=10.,
                            mass_unit='kg',
                            sample_shape='sphere',
                            x_len=4.5,
                            y_len=6.,
                            z_len=6.,
                            length_unit='mm')
Esempio n. 2
0
def import_folder(folder, name='study', study=None):
    if not study:
        study = RockPy3.Study(name=name)

    files = [
        i for i in os.listdir(folder) if not i == '.DS_Store'
        if not i.startswith('#')
    ]
    samples = defaultdict(list)

    for i in files:
        d = RockPy3.get_info_from_fname(join(folder, i))
        samples[d['name']].append(d)

    for s in samples:
        sgroup_name = samples[s][0]['samplegroup']
        if not sgroup_name in study.samplegroup_names:
            sg = RockPy3.SampleGroup(name=samples[s][0]['samplegroup'])
            study.add_samplegroup(sg)
        sg = study[sgroup_name]
        if not s in study.sdict:
            smpl = RockPy3.Sample(**samples[s][0])
            sg.add_samples(smpl)
        for m in samples[s]:
            measurement = smpl.add_measurement(**m)
            if 'ISindex' in m:
                initial = get_IS(m, samples[s])
                measurement.set_initial_state(**initial)
                samples[s].remove(initial)
            if 'IS' in m and m['IS'] == True:
                continue
    return study
Esempio n. 3
0
def test():
    file = '/Users/mike/Dropbox/experimental_data/COE/FeNiX/FeNiX_FeNi20-G-a-001-M02_COE_VSM#15[mg]_[]_[]#milling time_1_hrs;Ni_20_perc#STD003.001'
    s = RockPy3.Sample(name='test_sample')
    coe = s.add_simulation(mtype='backfield', bmax=1, noise=1)
    # print(coe.data['data'])
    plt.plot(coe.data['data']['field'].v, coe.data['data']['mag'].v)
    plt.show()
Esempio n. 4
0
    def test_init_works(self):
        s = RockPy3.Sample(name='test_sample', comment='no comment')
        self.assertTrue(s.name == 'test_sample')
        self.assertTrue(s.comment == 'no comment')

        # check if a study was created
        self.assertTrue(s in s._study.samples.keys())
        self.assertTrue(s in s._study.samplelist)
        self.assertTrue(s in s._study.samplenames)
Esempio n. 5
0
def create_dummy_measurement(mtype,
                             fpath=None,
                             ftype=None,
                             idx=0,
                             mdata=None,
                             sample=None):
    s = RockPy3.Sample(name='dummy_sample')
    m = s.add_measurement(
        mtype=mtype,
        fpath=fpath,
        ftype=ftype,  # general
        idx=idx,
        mdata=mdata,
    )
    if sample:
        m.sobj = sample
    return m
Esempio n. 6
0
    def test__add_input_to_plot(self):
        # only samples without mean
        NoMeanStudy = RockPy3.RockPyStudy(name='NoMeanStudy')
        # only samples with mean
        MeanStudy = RockPy3.RockPyStudy(name='MeanStudy')
        # samples with mean and without
        MixedStudy = RockPy3.RockPyStudy(name='MixedStudy')
        #
        # sample without mean
        NoMeanSample = RockPy3.Sample()
        Measurement_NoMeanSample = NoMeanSample.add_simulation(mtype='hys')
        # # sample with mean
        MeanSample = RockPy3.Sample()
        Measurement_MeanSample1 = MeanSample.add_simulation(mtype='hys')
        Measurement_MeanSample2 = MeanSample.add_simulation(mtype='hys')
        MeanMeasurement12 = MeanSample.create_mean_measurement(mtype='hys')
        #
        NoMeanStudy.add_sample(sobj=NoMeanSample)
        MeanStudy.add_sample(sobj=MeanSample)
        MixedStudy.add_sample(sobj=NoMeanSample)
        MixedStudy.add_sample(sobj=MeanSample)

        SampleList = [NoMeanSample, MeanSample]
        NoMeanList = [Measurement_NoMeanSample, Measurement_MeanSample1]
        MeanList = [Measurement_NoMeanSample, Measurement_MeanSample1, MeanMeasurement12]
        for i, test in enumerate([NoMeanStudy,
                                  MeanStudy, MixedStudy, #NoMeanSample, MeanSample,
                                  # Measurement_NoMeanSample, Measurement_MeanSample1,
                                  # SampleList, NoMeanList, MeanList
                                  ]):
            fig = RockPy3.Figure()
            v = fig.add_visual('hysteresis')

            # print('plot_mean=True, plot_base=True')
            mlist = v._add_input_to_plot(test, plot_mean=True, plot_base=True, base_alpha=0.1)
            # print('plot_mean=False, plot_base=True')
            mlist_NoMean = v._add_input_to_plot(test, plot_mean=False, plot_base=True, base_alpha=0.2)
            # print('plot_mean=True, plot_base=False')
            mlist_NoBase = v._add_input_to_plot(test, plot_mean=True, plot_base=False, base_alpha=0.3)
            # print('plot_mean=False, plot_base=False')
            mlist_NoMeanNoBase = v._add_input_to_plot(test, plot_mean=False, plot_base=False, base_alpha=0.4)
            # print('plot_mean=False, plot_base=False, plot_other=False')
            mlist_Nothing = v._add_input_to_plot(test, plot_mean=False, plot_base=False, plot_other=False)

            if i == 0: #NoMeanStudy
                self.assertEquals([Measurement_NoMeanSample], mlist)
                self.assertEquals([Measurement_NoMeanSample], mlist_NoMean)
                self.assertEquals([Measurement_NoMeanSample], mlist_NoBase)
                self.assertEquals([Measurement_NoMeanSample], mlist_NoMeanNoBase)
                self.assertEquals([], mlist_Nothing)
                # alpha_prop = [m._plt_props['alpha'] for m in mlist_NoMean]
                # self.assertFalse(all(i == 0.1 for i in alpha_prop))
            if i == 1: #MeanStudy
                self.assertEquals([MeanMeasurement12, Measurement_MeanSample1, Measurement_MeanSample2], mlist)
                self.assertEquals([Measurement_MeanSample1, Measurement_MeanSample2], mlist_NoMean)
                self.assertEquals([MeanMeasurement12], mlist_NoBase)
                self.assertEquals([], mlist_NoMeanNoBase)
                alpha_prop = [m._plt_props['alpha'] for m in mlist_NoMean if 'alpha' in m._plt_props]
                self.assertEqual([0.1, 0.1], alpha_prop)
            if i == 2: #MixedStudy
                self.assertEquals([MeanMeasurement12, Measurement_MeanSample1, Measurement_MeanSample2, Measurement_NoMeanSample], mlist)
                self.assertEquals([Measurement_MeanSample1, Measurement_MeanSample2, Measurement_NoMeanSample], mlist_NoMean)
                self.assertEquals([MeanMeasurement12, Measurement_NoMeanSample], mlist_NoBase)
                self.assertEquals([Measurement_NoMeanSample], mlist_NoMeanNoBase)
                alpha_prop = [m._plt_props['alpha'] for m in mlist_NoMean if 'alpha' in m._plt_props]
                self.assertEqual([0.1, 0.1], alpha_prop)
Esempio n. 7
0
        samples = RockPy3._to_tuple(self.samples)
        for i in samples:
            for j in self.mtypes:
                mtype = RockPy3.abbrev_to_classname(j)
                idict.update({'mtype': mtype, 'sample': i})
                yield idict

    @property
    def sample_infos(self):
        sdict = dict(mass=self.mass,
                     diameter=self.diameter,
                     height=self.height,
                     mass_unit=self.massunit,
                     height_unit=self.heightunit,
                     diameter_unit=self.diameterunit,
                     samplegroup=self.sgroups)

        samples = RockPy3._to_tuple(self.samples)
        for i in samples:
            sdict.update({'name': i})
            yield sdict


if __name__ == '__main__':
    m = RockPy3.Sample('test').add_measurement(
        fpath=
        '/Users/mike/Dropbox/experimental_data/FeNiX/FeNi20K/separation test/FeNi_FeNi20-Ka1440_HYS_VSM###Tesa1.001'
    )

    print(m.sobj.samplegroups)