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 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 import_file(self, fpath): """ Import function for a single file. :param fpath: :return: if file not readable it returns None """ try: info = RockPy3.get_info_from_fname(fpath) if not info['mtype'] in RockPy3.implemented_measurements: return if not info['sample_name'] in self._samples: s = self.add_sample(name=info['sample_name'], mass=info['mass'], mass_unit=info['mass_unit']) else: s = self._samples[info['sample_name']] m = s.add_measurement(fpath=info['fpath'], series=info['series']) return m except ValueError: return