Source code for desk.set_up.full_grid

# Steve Goldman, Space Telescope Science Institute, sgoldman@stsci.edu
import math
import ipdb
from tqdm import tqdm
import numpy as np
import astropy.units as u
from desk.set_up import config, scale_dusty, scale_external


[docs] class instantiate: """Creates class with parameters needed to scale to the full grids""" def __init__(self, grid, grid_dusty, grid_outputs, distance, n): self.grid = grid self.grid_dusty = grid_dusty self.grid_outputs = grid_outputs self.distance = distance # factor to multiply the model flux by to scale flux to a 1 Lsun star at # user-given given distance # derived using L/Lsun=(d/dsun)^2 * F/Fsun # Fsun = 1379 W m-2 self.scaling_factor_flux_to_Lsun = ( (float(distance) / u.AU.to(u.kpc)) ** 2 ) / 1379 self.n = n
[docs] def generate_model_luminosities(n): """Creates an array of n luminosities from the lum_min and lum_max specified in the cofig.py script. Parameters ---------- n : int number of luminosities to scale grid by. Returns ------- luminosities : array array of luminosity values. """ luminosities = np.logspace( np.log10(config.fitting["lum_min"]), np.log10(config.fitting["lum_max"]), n ) return luminosities
[docs] def retrieve(full_grid_params): """Creates full scaled grid using data from full_grid_params Class. Parameters ---------- full_grid_params : class Class using parameters from instantiate class. Returns ------- full_outputs : astropy table scaled model grid outputs similar to grid_outputs full_model_grid : astropy table scaled models similar to grid_dusty """ if ( full_grid_params.grid in config.external_grids ) or full_grid_params.grid == "grams": full_outputs, full_model_grid = scale_external.scale_by_distance( full_grid_params.grid, full_grid_params.grid_outputs, full_grid_params.grid_dusty, full_grid_params.scaling_factor_flux_to_Lsun, full_grid_params.distance, ) else: # scale DUSTY outputs print( "Scaling to full grid (" + "{:,}".format((len(full_grid_params.grid_outputs) * full_grid_params.n)) + " models)" ) unique_luminosities = generate_model_luminosities(full_grid_params.n) full_outputs, full_model_grid = scale_dusty.scale( full_grid_params.grid_outputs, full_grid_params.grid_dusty, unique_luminosities, full_grid_params.scaling_factor_flux_to_Lsun, ) return full_outputs, full_model_grid