From 6f592a55c1f72da43fddd6e7e7ecf21bc60ce28e Mon Sep 17 00:00:00 2001 From: Aki Tsuruta <Aki.Tsuruta@fmi.fi> Date: Sun, 5 Feb 2017 19:53:56 +0000 Subject: [PATCH] --- da/tm5/methaneobservationoperator.py | 91 ++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100755 da/tm5/methaneobservationoperator.py diff --git a/da/tm5/methaneobservationoperator.py b/da/tm5/methaneobservationoperator.py new file mode 100755 index 00000000..394d6939 --- /dev/null +++ b/da/tm5/methaneobservationoperator.py @@ -0,0 +1,91 @@ +#!/usr/bin/env python +# tm5_tools.py + +""" +Author : Aki + +File created on Feb 2010. +""" + +import os +import sys +import logging +import shutil +import datetime +import subprocess +from string import join +import glob +sys.path.append(os.getcwd()) +sys.path.append("../../") + +import da.tools.rc as rc +from da.tools.general import create_dirs, to_datetime +from da.baseclasses.observationoperator import ObservationOperator +from da.tm5.observationoperator import TM5ObservationOperator + +def validate_rc_methane(self): + """ + Validate the contents of the tm_settings dictionary and add extra values. The required items for the TM5 rc-file + are specified in the tm5_tools module, as dictionary variable "needed_rc_items". + """ + + if self.rcfiletype == 'pycasso': + self.projectkey = 'my.project.dir' + self.rundirkey = 'my.run.dir' + self.outputdirkey = 'output.dir' + self.savedirkey = 'restart.write.dir' + self.timestartkey = 'timerange.start' + self.timefinalkey = 'timerange.end' + self.timelengthkey = 'jobstep.length' + self.istartkey = 'istart' + self.restartvalue = 33 + self.coldstartvalue = 5 #Aki: read from mmix file + self.transitionvalue = 61 + self.mysourcedirs = 'my.source.dirs' + self.addedsourcedirs = ' proj/levels/ml91/trunk proj/levels/ml91/tropo34/trunk' + else: + self.projectkey = 'runid' + self.rundirkey = 'rundir' + self.outputdirkey = 'outputdir' + self.savedirkey = 'savedir' + self.timestartkey = 'time.start' + self.timefinalkey = 'time.final' + self.timelengthkey = 'time.break.nday' + self.istartkey = 'istart' + self.restartvalue = 3 + self.coldstartvalue = 9 + self.transitionvalue = 61 + + needed_rc_items = [ + self.projectkey, + self.rundirkey, + self.outputdirkey, + self.savedirkey, + self.timestartkey, + self.timefinalkey, + self.timelengthkey, + self.istartkey + ] + + for k, v in self.tm_settings.iteritems(): + if v == 'True' : self.tm_settings[k] = True + if v == 'False': self.tm_settings[k] = False + if 'date' in k : self.tm_settings[k] = to_datetime(v) + if 'time.start' in k : + self.tm_settings[k] = to_datetime(v, fmt='TM5') + if 'time.final' in k : + self.tm_settings[k] = to_datetime(v, fmt='TM5') + if 'timerange.start' in k : + self.tm_settings[k] = to_datetime(v) + if 'timerange.end' in k : + self.tm_settings[k] = to_datetime(v) + + for key in needed_rc_items: + if not self.tm_settings.has_key(key): + msg = 'Missing a required value in rc-file : %s' % key + logging.error(msg) + raise IOError, msg + logging.debug('rc-file has been validated succesfully') + +TM5ObservationOperator.validate_rc = validate_rc_methane + -- GitLab