Commit 499cfb4a authored by Andrea Giannetti's avatar Andrea Giannetti
Browse files

Multiple ratios can be computed in one run.

parent 7bc4ac0b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -6,4 +6,4 @@ overrides:
    gas_density_limits: [1e4, 1e8]
    gas_density_step: 10
    gas_density_unit: cm^-3
    lines_to_process: ['87', '86']
    lines_to_process: [['87', '86'], ['88', '87'], ['257', '256'], ['381', '380']]
+17 −16
Original line number Diff line number Diff line
@@ -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, lines, density_keyword):
def compute_grid(tdust, nh2, line_pairs, density_keyword):
    scratch_dir = os.path.join('mdl', 'scratches', str(uuid.uuid4()))
    overrides = {
        'grid': {
@@ -24,8 +24,9 @@ def compute_grid(tdust, nh2, lines, 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 lines:
        for line in line_pair:
            mdl_overrides = {
                'grid_lines': overrides,
                'model': {
@@ -60,7 +61,7 @@ def build_model_grid(run_id: str,
    density_keyword = 'central_density' if _model_type == 'homogeneous' else 'density_at_reference'

    parallel_args = product(dust_temperatures, densities, [lines], [density_keyword])
    with Pool(4) as pool:
    with Pool(8) as pool:
        pool.starmap(compute_grid, parallel_args)
    if cleanup_scratches is True:
        scratches_dirs = glob.glob(os.path.join('mdl', 'scratches', '*'))
+12 −10
Original line number Diff line number Diff line
@@ -53,7 +53,7 @@ def main():
                                                 config=config)
        central_densities = parse_grid_overrides(par_name='gas_density',
                                                 config=config)
        lines = config['overrides']['lines_to_process']
        line_pairs = config['overrides']['lines_to_process']

        results = xr.DataArray(np.empty(shape=[len(dust_temperatures), len(central_densities)]),
                               dims=('dust_temperature', 'gas_density'),
@@ -61,6 +61,7 @@ def main():
                                   'dust_temperature': dust_temperatures,
                                   'gas_density': central_densities
                               })
        for lines in line_pairs:
            for (tdust, nh2) in product(dust_temperatures, central_densities):
                aggregated_ratio = get_aggregated_ratio_from_db(dust_temperature=tdust,
                                                                gas_density=nh2,
@@ -70,6 +71,7 @@ def main():
                logger.debug(f'The aggregated ratio for lines {lines}, using {nh2}, {tdust} is: {aggregated_ratio}')
            results.plot(x='dust_temperature', y='gas_density', yscale='log')
            plt.savefig(os.path.join('prs', 'output', f'ratio_grid_lines_{"-".join(lines)}.png'))
            plt.clf()


if __name__ == '__main__':