Newer
Older
Antoine Barthélemy
a validé
import utilities.generic
Antoine Barthélemy
a validé
import models.nemo.utilities.generic
import models.nemo.utilities.experiment
import models.nemo.utilities.experiment_plan
import models.nemo.utilities.argument_parser
import models.nemo.utilities.global_information
import models.nemo.utilities.base_experiment_plan
#############
# functions #
#############
def create_experiment(version, configuration, name, start_date, end_date,
Antoine Barthélemy
a validé
restart_frequency=models.nemo.utilities.generic.DEFAULT_VALUE_RESTART_FREQUENCY,
start_from=models.nemo.utilities.base_experiment_plan.START_FROM_REST,
Antoine Barthélemy
a validé
restart_name=None, restart_date=None, rebuilt_restart=False):
print('Creating experiment "%s", in configuration "%s", in version "%s"...\n'%(name,
# create and setup the experiment
Antoine Barthélemy
a validé
experiment = models.nemo.utilities.experiment.Experiment(version=version,
configuration=configuration, name=name)
experiment.setup()
Antoine Barthélemy
a validé
# create the experiment plan
experiment_plan = models.nemo.utilities.experiment_plan.ExperimentPlan(experiment=experiment)
experiment_plan.generate_legs(start_date=start_date, end_date=end_date,
Antoine Barthélemy
a validé
restart_frequency=restart_frequency)
Antoine Barthélemy
a validé
experiment_plan.set_start_information(start_from=start_from, restart_name=restart_name,
restart_date=restart_date, rebuilt_restart=rebuilt_restart)
#################
# main function #
#################
def main():
parser = argparse.ArgumentParser(description=create_experiment.__doc__,
formatter_class=argparse.RawTextHelpFormatter)
Antoine Barthélemy
a validé
models.nemo.utilities.argument_parser.add_argument_version(parser=parser, required=False)
models.nemo.utilities.argument_parser.add_argument_configuration(parser=parser, required=False)
models.nemo.utilities.argument_parser.add_argument_name(parser=parser)
models.nemo.utilities.argument_parser.add_argument_start_date(parser=parser)
models.nemo.utilities.argument_parser.add_argument_end_date(parser=parser)
models.nemo.utilities.argument_parser.add_argument_restart_frequency(parser=parser)
models.nemo.utilities.argument_parser.add_argument_start_from(parser=parser)
models.nemo.utilities.argument_parser.add_argument_restart_name(parser=parser)
models.nemo.utilities.argument_parser.add_argument_restart_date(parser=parser)
models.nemo.utilities.argument_parser.add_argument_rebuilt_restart(parser=parser)
arguments = vars(parser.parse_args())
Antoine Barthélemy
a validé
arguments['version'], arguments['configuration'] = (
Antoine Barthélemy
a validé
models.nemo.utilities.global_information.get_version_and_configuration(
Antoine Barthélemy
a validé
tentative_version=arguments['version'], tentative_configuration=arguments['configuration']))
Antoine Barthélemy
a validé
except utilities.generic.ClimateToolboxException as e:
create_experiment(**arguments)
Antoine Barthélemy
a validé
except utilities.generic.ClimateToolboxException as e:
if __name__ == '__main__':
main()