HWRF  trunk@4391
exhwrf_final_merge.py
1 #! /usr/bin/env python
2 
3 import logging, os, sys, produtil.log, produtil.setup
4 from produtil.log import jlogger
5 
6 def fail(msg):
7  jlogger.error(msg)
8  sys.exit(2)
9 
10 def main():
11 
12  jlogger.info('HWRF Final Merge is starting.')
13  import hwrf_expt
15  conf=hwrf_expt.conf
16  logger=hwrf_expt.conf.log('exhwrf_final_merge')
17 
18  # Some Basic Checks before we run final merge ....
19  run_multistorm=conf.getbool('config','run_multistorm',False)
20  fakestormid=conf.getstr('config','fakestormid','nofakeid')
21  stormid=conf.getstr('config','STID','nostid')
22  multistorm_sids=conf.getstr('config','multistorm_sids','nosids')
23 
24  if not run_multistorm:
25  fail("CAN NOT Run Final Merge. Set 'run_multistorm=yes' in" + \
26  " hwrf_basic.conf and then run launcher task.")
27  elif stormid=='nostid':
28  logger.error("ERROR: Final Merge no 'STID' defined.")
29  sys.exit(1)
30  elif fakestormid=='nofakeid':
31  logger.error("ERROR: Final Merge no 'fakestormid' defined in conf file.")
32  sys.exit(1)
33  # Plans are to run multistorm with 0 or 1 storms ...
34  # in the future. So pull this check when appropriate.
35  elif multistorm_sids=='nosids':
36  logger.error("ERROR: Final Merge no 'multistorm_sids' defined in conf file.")
37  sys.exit(1)
38  elif not fakestormid.upper() == stormid.upper():
39  logger.error("ERROR: Final merge can only run on "
40  "your defined 'fakestormid': %s. This is "
41  "'STID' %s"%(fakestormid, stormid))
42  sys.exit(1)
43  else:
44  jlogger.info('Basic Final Merge Checks passed. Proceed with Running Final Merge.')
45 
46  hwrf_expt.finalmerge.run()
47 
48  jlogger.info('Final Merge has completed.')
49 
50 
51 if __name__=='__main__':
52  try:
54  main()
55  except Exception as e:
56  jlogger.critical('HWRF final merge is aborting: '+str(e),exc_info=True)
57  sys.exit(2)
def main()
Based on the configuration, write an ensda flag file that will either request, or not request...
Contains setup(), which initializes the produtil package.
Definition: setup.py:1
def init_module
Initializes the HWRF object structure.
Definition: hwrf_expt.py:384
def setup(ignore_hup=False, dbnalert_logger=None, jobname=None, cluster=None, send_dbn=None, thread_logger=False, thread_stack=2 **24, kwargs)
Initializes the produtil package.
Definition: setup.py:15
Configures logging.
Definition: log.py:1