Source code for desk.get_padova

import urllib
import tarfile
import shutil
import pdb
import os
from tqdm import tqdm
import numpy as np
from astropy.table import vstack, Table, Column


[docs]def get_model(model_grid_name): if model_grid_name == 'J400': url = 'http://starkey.astro.unipd.it/documents/10184/1932584/SMC_tables_J400.dat/f0107070-99b4-4f5a-b46c-f443f8b9e04f' url_tar = 'http://starkey.astro.unipd.it/documents/10184/1932584/J400.tar.gz/c1b50228-5c39-477d-8b83-b83a2f91c717' elif model_grid_name == 'J1000': url = 'http://starkey.astro.unipd.it/documents/10184/1932584/SMC_tables_J1000.dat/a84fed3a-46b4-4f74-a236-88e32225a6bc' url_tar = 'http://starkey.astro.unipd.it/documents/10184/1932584/J1000.tar.gz/46e1d848-3913-4052-a903-7ab64f17117c' elif model_grid_name == 'H11': url = "http://starkey.astro.unipd.it/documents/10184/1932584/SMC_tables_H11.dat/07c719d1-8b6c-4274-8e33-a6a79ec3d26c" url_tar = 'http://starkey.astro.unipd.it/documents/10184/1932584/H11.tar.gz/190bff99-74ef-472d-832e-74864e5799ba' elif model_grid_name == 'R12': url = "http://starkey.astro.unipd.it/documents/10184/1932584/SMC_tables_R12.dat/ba7b6583-47f9-43f6-bbcf-def477dbf699" url_tar = 'http://starkey.astro.unipd.it/documents/10184/1932584/R12.tar.gz/2fb77bf0-79d7-4867-b908-c55d67b0b6f6' elif model_grid_name == 'R13': url = "http://starkey.astro.unipd.it/documents/10184/1932584/SMC_tables_R13.dat/9a394ad3-25c3-43bf-847d-436760b80df8" url_tar = 'http://starkey.astro.unipd.it/documents/10184/1932584/R13.tar.gz/3732a57e-15b3-47a3-8869-bd01ef43d090' else: raise ValueError( 'Model name not an option. \n Built-in options: Zubko-Crich-aringer, Oss-Orich-bb, Oss-Orich-aringer, Crystalline-20-bb, corundum-20-bb \n Padova options: J400, J1000, H11, R12, R13') # Download files print("Downloading") urllib.request.urlretrieve(url, 'model.dat') urllib.request.urlretrieve(url_tar, 'model_directory.tar.gz') print("Download Complete!") # Extract Tar file print("Extracting") tar = tarfile.open('model_directory.tar.gz', "r:gz") tar.extractall() tar.close() # Compile spectra into fits file output_files = os.listdir(model_grid_name) dusty_spectra = [] print('Compiling spectra into single fits file') for item in tqdm(output_files): new_row = np.loadtxt(model_grid_name + '/' + item, skiprows=1, usecols=[0, 1], unpack=True) dusty_spectra.append(new_row) dusty_spectra_output = Table(np.array(dusty_spectra)) dusty_spectra_output.write('../models/' + model_grid_name + '_models.fits', format='fits', overwrite=True) # reorder parameter file p_file = Table.read('model.dat', format='csv', delimiter=' ') p_file.rename_column('#dmdt', 'mdot') p_file.rename_column('Tinn', 'tinner') p_file.rename_column('Teff', 'teff') p_file.rename_column('tau10', 'odep') grid_name = Column([model_grid_name] * len(p_file), name='grid_name') output_array = Table( [grid_name, p_file['teff'], p_file['tinner'], p_file['M'], p_file['vexp'], p_file['mdot'], p_file['odep']]) output_array.write('../models/' + model_grid_name + '_outputs.csv', format='csv', overwrite=True)
# remove temporary files # os.remove('model.dat') # os.remove('model_directory.tar.gz') # shutil.rmtree(model_grid_name)