def __add__(self, other): """ Adds two studies and returns a new study with all samples and measurements from both studies. The old studies will get a new samplegroup from the name of the study Parameters ---------- other: second samplegroup to be added Returns ------- RockPyStudy """ study = RockPy3.RockPyStudy() for s in self.samplelist: study.add_sample(sobj=s, samplegroup=self.name) for s in other.samplelist: study.add_sample(sobj=s, samplegroup=other.name) return study
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)
# """ vftb sample """ # # s = S.add_sample(name='MSM17591') # # s.add_measurement(mtype='thermocurve', fpath=vftb_rmp, ftype='vftb') # # """ mpms sample """ # # s = S.add_sample(name='pyrr17591_a') # # s.add_measurement(mtype='thermocurve', fpath=file, ftype='mpms') # # """ vsm sample """ # s = S.add_sample('167a', sgroup='LTPY') # s.add_measurement(fpath='/Users/mike/Dropbox/experimental_data/RMP/LTPY/LTPY_167a_RMP_VSM#[]_[]_[]##STD001.000') # # # fig = RockPy3.Figure() # v = fig.add_visual(visual='thermocurve', data=s) # fig.show() S = RockPy3.RockPyStudy() s = S.add_sample('test') m = s.add_measurement( fpath= '/Users/mike/Dropbox/experimental_data/RMP/LTPY/LTPY_167a_RMP_VSM#[]_[]_[]##STD001.000' ) print(deepcopy(m).__dict__.keys()) # fig = RockPy3.Figure() # # # 167a # v = fig.add_visual('thermocurve', data=s) # v.enumerate() # v.normalize('cooling00', vval=300) # fig.show()
log.info("reading study {}".format(name)) study = cls(name=name) # readin the samples for sample_node in s.findall(RockPy3.core.sample.Sample.SAMPLE): study.add_sample( sobj=RockPy3.core.sample.Sample.from_etree(sample_node)) return study @classmethod def load_from_xml(cls, file_name, folder=None): if not folder: folder = RockPy3.core.file_operations.default_folder log.info("reading xml data from {}".format(join(folder, file_name))) tree = etree.parse(join(folder, file_name)) root = tree.getroot() return cls.from_etree(root) if __name__ == '__main__': # RockPy3.logger.setLevel('DEBUG') S = RockPy3.RockPyStudy( folder='/Users/mike/Dropbox/experimental_data/pyrrhotite/hys||c') S.label_add_series(stype='temp', add_stype=False, add_unit=True) RockPy3.QuickFig(S, 'hysteresis', sort_labels=False)
# # dictionaries # self._mdict = self._create_mdict() # self._mean_mdict = self._create_mdict() # self._rdict = self._create_mdict() self.index = MeanSample.snum self._samplegroups = [] self.study = RockPy3.Study self.idx = MeanSample.snum MeanSample.snum += 1 def __repr__(self): return '<< RockPy.MeanSample.{} >>'.format(self.name) if __name__ == '__main__': RockPy3.logger.setLevel('DEBUG') #S = RockPy3.RockPyStudy(folder='/Users/mike/Dropbox/experimental_data/pyrrhotite/hys||c') S = RockPy3.RockPyStudy( folder= '/Users/mike/Dropbox/experimental_data/FeNiX/FeNi20K/separation test') f = RockPy3.Figure(data=S) v = f.add_visual('hysteresis') v = f.add_visual('hysteresis', features='reversible_data') v = f.add_visual('hysteresis', features='irreversible_data') f.show()