Exemplo n.º 1
0
    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
Exemplo n.º 2
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)
Exemplo n.º 3
0
    # """ 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()
Exemplo n.º 4
0
        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)
Exemplo n.º 5
0
        # # 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()