Commit 7c2e9cdf authored by Ambra Di Piano's avatar Ambra Di Piano
Browse files

simulator base

parent 5e7bd53c
Loading
Loading
Loading
Loading
+30 −11
Original line number Diff line number Diff line
@@ -10,23 +10,42 @@ import argparse
from os import makedirs
from rtasci.lib.RTACtoolsSimulation import RTACtoolsSimulation
from astrort.utils.wrap import load_yaml_conf, configure_simulator_no_visibility
from astrort.configure.logging import set_logger

def base_simulator(configuration_file):
    configuration = load_yaml_conf(configuration_file)
    log = set_logger(configuration['logging']['level'])
    # create output dir
    log.info(f"Creating {configuration['simulator']['output']}")
    makedirs(configuration['simulator']['output'], exist_ok=True)
    
    # start simulations
    print(f"\n {'-'*17} \n| START SIMULATOR | \n {'-'*17} \n")
    for i in range(configuration['simulator']['samples']):
        simulator = RTACtoolsSimulation()
        configuration['simulator']['seed'] += i
        simulator = configure_simulator_no_visibility(simulator, configuration['simulator'])
        simulator.run_simulation()
        print(f"Simulation (seed = {configuration['simulator']['seed']}) complete")
        del simulator
    # end simulations
    print(f"\n {'-'*17} \n| STOP SIMULATOR | \n {'-'*17} ")


def main():
def slurm_submission(configuration_file):
    return

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='')
    parser.add_argument('-f', '--configuration', type=str, required=True, help="Path of yaml configuration file")
    parser.add_argument('-n', '--nodes', type=int, default=0, help='Number of slurm nodes to occupy for submission, if unset it will not submit to slurm' )
    args = parser.parse_args()

    configutation = load_yaml_conf(args.configuration)
    makedirs(configutation['simulator']['output'], exist_ok=True)

    simulator = RTACtoolsSimulation()
    for i in range(configutation['simulator']['samples']):
        configutation['simulator']['seed'] += i
        simulator = configure_simulator_no_visibility(simulator, configutation['simulator'])
        simulator.run_simulation()

if __name__ == '__main__':
    main()
    if args.nodes == 0:
        base_simulator(args.configuration)
    else:
        slurm_submission(args.configuration)