-
Notifications
You must be signed in to change notification settings - Fork 3
/
model_tasks.py
67 lines (48 loc) · 2.62 KB
/
model_tasks.py
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
import datetime
import os
from util.pre_util import copy_model_files, generate_rainfall, update_model_files, update_model, csv_to_dss, copy_distributed_model_files, update_distributed_model_files
from util.post_util import dss_to_csv
from util.post_util import discharge_file_exists
from util.run_util import run_model
from upload_discharge import upload_data_to_db
def init_hec_hms_models(run_name, run_datetime, init_state, run_model='single'):
run_date = datetime.datetime.strptime(run_datetime, '%Y-%m-%d %H:%M:%S')
if run_model == 'single':
print('single')
init_single(run_name, run_date, init_state)
elif run_model == 'distributed':
print('distributed')
def init_hec_hms_models_rf_gen(run_name, run_date, init_state, backward, forward):
copy_model_files(run_name, run_date)
generate_rainfall(run_name, run_date, backward, forward)
update_model_files(run_name, run_date, init_state)
update_model(run_name, run_date)
csv_to_dss(run_name, run_date)
def init_single(run_name, folder_date, init_state):
print('init_single')
copy_model_files(run_name, folder_date)
update_model_files(run_name, folder_date, init_state)
update_model(run_name, folder_date)
csv_to_dss(run_name, folder_date)
def init_distributed(run_name, folder_date, init_state):
print('init_distributed')
copy_distributed_model_files(run_name, folder_date)
update_distributed_model_files(run_name, folder_date, init_state)
def run_hec_hms_model(run_name, run_datetime):
run_date = datetime.datetime.strptime(run_datetime, '%Y-%m-%d %H:%M:%S')
run_model(run_name, run_date)
def post_model(run_name, run_datetime):
run_date = datetime.datetime.strptime(run_datetime, '%Y-%m-%d %H:%M:%S')
dss_to_csv(run_name, run_date)
def discharge_file_exists(run_name, run_datetime, path_prefix):
run_date = datetime.datetime.strptime(run_datetime, '%Y-%m-%d %H:%M:%S')
discharge_file_exists(run_name, run_date, path_prefix)
def upload_discharge_data_to_db(run_name, run_datetime, path_prefix, force_insert=False):
run_date = datetime.datetime.strptime(run_datetime, '%Y-%m-%d %H:%M:%S')
date_str = run_date.strftime("%Y-%m-%d")
discharge_file = os.path.join(path_prefix, date_str, run_name, 'output/DailyDischarge.csv')
upload_data_to_db(run_datetime, discharge_file, run_name, force_insert)
def upload_discharge(run_name, run_date, path_prefix, force_insert=False):
date_str = run_date.strftime("%Y-%m-%d")
discharge_file = os.path.join(path_prefix, date_str, run_name, 'output/DailyDischarge.csv')
upload_data_to_db(run_date, discharge_file, run_name, force_insert)