Loading .gitignore +4 −3 Original line number Diff line number Diff line /etl/mdl/radmc_files/* scratches_and_co/ /etl/mdl/radmc3d_postprocessing.sh /etl/prs/fits/cubes/* /etl/prs/fits/moments/* /etl/prs/fits/ratios/* /etl/prs/fits/cubes/*.fits /etl/prs/fits/grids/*.fits /etl/prs/fits/moments/*.fits /etl/prs/fits/ratios/*.fits /etl/credentials/* etl/main.py +29 −21 Original line number Diff line number Diff line import glob import os import uuid from itertools import product from itertools import product, chain from multiprocessing import Pool from assets.commons import (load_config_file, parse_grid_overrides, Loading @@ -13,7 +13,7 @@ from prs.prs_compute_integrated_fluxes_and_ratios import main as prs_main from prs.prs_inspect_results import main as prs_inspection_main def compute_grid(tdust, nh2, line_pairs, density_keyword): def compute_grid(tdust, nh2, line, density_keyword): scratch_dir = os.path.join('mdl', 'scratches', str(uuid.uuid4())) overrides = { 'grid': { Loading @@ -24,9 +24,6 @@ def compute_grid(tdust, nh2, line_pairs, density_keyword): tarname = stg_main(override_config=overrides, path_radmc_files=scratch_dir, run_id=run_id) for line_pair in line_pairs: cube_fits = [] for line in line_pair: mdl_overrides = { 'grid_lines': overrides, 'model': { Loading @@ -35,12 +32,11 @@ def compute_grid(tdust, nh2, line_pairs, density_keyword): } } } cube_fits.append(execute_radmc_script(grid_tarfile=tarname, cube_fits_name = execute_radmc_script(grid_tarfile=tarname, override_config=mdl_overrides, radmc_input_path=scratch_dir, run_id=run_id)) prs_main(cube_fits_list=cube_fits, run_id=run_id) return nh2, tdust, line, cube_fits_name def build_model_grid(run_id: str, Loading @@ -56,13 +52,25 @@ def build_model_grid(run_id: str, config=config) densities = parse_grid_overrides(par_name='gas_density', config=config) lines = config['overrides']['lines_to_process'] line_pairs = config['overrides']['lines_to_process'] line_set = set(chain.from_iterable(line_pairs)) density_keyword = 'central_density' if _model_type == 'homogeneous' else 'density_at_reference' parallel_args = product(dust_temperatures, densities, [lines], [density_keyword]) parallel_args = product(dust_temperatures, densities, line_set, [density_keyword]) with Pool(8) as pool: pool.starmap(compute_grid, parallel_args) results = pool.starmap(compute_grid, parallel_args) results_map = {} for (nh2, tdust, line, cube_fits_name) in results: results_map[f'{str(nh2)}_{str(tdust)}_{line}'] = cube_fits_name for line_pair in line_pairs: for tdust, nh2 in product(dust_temperatures, densities): prs_main(cube_fits_list=[results_map[f'{str(nh2)}_{str(tdust)}_{line_pair[0]}'], results_map[f'{str(nh2)}_{str(tdust)}_{line_pair[1]}']], run_id=run_id) if cleanup_scratches is True: scratches_dirs = glob.glob(os.path.join('mdl', 'scratches', '*')) for scratches in scratches_dirs: Loading etl/mdl/mdl_execute_radmc_command.py +0 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,6 @@ import os import sys from itertools import product from typing import Union import sqlalchemy from astropy import units as u from datetime import datetime Loading Loading
.gitignore +4 −3 Original line number Diff line number Diff line /etl/mdl/radmc_files/* scratches_and_co/ /etl/mdl/radmc3d_postprocessing.sh /etl/prs/fits/cubes/* /etl/prs/fits/moments/* /etl/prs/fits/ratios/* /etl/prs/fits/cubes/*.fits /etl/prs/fits/grids/*.fits /etl/prs/fits/moments/*.fits /etl/prs/fits/ratios/*.fits /etl/credentials/*
etl/main.py +29 −21 Original line number Diff line number Diff line import glob import os import uuid from itertools import product from itertools import product, chain from multiprocessing import Pool from assets.commons import (load_config_file, parse_grid_overrides, Loading @@ -13,7 +13,7 @@ from prs.prs_compute_integrated_fluxes_and_ratios import main as prs_main from prs.prs_inspect_results import main as prs_inspection_main def compute_grid(tdust, nh2, line_pairs, density_keyword): def compute_grid(tdust, nh2, line, density_keyword): scratch_dir = os.path.join('mdl', 'scratches', str(uuid.uuid4())) overrides = { 'grid': { Loading @@ -24,9 +24,6 @@ def compute_grid(tdust, nh2, line_pairs, density_keyword): tarname = stg_main(override_config=overrides, path_radmc_files=scratch_dir, run_id=run_id) for line_pair in line_pairs: cube_fits = [] for line in line_pair: mdl_overrides = { 'grid_lines': overrides, 'model': { Loading @@ -35,12 +32,11 @@ def compute_grid(tdust, nh2, line_pairs, density_keyword): } } } cube_fits.append(execute_radmc_script(grid_tarfile=tarname, cube_fits_name = execute_radmc_script(grid_tarfile=tarname, override_config=mdl_overrides, radmc_input_path=scratch_dir, run_id=run_id)) prs_main(cube_fits_list=cube_fits, run_id=run_id) return nh2, tdust, line, cube_fits_name def build_model_grid(run_id: str, Loading @@ -56,13 +52,25 @@ def build_model_grid(run_id: str, config=config) densities = parse_grid_overrides(par_name='gas_density', config=config) lines = config['overrides']['lines_to_process'] line_pairs = config['overrides']['lines_to_process'] line_set = set(chain.from_iterable(line_pairs)) density_keyword = 'central_density' if _model_type == 'homogeneous' else 'density_at_reference' parallel_args = product(dust_temperatures, densities, [lines], [density_keyword]) parallel_args = product(dust_temperatures, densities, line_set, [density_keyword]) with Pool(8) as pool: pool.starmap(compute_grid, parallel_args) results = pool.starmap(compute_grid, parallel_args) results_map = {} for (nh2, tdust, line, cube_fits_name) in results: results_map[f'{str(nh2)}_{str(tdust)}_{line}'] = cube_fits_name for line_pair in line_pairs: for tdust, nh2 in product(dust_temperatures, densities): prs_main(cube_fits_list=[results_map[f'{str(nh2)}_{str(tdust)}_{line_pair[0]}'], results_map[f'{str(nh2)}_{str(tdust)}_{line_pair[1]}']], run_id=run_id) if cleanup_scratches is True: scratches_dirs = glob.glob(os.path.join('mdl', 'scratches', '*')) for scratches in scratches_dirs: Loading
etl/mdl/mdl_execute_radmc_command.py +0 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,6 @@ import os import sys from itertools import product from typing import Union import sqlalchemy from astropy import units as u from datetime import datetime Loading