forked from Global-Flood-Assessment/MoMProduction
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMoM_run.py
More file actions
103 lines (86 loc) · 2.08 KB
/
MoM_run.py
File metadata and controls
103 lines (86 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
"""
main script to run various MoM processing jobs
"""
prolog = """
**PROGRAM**
MoM_run.py
**PURPOSE**
main script to run various MoM processing jobs
**USAGE**
"""
epilog = """
**EXAMPLE**
MoM_run.py
"""
import argparse
import logging
from DFO_MoM import batchrun_DFO_MoM
from DFO_tool import DFO_cron
from GFMS_tool import GFMS_cron, GFMS_fixdate
from HWRF_MoM import batchrun_HWRF_MoM
from HWRF_tool import HWRF_cron
from settings import *
from VIIRS_MoM import batchrun_VIIRS_MoM
from VIIRS_tool import VIIRS_cron
def _getParser():
parser = argparse.ArgumentParser(
description=prolog,
epilog=epilog,
formatter_class=argparse.RawDescriptionHelpFormatter,
)
joblist = ["GFMS", "HWRF", "HWRF_MOM", "DFO", "DFO_MOM", "VIIRS", "VIIRS_MOM"]
parser.add_argument(
"-j",
"--job",
action="store",
type=str.upper,
dest="job",
required=True,
help="run a job",
choices=joblist,
)
parser.add_argument(
"-fd",
"--fixdate",
action="store",
dest="adate",
required=False,
help="fix a date",
)
return parser
def run_job(cronjob):
"""run various cron job"""
logging.info("run " + cronjob)
if cronjob == "GFMS":
GFMS_cron()
elif cronjob == "HWRF":
HWRF_cron()
batchrun_HWRF_MoM()
elif cronjob == "DFO":
DFO_cron()
batchrun_DFO_MoM()
elif cronjob == "VIIRS":
VIIRS_cron()
batchrun_VIIRS_MoM()
else:
return
def run_fixdate(cronjob, adate):
"""run fixdate funtion"""
logging.info("run fixdate {} {}".format(cronjob, adate))
if cronjob == "GFMS":
GFMS_fixdate(adate)
elif cronjob == "VIIRS":
VIIRS_cron(adate)
else:
return
def main():
"""execute momjob"""
# Read command line arguments
parser = _getParser()
results = parser.parse_args()
if results.adate:
run_fixdate(results.job, results.adate)
else:
run_job(results.job)
if __name__ == "__main__":
main()