Skip to content
Extraits de code Groupes Projets
create_experiment.py 2,88 ko
Newer Older
  • Learn to ignore specific revisions
  • 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
    
    def create_experiment(version, configuration, name, start_date, end_date,
    
      restart_frequency=models.nemo.utilities.generic.DEFAULT_VALUE_RESTART_FREQUENCY,
    
      start_from=models.nemo.utilities.base_experiment_plan.START_FROM_REST,
    
      restart_name=None, restart_date=None, rebuilt_restart=False):
    
      Create a new experiment.
    
    Antoine Barthélemy's avatar
    Antoine Barthélemy a validé
      print('Creating experiment "%s", in configuration "%s", in version "%s"...\n'%(name,
    
        configuration, version))
    
    
      # create and setup the experiment
    
      experiment = models.nemo.utilities.experiment.Experiment(version=version,
    
        configuration=configuration, name=name)
    
      # 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,
    
      experiment_plan.set_start_information(start_from=start_from, restart_name=restart_name,
        restart_date=restart_date, rebuilt_restart=rebuilt_restart)
    
    Antoine Barthélemy's avatar
    Antoine Barthélemy a validé
      experiment_plan.write()
    
    
    
    #################
    # main function #
    #################
    
    def main():
    
      parser = argparse.ArgumentParser(description=create_experiment.__doc__,
        formatter_class=argparse.RawTextHelpFormatter)
    
      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())
    
    
        arguments['version'], arguments['configuration'] = (
    
          models.nemo.utilities.global_information.get_version_and_configuration(
    
          tentative_version=arguments['version'], tentative_configuration=arguments['configuration']))
    
      except utilities.generic.ClimateToolboxException as e:
    
        create_experiment(**arguments)
    
      except utilities.generic.ClimateToolboxException as e: