#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Wed Nov 16 00:21:50 2022 @author: pierre """ import glob import numpy as np import matplotlib.pyplot as plt #%% def get_spec_UNISSP(logage, metal, verbose=True): metal = str("{:.0f}".format(10*metal)) path = './UNISSP/Z'+metal+'_UNISSP/' filenames = glob.glob(path+'/*.txt') filenames_spec = [] ages = [] for filename in filenames: if 'spec.txt' in filename: age = float(filename.split('/')[-1].split('_spec.txt')[0]) ages.append(age) filenames_spec.append(filename) elif 'lam.txt' in filename: lam = np.loadtxt(filename) ages = np.array(ages) x_age = np.argmin(abs(ages-logage)) filename = filenames_spec[x_age] real_age = ages[x_age] spec = np.loadtxt(filename) if verbose: print("Requested log10(age): ", '{:.3f}'.format(logage)) print("Found log10(age): ", '{:.3f}'.format(real_age)) return lam, spec def get_spec_UMISSP(logage, metal, verbose=True): metal = str("{:.0f}".format(metal)) path = './UMISSP/Z'+metal+'_UMISSP/' filenames = glob.glob(path+'/*.txt') filenames_spec = [] ages = [] for filename in filenames: if 'spec.txt' in filename: age = float(filename.split('/')[-1].split('_spec.txt')[0]) ages.append(age) filenames_spec.append(filename) elif 'lam.txt' in filename: lam = np.loadtxt(filename) ages = np.array(ages) x_age = np.argmin(abs(ages-logage)) filename = filenames_spec[x_age] real_age = ages[x_age] spec = np.loadtxt(filename) if verbose: print("Requested log10(age): ", '{:.3f}'.format(logage)) print("Found log10(age): ", '{:.3f}'.format(real_age)) return lam, spec #%% def get_iso_UNISSP(logage, metal, verbose=True): metal = str("{:.0f}".format(10*metal)) path = './UNISSP/Z'+metal+'_UNISSP/' filenames = glob.glob(path+'/*.txt') filenames_iso = [] ages = [] for filename in filenames: if 'iso.txt' in filename: age = float(filename.split('/')[-1].split('_iso.txt')[0]) ages.append(age) filenames_iso.append(filename) ages = np.array(ages) x_age = np.argmin(abs(ages-logage)) filename = filenames_iso[x_age] real_age = ages[x_age] iso = np.loadtxt(filename) if verbose: print("Requested log10(age): ", '{:.3f}'.format(logage)) print("Found log10(age): ", '{:.3f}'.format(real_age)) return iso def get_iso_UMISSP(logage, metal, verbose=True): metal = str("{:.0f}".format(metal)) path = './UMISSP/Z'+metal+'_UMISSP/' filenames = glob.glob(path+'/*.txt') filenames_iso = [] ages = [] for filename in filenames: if 'iso.txt' in filename: age = float(filename.split('/')[-1].split('_iso.txt')[0]) ages.append(age) filenames_iso.append(filename) ages = np.array(ages) x_age = np.argmin(abs(ages-logage)) filename = filenames_iso[x_age] real_age = ages[x_age] iso = np.loadtxt(filename) if verbose: print("Requested log10(age): ", '{:.3f}'.format(logage)) print("Found log10(age): ", '{:.3f}'.format(real_age)) return iso #%% def plot_spec(lam, spec): plt.plot(lam, spec) plt.xlabel('Wavelength ($\mu m$)') plt.ylabel('Flux ($W.\mu m^{-1}$)')