Index: wflow-py/Scripts/pcr2netcdf.py =================================================================== diff -u -r0171e35884ddb86a9eb8614d8162999700954e38 -rced522d9cb1398cc92a7bbbcc69d23b88708d088 --- wflow-py/Scripts/pcr2netcdf.py (.../pcr2netcdf.py) (revision 0171e35884ddb86a9eb8614d8162999700954e38) +++ wflow-py/Scripts/pcr2netcdf.py (.../pcr2netcdf.py) (revision ced522d9cb1398cc92a7bbbcc69d23b88708d088) @@ -26,7 +26,7 @@ -S startdate in "%d-%m-%Y %H:%M:%S" e.g. 31-12-1990 00:00:00 -E endDate in "%d-%m-%Y %H:%M:%S" -s startstep (in the mapstack, default = 1) - -Y Do not make seperate files per year + -Y Make seperate files per year -P set the EPSG string. default: "EPSG:4326" -N Mapstack-name (prefix) You can sepcify multiple input mapstack to merge them into one netcdf @@ -320,17 +320,17 @@ print "ERROR: Failed to initialize logger with logfile: " + logfilename sys.exit(2) -def date_range(start, end, tdelta="days"): +# def date_range(start, end, tdelta="days"): +# +# +# +# if tdelta == "days": +# r = (end+dt.timedelta(days=1)-start).days +# return [start+dt.timedelta(days=i) for i in range(r)] +# else: +# r = (end+dt.timedelta(days=1)-start).days * 24 +# return [start+dt.timedelta(hours=i) for i in range(r)] - - - if tdelta == "days": - r = (end+dt.timedelta(days=1)-start).days - return [start+dt.timedelta(days=i) for i in range(r)] - else: - r = (end+dt.timedelta(days=1)-start).days * 24 - return [start+dt.timedelta(hours=i) for i in range(r)] - def date_range_peryear(start, end, tdelta="days"): ret = [] @@ -346,6 +346,11 @@ return ret +def date_range(start, end, timestepsecs): + r = int((end + dt.timedelta(seconds=timestepsecs) - start).total_seconds()/timestepsecs) + return [start + dt.timedelta(seconds=(timestepsecs * i)) for i in range(r)] + + def main(argv=None): """ Perform command line execution of the model. @@ -377,7 +382,7 @@ zlib=True least_significant_digit=None startstep = 1 - perYear = True + perYear = False if argv is None: argv = sys.argv[1:] if len(argv) == 0: @@ -393,13 +398,14 @@ for o, a in opts: if o == '-S': startstr = a - if o == '-s': startstep = int(a) + if o == '-s': + startstep = int(a) if o == '-E': endstr = a if o == '-O': ncoutfile = a if o == '-c': inifile = a if o == '-I': mapstackfolder = a if o == '-b': mbuf = int(a) - if o == '-Y': perYear = False + if o == '-Y': perYear = True if o == '-z': zlib=True if o == '-P': EPSG = a if o == '-F': Format=a @@ -432,12 +438,12 @@ if perYear: timeList = date_range_peryear(start, end, tdelta="days") else: - timeList = date_range(start, end, tdelta="days") + timeList = date_range(start, end, timestepsecs) else: if perYear: timeList = date_range_peryear(start, end, tdelta="hours") else: - timeList = date_range(start, end, tdelta="hours") + timeList = date_range(start, end,timestepsecs) if os.path.exists(inifile): inimetadata = getnetcdfmetafromini(inifile)