def load_pds(fname): """Load PDS from a file.""" if get_file_format(fname) == 'pickle': data = _load_data_pickle(fname) elif get_file_format(fname) == 'nc': data = _load_data_nc(fname) type_string = data['__sr__class__type__'] if 'AveragedPowerspectrum' in type_string: cpds = AveragedPowerspectrum() elif 'Powerspectrum' in type_string: cpds = Powerspectrum() elif 'AveragedCrossspectrum' in type_string: cpds = AveragedCrossspectrum() elif 'Crossspectrum' in type_string: cpds = Crossspectrum() else: raise ValueError('Unrecognized data type in file') data.pop('__sr__class__type__') for key in data.keys(): setattr(cpds, key, data[key]) lc1_name = fname.replace(HEN_FILE_EXTENSION, '__lc1__' + HEN_FILE_EXTENSION) lc2_name = fname.replace(HEN_FILE_EXTENSION, '__lc2__' + HEN_FILE_EXTENSION) pds1_name = fname.replace(HEN_FILE_EXTENSION, '__pds1__' + HEN_FILE_EXTENSION) pds2_name = fname.replace(HEN_FILE_EXTENSION, '__pds2__' + HEN_FILE_EXTENSION) cs_all_names = glob.glob( fname.replace(HEN_FILE_EXTENSION, '__cs__[0-9]__' + HEN_FILE_EXTENSION)) if os.path.exists(lc1_name): cpds.lc1 = load_lcurve(lc1_name) if os.path.exists(lc2_name): cpds.lc2 = load_lcurve(lc2_name) if os.path.exists(pds1_name): cpds.pds1 = load_pds(pds1_name) if os.path.exists(pds2_name): cpds.pds2 = load_pds(pds2_name) if len(cs_all_names) > 0: cs_all = [] for c in cs_all_names: cs_all.append(load_pds(c)) cpds.cs_all = cs_all return cpds
def load_pds(fname, nosub=False): """Load PDS from a file.""" if get_file_format(fname) == 'pickle': data = _load_data_pickle(fname) elif get_file_format(fname) == 'nc': data = _load_data_nc(fname) type_string = data['__sr__class__type__'] if 'AveragedPowerspectrum' in type_string: cpds = AveragedPowerspectrum() elif 'Powerspectrum' in type_string: cpds = Powerspectrum() elif 'AveragedCrossspectrum' in type_string: cpds = AveragedCrossspectrum() elif 'Crossspectrum' in type_string: cpds = Crossspectrum() else: raise ValueError('Unrecognized data type in file') data.pop('__sr__class__type__') for key in data.keys(): setattr(cpds, key, data[key]) if 'amplitude' in list(data.keys()): cpds.amplitude = bool(data["amplitude"]) outdir = fname.replace(HEN_FILE_EXTENSION, "") modelfiles = glob.glob( os.path.join(outdir, fname.replace(HEN_FILE_EXTENSION, '__mod*__.p'))) cpds.best_fits = None if len(modelfiles) >= 1: bmodels = [] for mfile in modelfiles: if os.path.exists(mfile): bmodels.append(load_model(mfile)[0]) cpds.best_fits = bmodels if nosub: return cpds lc1_name = os.path.join(outdir, '__lc1__' + HEN_FILE_EXTENSION) lc2_name = os.path.join(outdir, '__lc2__' + HEN_FILE_EXTENSION) pds1_name = os.path.join(outdir, '__pds1__' + HEN_FILE_EXTENSION) pds2_name = os.path.join(outdir, '__pds2__' + HEN_FILE_EXTENSION) cs_all_names = glob.glob( os.path.join(outdir, '__cs__[0-9]__' + HEN_FILE_EXTENSION)) if os.path.exists(lc1_name): cpds.lc1 = load_lcurve(lc1_name) if os.path.exists(lc2_name): cpds.lc2 = load_lcurve(lc2_name) if os.path.exists(pds1_name): cpds.pds1 = load_pds(pds1_name) if os.path.exists(pds2_name): cpds.pds2 = load_pds(pds2_name) if len(cs_all_names) > 0: cs_all = [] for c in cs_all_names: cs_all.append(load_pds(c)) cpds.cs_all = cs_all return cpds