|
@@ -4,6 +4,7 @@ import pandas as p
|
4
|
4
|
import statsmodels.formula.api as smf
|
5
|
5
|
import datetime as dt
|
6
|
6
|
import pickle
|
|
7
|
+from sys import stdout
|
7
|
8
|
from pymodels import thirtyoffset, predweather, harmonic
|
8
|
9
|
from pprint import pprint
|
9
|
10
|
from util import datevalid
|
|
@@ -41,8 +42,7 @@ def main():
|
41
|
42
|
required=False,
|
42
|
43
|
type=FileType('rb'))
|
43
|
44
|
parser.add_argument("-o", "--output", dest="output_file",
|
44
|
|
- help="file to save result",
|
45
|
|
- required=True, type=FileType('w'))
|
|
45
|
+ help="file to save result (default stdout)")
|
46
|
46
|
parser.add_argument("-t", "--temperature", dest="temp",
|
47
|
47
|
help = "min and max temperature, if not using "
|
48
|
48
|
"weather dataset, e.g. 2.0 10.5",
|
|
@@ -50,13 +50,13 @@ def main():
|
50
|
50
|
type=float, nargs=2)
|
51
|
51
|
parser.add_argument("-s", "--start-date",
|
52
|
52
|
dest = "startdate",
|
53
|
|
- help = "start date for prediction; format: YYYY-MM-DD; default: 2018-01-01",
|
|
53
|
+ help = "start date for prediction; format: YYYY-MM-DD",
|
54
|
54
|
metavar="START_DATE",
|
55
|
55
|
required = True,
|
56
|
56
|
type = datevalid)
|
57
|
57
|
parser.add_argument("-e", "--end-date",
|
58
|
58
|
dest = "enddate",
|
59
|
|
- help = "end date for prediction; format: YYYY-MM-DD; default: 2018-02-01",
|
|
59
|
+ help = "end date for prediction; format: YYYY-MM-DD",
|
60
|
60
|
metavar="END_DATE",
|
61
|
61
|
required = True,
|
62
|
62
|
type = datevalid)
|
|
@@ -65,9 +65,10 @@ def main():
|
65
|
65
|
help = "cluster to predict for",
|
66
|
66
|
type = int,
|
67
|
67
|
required = True)
|
68
|
|
- parser.add_argument("--csv",
|
69
|
|
- help="output as csv",
|
70
|
|
- action="store_true")
|
|
68
|
+ parser.add_argument("--pkl",
|
|
69
|
+ help="output as pkl rather than csv",
|
|
70
|
+ dest = "csv",
|
|
71
|
+ action="store_false")
|
71
|
72
|
args = parser.parse_args()
|
72
|
73
|
|
73
|
74
|
if args.temp is None and args.weather_file is None:
|
|
@@ -79,6 +80,9 @@ def main():
|
79
|
80
|
if args.cluster not in mods["clusters"]:
|
80
|
81
|
parser.error(f"cluster ('{args.cluster}') not in model")
|
81
|
82
|
|
|
83
|
+ if args.output_file is None or args.output_file == "-":
|
|
84
|
+ args.output_file = stdout
|
|
85
|
+
|
82
|
86
|
wdat = []
|
83
|
87
|
|
84
|
88
|
if args.weather_file is not None:
|