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')
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
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()
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)
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
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)
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)