diff --git a/Common/timetools.py b/Common/timetools.py new file mode 100644 index 0000000000000000000000000000000000000000..0a91d59c912b19863191f619e734d6477f1cc273 --- /dev/null +++ b/Common/timetools.py @@ -0,0 +1,13 @@ +from datetime import datetime, timedelta + +def periodic_date_generator(filename, start_date, end_date, step): + start_date = start_date.split('-') + start_date = datetime(int(start_date[0]),int(start_date[1]),int(start_date[2])) + end_date = end_date.split('-') + end_date = datetime(int(end_date[0]),int(end_date[1]),int(end_date[2])) + d = start_date + step = timedelta(days=step) + with open(filename, 'w') as f: + while d < end_date : + f.write(d.strftime('%Y%m%d')+'\n') + d += step diff --git a/moringa.py b/moringa.py index 6d56116b19712317d0425a24f9b9ade36dda98ff..a29819e830257d14157d0919e7be9964f4cc12e7 100755 --- a/moringa.py +++ b/moringa.py @@ -1,5 +1,6 @@ import sys import argparse +from Common.timetools import periodic_date_generator from Workflows.basic import basic from Workflows.operations import * @@ -80,6 +81,13 @@ def main(args): chain.add_argument("--runlevel", type=int, default=1, help="Starting step of the chain to process.") chain.add_argument("--single_step", action="store_true", help="Stop after a single step is processed.") + dategen = subpar.add_parser("gen_date_file", help="Generate an output date file for classic gapfilling.", + formatter_class=argparse.ArgumentDefaultsHelpFormatter) + dategen.add_argument("output_file", type=str, help="Path to the output date file.") + dategen.add_argument("start_date", type=str, help="Start date in YYYY-MM-DD format.") + dategen.add_argument("end_date", type=str, help="End date in YYYY-MM-DD format.") + dategen.add_argument("step", type=int, help="Number of days between two dates.") + if len(args) == 1: parser.print_help() sys.exit(0) @@ -115,6 +123,9 @@ def main(args): else: raise ValueError('Workflow not implemented.') + if arg.cmd == "gen_date_file": + periodic_date_generator(arg.output_file, arg.start_date, arg.end_date, arg.step) + return 0 if __name__ == "__main__":