mg-pso-gui 0.1.18__tar.gz → 0.1.20__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/PKG-INFO +1 -1
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mg_pso_gui.egg-info/PKG-INFO +1 -1
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mg_pso_gui.egg-info/SOURCES.txt +0 -1
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/HomePage.py +38 -77
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/util/GraphGenerator.py +3 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/util/PSORunner.py +39 -76
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/setup.py +1 -1
- mg-pso-gui-0.1.18/mgpsogui/trace.json +0 -472
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mg_pso_gui.egg-info/dependency_links.txt +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mg_pso_gui.egg-info/entry_points.txt +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mg_pso_gui.egg-info/requires.txt +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mg_pso_gui.egg-info/top_level.txt +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/__init__.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/OptionManager.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/PlatformTab/PlatformTab.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/PlatformTab/__init__.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/RunTab/RunTab.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/RunTab/__init__.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/SetupTab/BoundsEditorWindow.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/SetupTab/BoundsList.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/SetupTab/CalibrationParametersView.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/SetupTab/FunctionsList.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/SetupTab/ListParametersView.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/SetupTab/SetupTab.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/SetupTab/StaticParameterView.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/SetupTab/StepView.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/SetupTab/__init__.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/VisualizeTab/VisualizeTab.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/VisualizeTab/__init__.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/__init__.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/images/IGOW 4 Logo.png +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/images/collapse.png +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/images/down.png +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/images/expand.png +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/images/play.png +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/images/refresh.png +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/images/refresh_hd.png +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/images/stop.png +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/images/test.png +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/images/trash.png +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/gui/images/up.png +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/mgpsogui.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/start.yaml +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/util/CTkToolTip/__init__.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/util/CTkToolTip/ctk_tooltip.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/util/__init__.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/util/recosu/__init__.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/util/recosu/pso/__init__.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/util/recosu/pso/csip_access.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/util/recosu/pso/pso.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/util/recosu/utils/__init__.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/util/recosu/utils/plot/__init__.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/util/recosu/utils/plot/cost_steps.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/util/recosu/utils/trace_writer.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/mgpsogui/util/recosu/utils/utils.py +0 -0
- {mg-pso-gui-0.1.18 → mg-pso-gui-0.1.20}/setup.cfg +0 -0
|
@@ -70,8 +70,11 @@ class App(customtkinter.CTk):
|
|
|
70
70
|
self.data_x = [0]
|
|
71
71
|
self.data_y = [0]
|
|
72
72
|
|
|
73
|
+
self.image_scale = 1
|
|
73
74
|
self.image_width = 1280
|
|
74
75
|
self.image_height = 720
|
|
76
|
+
self.progress_data = None
|
|
77
|
+
self.calibration_data = None
|
|
75
78
|
|
|
76
79
|
# configure window
|
|
77
80
|
self.title("CSIP PSO")
|
|
@@ -155,7 +158,7 @@ class App(customtkinter.CTk):
|
|
|
155
158
|
play_image = customtkinter.CTkImage(Image.open(os.path.join("./images", "play.png")), size=(20, 20))
|
|
156
159
|
self.run_button = customtkinter.CTkButton(self.footer_frame, text=None, width=30, image=play_image, command=self.run)
|
|
157
160
|
ctt(self.run_button, delay=0.1, alpha=0.95, message="Start Calibration")
|
|
158
|
-
self.run_button.grid(row=0, column=7, padx=(
|
|
161
|
+
self.run_button.grid(row=0, column=7, padx=(20, 5), pady=header_padding_y)
|
|
159
162
|
|
|
160
163
|
test_image = customtkinter.CTkImage(Image.open(os.path.join("./images", "test.png")), size=(20, 20))
|
|
161
164
|
self.test_button = customtkinter.CTkButton(self.footer_frame, text=None, width=30, image=test_image, command=self.run)
|
|
@@ -172,7 +175,7 @@ class App(customtkinter.CTk):
|
|
|
172
175
|
ctt(self.download_button, delay=0.1, alpha=0.95, message="Download Results")
|
|
173
176
|
self.download_button.grid(row=0, column=10, padx=(5, 20), pady=header_padding_y)
|
|
174
177
|
|
|
175
|
-
def _resize_image(self, event):
|
|
178
|
+
'''def _resize_image(self, event):
|
|
176
179
|
self.graph_label.update_idletasks()
|
|
177
180
|
new_width = self.graph_label.winfo_width()
|
|
178
181
|
new_height = self.graph_label.winfo_height()
|
|
@@ -190,10 +193,7 @@ class App(customtkinter.CTk):
|
|
|
190
193
|
|
|
191
194
|
self.graph_image = customtkinter.CTkImage(self.graph_image_obj, size=(new_width, new_height))
|
|
192
195
|
self.graph_label.configure(image=self.graph_image)
|
|
193
|
-
self.graph_label.update_idletasks()
|
|
194
|
-
|
|
195
|
-
def callback_test(self, *args):
|
|
196
|
-
print("callback_test called")
|
|
196
|
+
self.graph_label.update_idletasks()'''
|
|
197
197
|
|
|
198
198
|
def update_graph(self, value):
|
|
199
199
|
selected_graph = self.graph_selector_value.get()
|
|
@@ -205,39 +205,30 @@ class App(customtkinter.CTk):
|
|
|
205
205
|
|
|
206
206
|
if (selected_graph == "Best Cost Stacked"):
|
|
207
207
|
self.selected_graph_name = "best_cost_stacked"
|
|
208
|
-
image_path = os.path.join(folder, self.selected_graph_name + ".png")
|
|
209
|
-
if not os.path.exists(image_path):
|
|
210
|
-
image_path = os.path.join("./images", "up.png")
|
|
211
|
-
self.graph_image_obj = Image.open(image_path)
|
|
212
|
-
self.graph_image = customtkinter.CTkImage(self.graph_image_obj, size=(self.image_width, self.image_height))
|
|
213
|
-
self.graph_label.configure(image=self.graph_image)
|
|
214
208
|
elif (selected_graph == "Best Cost by Round"):
|
|
215
209
|
self.selected_graph_name = "best_cost_by_round"
|
|
216
|
-
image_path = os.path.join(folder, self.selected_graph_name + ".png")
|
|
217
|
-
if not os.path.exists(image_path):
|
|
218
|
-
image_path = os.path.join("./images", "up.png")
|
|
219
|
-
self.graph_image_obj = Image.open(image_path)
|
|
220
|
-
self.graph_image = customtkinter.CTkImage(self.graph_image_obj, size=(self.image_width, self.image_height))
|
|
221
|
-
self.graph_label.configure(image=self.graph_image)
|
|
222
210
|
elif (selected_graph == "Iteration Table"):
|
|
223
211
|
self.selected_graph_name = "table"
|
|
224
|
-
image_path = os.path.join(folder, self.selected_graph_name + ".png")
|
|
225
|
-
if not os.path.exists(image_path):
|
|
226
|
-
image_path = os.path.join("./images", "up.png")
|
|
227
|
-
self.graph_image_obj = Image.open(image_path)
|
|
228
|
-
self.graph_image = customtkinter.CTkImage(self.graph_image_obj, size=(self.image_width, self.image_height))
|
|
229
|
-
self.graph_label.configure(image=self.graph_image)
|
|
230
212
|
elif (selected_graph == "Calibrated Parameters"):
|
|
231
213
|
self.selected_graph_name = "calibrated_params_by_round"
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
214
|
+
|
|
215
|
+
image_path = os.path.join(folder, self.selected_graph_name + ".png")
|
|
216
|
+
if not os.path.exists(image_path):
|
|
217
|
+
image_path = os.path.join("./images", "up.png")
|
|
218
|
+
self.graph_image_obj = Image.open(image_path)
|
|
219
|
+
self.graph_image = customtkinter.CTkImage(self.graph_image_obj, size=(self.image_width * self.image_scale, self.image_height * self.image_scale))
|
|
220
|
+
self.graph_label.configure(image=self.graph_image)
|
|
238
221
|
|
|
239
222
|
def save_project(self):
|
|
240
223
|
metrics = self.option_manager.get_metrics()
|
|
224
|
+
|
|
225
|
+
# Add the calibration_progress dataframe to the json
|
|
226
|
+
if (self.progress_data is not None):
|
|
227
|
+
metrics["calibration_progress"] = self.progress_data.to_json()
|
|
228
|
+
# Add the calibration_data to the json
|
|
229
|
+
if (self.calibration_data is not None):
|
|
230
|
+
metrics["calibration_data"] = self.calibration_data
|
|
231
|
+
|
|
241
232
|
filename = asksaveasfilename(filetypes=[("JSON", "*.json")], initialfile="config", defaultextension="json", title="Save Project")
|
|
242
233
|
|
|
243
234
|
try:
|
|
@@ -276,6 +267,13 @@ class App(customtkinter.CTk):
|
|
|
276
267
|
if "service_parameters" in metrics:
|
|
277
268
|
self.option_manager.set_service_parameters(metrics["service_parameters"])
|
|
278
269
|
self.tabview.configure(state="enabled")
|
|
270
|
+
|
|
271
|
+
if "calibration_progress" in metrics:
|
|
272
|
+
self.progress_data = pd.read_json(metrics["calibration_progress"])
|
|
273
|
+
self.calibration_data = metrics["calibration_data"]
|
|
274
|
+
|
|
275
|
+
if "calibration_data" in metrics:
|
|
276
|
+
self.calibration_data = metrics["calibration_data"]
|
|
279
277
|
|
|
280
278
|
print(metrics)
|
|
281
279
|
|
|
@@ -493,9 +491,11 @@ class App(customtkinter.CTk):
|
|
|
493
491
|
best_particle_values = [ast.literal_eval(i) for i in best_particle_values]
|
|
494
492
|
progress_values = [tuple(map(float, i)) for i in progress_values]
|
|
495
493
|
|
|
496
|
-
print("Current params: " + str(calibrated_params), flush=True)
|
|
494
|
+
#print("Current params: " + str(calibrated_params), flush=True)
|
|
495
|
+
|
|
496
|
+
self.calibration_data = calibrated_params
|
|
497
497
|
|
|
498
|
-
GraphGenerator.calibrated_params_by_round(self.running_config['steps'], calibrated_params, self.option_manager)
|
|
498
|
+
#GraphGenerator.calibrated_params_by_round(self.running_config['steps'], calibrated_params, self.option_manager)
|
|
499
499
|
self.update_graph("")
|
|
500
500
|
except Exception as e:
|
|
501
501
|
# Print stack trace
|
|
@@ -521,11 +521,13 @@ class App(customtkinter.CTk):
|
|
|
521
521
|
df = df.drop_duplicates()
|
|
522
522
|
df['round_step'] = (df['completed_rounds'].diff() < 0).cumsum()
|
|
523
523
|
df = df.drop_duplicates(subset=['completed_rounds', 'round_step'])
|
|
524
|
+
self.progress_data = df
|
|
524
525
|
|
|
525
|
-
GraphGenerator.
|
|
526
|
-
GraphGenerator.
|
|
527
|
-
GraphGenerator.
|
|
528
|
-
self.
|
|
526
|
+
#GraphGenerator.update_progress_graphs(self.running_config['steps'], self.current_data, self.option_manager)
|
|
527
|
+
#GraphGenerator.best_cost_stacked(self.running_config['steps'], df, self.option_manager)
|
|
528
|
+
#GraphGenerator.best_cost_by_round(self.running_config['steps'], df, self.option_manager)
|
|
529
|
+
#GraphGenerator.table(self.running_config['steps'], df, self.option_manager)
|
|
530
|
+
#self.update_graph("")
|
|
529
531
|
|
|
530
532
|
match = matches[-1]
|
|
531
533
|
percent = int(match[0])
|
|
@@ -582,47 +584,6 @@ class App(customtkinter.CTk):
|
|
|
582
584
|
self.progress_message_right.configure(text="")
|
|
583
585
|
self.textbox.insert("0.0", "\nCalibration finished!\n")
|
|
584
586
|
|
|
585
|
-
'''
|
|
586
|
-
def get_results(self):
|
|
587
|
-
request: Client = Client()
|
|
588
|
-
for name, value in parameters.items():
|
|
589
|
-
# if parameter name has a / in it assume that is a file based parameter and therefore value needs to be an array
|
|
590
|
-
if "/" in name and type(value) is not list:
|
|
591
|
-
request.add_data(name, [value])
|
|
592
|
-
else:
|
|
593
|
-
request.add_data(name, value)
|
|
594
|
-
|
|
595
|
-
conf = {
|
|
596
|
-
'service_timeout': 60.0 # (sec)
|
|
597
|
-
}
|
|
598
|
-
files: List[str] = [] #optional list of filenames
|
|
599
|
-
|
|
600
|
-
#Synchronous Call
|
|
601
|
-
result: Client = request.execute(CSIP_ENDPOINT, files=files, sync=True, conf=conf)
|
|
602
|
-
|
|
603
|
-
#Asynchronous Call
|
|
604
|
-
tsamp: float = 0
|
|
605
|
-
def callback(c: Client, progress: str):
|
|
606
|
-
tsamp2: float = time.time()
|
|
607
|
-
print('Halton Update {} - {} - {}'.format(halton_id, c.get_status(), tsamp2 - tsamp))
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
tsamp = time.time()
|
|
611
|
-
result: Client = request.execute_async(
|
|
612
|
-
CSIP_ENDPOINT,
|
|
613
|
-
files=files,
|
|
614
|
-
callback=callback,
|
|
615
|
-
first_poll=poll_time,
|
|
616
|
-
next_poll=poll_time,
|
|
617
|
-
conf=conf
|
|
618
|
-
)
|
|
619
|
-
# After recieving response
|
|
620
|
-
if result.is_finished():
|
|
621
|
-
print(result)
|
|
622
|
-
else:
|
|
623
|
-
print(result)
|
|
624
|
-
'''
|
|
625
|
-
|
|
626
587
|
def start():
|
|
627
588
|
app = App()
|
|
628
589
|
app.mainloop()
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import csip
|
|
2
|
+
from csip import Client
|
|
2
3
|
import cosu
|
|
3
4
|
import sys
|
|
4
5
|
from multiprocessing import Process, Queue
|
|
@@ -99,81 +100,43 @@ def run_process(stdout_queue, stderr_queue, results_queue, cosu_queue, data, fol
|
|
|
99
100
|
sys.stderr = old_stderr
|
|
100
101
|
results_queue.put((optimizer, trace))
|
|
101
102
|
|
|
103
|
+
def get_results():
|
|
104
|
+
request: Client = Client()
|
|
105
|
+
for name, value in parameters.items():
|
|
106
|
+
# if parameter name has a / in it assume that is a file based parameter and therefore value needs to be an array
|
|
107
|
+
if "/" in name and type(value) is not list:
|
|
108
|
+
request.add_data(name, [value])
|
|
109
|
+
else:
|
|
110
|
+
request.add_data(name, value)
|
|
111
|
+
|
|
112
|
+
conf = {
|
|
113
|
+
'service_timeout': 60.0 # (sec)
|
|
114
|
+
}
|
|
115
|
+
files: List[str] = [] #optional list of filenames
|
|
116
|
+
|
|
117
|
+
#Synchronous Call
|
|
118
|
+
result: Client = request.execute(CSIP_ENDPOINT, files=files, sync=True, conf=conf)
|
|
119
|
+
|
|
120
|
+
#Asynchronous Call
|
|
121
|
+
tsamp: float = 0
|
|
122
|
+
def callback(c: Client, progress: str):
|
|
123
|
+
tsamp2: float = time.time()
|
|
124
|
+
print('Halton Update {} - {} - {}'.format(halton_id, c.get_status(), tsamp2 - tsamp))
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
tsamp = time.time()
|
|
128
|
+
result: Client = request.execute_async(
|
|
129
|
+
CSIP_ENDPOINT,
|
|
130
|
+
files=files,
|
|
131
|
+
callback=callback,
|
|
132
|
+
first_poll=poll_time,
|
|
133
|
+
next_poll=poll_time,
|
|
134
|
+
conf=conf
|
|
135
|
+
)
|
|
136
|
+
# After recieving response
|
|
137
|
+
if result.is_finished():
|
|
138
|
+
print(result)
|
|
139
|
+
else:
|
|
140
|
+
print(result)
|
|
102
141
|
|
|
103
142
|
|
|
104
|
-
|
|
105
|
-
"""import csip
|
|
106
|
-
import cosu
|
|
107
|
-
import sys
|
|
108
|
-
import multiprocessing
|
|
109
|
-
import threading
|
|
110
|
-
import time
|
|
111
|
-
import os
|
|
112
|
-
|
|
113
|
-
from cosu.pso import global_best
|
|
114
|
-
|
|
115
|
-
def run_process(process_queue, data, folder):
|
|
116
|
-
steps = data['steps']
|
|
117
|
-
args = data['arguments']
|
|
118
|
-
calib = data['calibration_parameters']
|
|
119
|
-
|
|
120
|
-
calibration_map = {}
|
|
121
|
-
for param in calib:
|
|
122
|
-
param_name = param['name']
|
|
123
|
-
param_value = param['value']
|
|
124
|
-
calibration_map[param_name] = param_value
|
|
125
|
-
|
|
126
|
-
if not os.path.exists(folder):
|
|
127
|
-
os.makedirs(folder)
|
|
128
|
-
|
|
129
|
-
if (os.path.exists(os.path.join(folder, 'output.txt'))):
|
|
130
|
-
os.remove(os.path.join(folder, 'output.txt'))
|
|
131
|
-
|
|
132
|
-
if (os.path.exists(os.path.join(folder, 'error.txt'))):
|
|
133
|
-
os.remove(os.path.join(folder, 'error.txt'))
|
|
134
|
-
|
|
135
|
-
sys.stdout = open(os.path.join(folder, 'output.txt'), 'w', buffering=1)
|
|
136
|
-
sys.stderr = open(os.path.join(folder, 'error.txt'), 'w', buffering=1)
|
|
137
|
-
|
|
138
|
-
options = {}
|
|
139
|
-
oh_strategy = {}
|
|
140
|
-
|
|
141
|
-
for key in calibration_map.keys():
|
|
142
|
-
if "options_" in key:
|
|
143
|
-
options[key.replace("options_", "")] = float(calibration_map[key])
|
|
144
|
-
if "strategy_" in key:
|
|
145
|
-
oh_strategy[key.replace("strategy_", "")] = calibration_map[key]
|
|
146
|
-
|
|
147
|
-
print("\n")
|
|
148
|
-
print(calibration_map)
|
|
149
|
-
print("\n")
|
|
150
|
-
print(options)
|
|
151
|
-
print("\n")
|
|
152
|
-
print(oh_strategy)
|
|
153
|
-
print("\n")
|
|
154
|
-
|
|
155
|
-
print("Running global_best...\n")
|
|
156
|
-
|
|
157
|
-
optimizer, trace = global_best(steps, # step definition
|
|
158
|
-
rounds=(int(calibration_map['min_rounds']), int(calibration_map['max_rounds'])), # min/max number of rounds
|
|
159
|
-
args=args, # static arguments
|
|
160
|
-
n_particles=int(calibration_map['n_particles']), # number of particle candidates for each param
|
|
161
|
-
iters=int(calibration_map['iters']), # max # of iterations
|
|
162
|
-
n_threads=int(calibration_map['n_threads']), # number of threads to use
|
|
163
|
-
# ftol=0.00000001, # min cost function delta for convergence
|
|
164
|
-
options=options, # hyperparameter
|
|
165
|
-
oh_strategy=oh_strategy, # adaptive hyperparameter adjustments based on current and max # of iterations
|
|
166
|
-
conf={
|
|
167
|
-
'service_timeout': int(calibration_map['service_timeout']),
|
|
168
|
-
'http_retry': int(calibration_map['http_retry']),
|
|
169
|
-
'http_allow_redirects': True if calibration_map['allow_redirects'] == "True" else False,
|
|
170
|
-
'async_call': True if calibration_map['async_call'] == "True" else False,
|
|
171
|
-
'http_conn_timeout': int(calibration_map['conn_timeout']),
|
|
172
|
-
'http_read_timeout': int(calibration_map['read_timeout']),
|
|
173
|
-
'particles_fail': int(calibration_map['particles_fail'])
|
|
174
|
-
},
|
|
175
|
-
)
|
|
176
|
-
|
|
177
|
-
process_queue.put((optimizer, trace))
|
|
178
|
-
|
|
179
|
-
"""
|
|
@@ -1,472 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"dir": "C:\\Users\\robertcordingly\\PycharmProjects\\pythonProject6",
|
|
3
|
-
"start": "2024-03-13 02:06:28.041821",
|
|
4
|
-
"min_rounds": 1,
|
|
5
|
-
"max_rounds": 2,
|
|
6
|
-
"iters": 20,
|
|
7
|
-
"ftol": "-inf",
|
|
8
|
-
"ftol_iter": 1,
|
|
9
|
-
"rtol": 0.001,
|
|
10
|
-
"rtol_iter": 1,
|
|
11
|
-
"n_threads": 10,
|
|
12
|
-
"n_particles": 10,
|
|
13
|
-
"n_steps": 2,
|
|
14
|
-
"steps": [
|
|
15
|
-
{
|
|
16
|
-
"param": [
|
|
17
|
-
{
|
|
18
|
-
"name": "soilOutLPS",
|
|
19
|
-
"bounds": [
|
|
20
|
-
0.0,
|
|
21
|
-
2.0
|
|
22
|
-
]
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
"name": "lagInterflow",
|
|
26
|
-
"bounds": [
|
|
27
|
-
10.0,
|
|
28
|
-
80.0
|
|
29
|
-
]
|
|
30
|
-
}
|
|
31
|
-
],
|
|
32
|
-
"objfunc": [
|
|
33
|
-
{
|
|
34
|
-
"name": "ns",
|
|
35
|
-
"of": "ns",
|
|
36
|
-
"data": [
|
|
37
|
-
"obs_data02_14.csv/obs/orun[1]",
|
|
38
|
-
"output/csip_run/out/Outlet.csv/output/catchmentSimRunoff"
|
|
39
|
-
]
|
|
40
|
-
}
|
|
41
|
-
]
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
"param": [
|
|
45
|
-
{
|
|
46
|
-
"name": "flowRouteTA",
|
|
47
|
-
"bounds": [
|
|
48
|
-
0.4,
|
|
49
|
-
5.0
|
|
50
|
-
]
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
"name": "soilMaxDPS",
|
|
54
|
-
"bounds": [
|
|
55
|
-
0.0,
|
|
56
|
-
5.0
|
|
57
|
-
]
|
|
58
|
-
}
|
|
59
|
-
],
|
|
60
|
-
"objfunc": [
|
|
61
|
-
{
|
|
62
|
-
"name": "ns",
|
|
63
|
-
"of": "ns",
|
|
64
|
-
"data": [
|
|
65
|
-
"obs_data02_14.csv/obs/orun[1]",
|
|
66
|
-
"output/csip_run/out/Outlet.csv/output/catchmentSimRunoff"
|
|
67
|
-
]
|
|
68
|
-
}
|
|
69
|
-
]
|
|
70
|
-
}
|
|
71
|
-
],
|
|
72
|
-
"args": {
|
|
73
|
-
"param": [
|
|
74
|
-
{
|
|
75
|
-
"name": "startTime",
|
|
76
|
-
"value": "2002-01-01"
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
"name": "endTime",
|
|
80
|
-
"value": "2006-12-31"
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
"name": "dataStartTime",
|
|
84
|
-
"value": "2002-01-01"
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
"name": "dataEndTime",
|
|
88
|
-
"value": "2006-12-31"
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
"name": "cal_startTime",
|
|
92
|
-
"value": "2003-01-01"
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
"name": "cal_endTime",
|
|
96
|
-
"value": "2006-12-31"
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
"name": "parallelismThreads",
|
|
100
|
-
"value": "2"
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
"name": "flagLoadState",
|
|
104
|
-
"value": "true"
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
"name": "payload",
|
|
108
|
-
"value": "false"
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
"name": "project",
|
|
112
|
-
"value": "SFIR3"
|
|
113
|
-
}
|
|
114
|
-
],
|
|
115
|
-
"url": "http://csip.engr.colostate.edu:8087/csip-oms/m/ages/0.3.0",
|
|
116
|
-
"files": {},
|
|
117
|
-
"step_param_names": [
|
|
118
|
-
"flowRouteTA",
|
|
119
|
-
"soilMaxDPS"
|
|
120
|
-
],
|
|
121
|
-
"step_objfunc": [
|
|
122
|
-
{
|
|
123
|
-
"name": "ns",
|
|
124
|
-
"of": "ns",
|
|
125
|
-
"data": [
|
|
126
|
-
"obs_data02_14.csv/obs/orun[1]",
|
|
127
|
-
"output/csip_run/out/Outlet.csv/output/catchmentSimRunoff"
|
|
128
|
-
]
|
|
129
|
-
}
|
|
130
|
-
],
|
|
131
|
-
"calib_params": {
|
|
132
|
-
"soilOutLPS": 1.3852729993614596,
|
|
133
|
-
"lagInterflow": 56.51654153627339
|
|
134
|
-
},
|
|
135
|
-
"req_queue": "<queue.Queue at 0x2b66bfe9f40>",
|
|
136
|
-
"conf": {
|
|
137
|
-
"service_timeout": 400.0,
|
|
138
|
-
"http_retry": 5,
|
|
139
|
-
"http_allow_redirects": true,
|
|
140
|
-
"async_call": false,
|
|
141
|
-
"http_conn_timeout": 10,
|
|
142
|
-
"http_read_timeout": 400,
|
|
143
|
-
"particles_fail": 5
|
|
144
|
-
},
|
|
145
|
-
"rnd": 2,
|
|
146
|
-
"step": 2
|
|
147
|
-
},
|
|
148
|
-
"r1s1": {
|
|
149
|
-
"time": "2024-03-13 02:09:17.010187",
|
|
150
|
-
"best_costs": [
|
|
151
|
-
[
|
|
152
|
-
0.4132185,
|
|
153
|
-
0.41315801
|
|
154
|
-
]
|
|
155
|
-
],
|
|
156
|
-
"steps": [
|
|
157
|
-
{
|
|
158
|
-
"param": [
|
|
159
|
-
{
|
|
160
|
-
"name": "soilOutLPS",
|
|
161
|
-
"bounds": [
|
|
162
|
-
0.0,
|
|
163
|
-
2.0
|
|
164
|
-
],
|
|
165
|
-
"value": 1.4232478417536503
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
"name": "lagInterflow",
|
|
169
|
-
"bounds": [
|
|
170
|
-
10.0,
|
|
171
|
-
80.0
|
|
172
|
-
],
|
|
173
|
-
"value": 58.2004069813242
|
|
174
|
-
}
|
|
175
|
-
],
|
|
176
|
-
"objfunc": [
|
|
177
|
-
{
|
|
178
|
-
"name": "ns",
|
|
179
|
-
"of": "ns",
|
|
180
|
-
"data": [
|
|
181
|
-
"obs_data02_14.csv/obs/orun[1]",
|
|
182
|
-
"output/csip_run/out/Outlet.csv/output/catchmentSimRunoff"
|
|
183
|
-
]
|
|
184
|
-
}
|
|
185
|
-
],
|
|
186
|
-
"cost": 0.4965635659744849
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
"param": [
|
|
190
|
-
{
|
|
191
|
-
"name": "flowRouteTA",
|
|
192
|
-
"bounds": [
|
|
193
|
-
0.4,
|
|
194
|
-
5.0
|
|
195
|
-
]
|
|
196
|
-
},
|
|
197
|
-
{
|
|
198
|
-
"name": "soilMaxDPS",
|
|
199
|
-
"bounds": [
|
|
200
|
-
0.0,
|
|
201
|
-
5.0
|
|
202
|
-
]
|
|
203
|
-
}
|
|
204
|
-
],
|
|
205
|
-
"objfunc": [
|
|
206
|
-
{
|
|
207
|
-
"name": "ns",
|
|
208
|
-
"of": "ns",
|
|
209
|
-
"data": [
|
|
210
|
-
"obs_data02_14.csv/obs/orun[1]",
|
|
211
|
-
"output/csip_run/out/Outlet.csv/output/catchmentSimRunoff"
|
|
212
|
-
]
|
|
213
|
-
}
|
|
214
|
-
]
|
|
215
|
-
}
|
|
216
|
-
]
|
|
217
|
-
},
|
|
218
|
-
"r1s2": {
|
|
219
|
-
"time": "2024-03-13 02:11:57.122093",
|
|
220
|
-
"best_costs": [
|
|
221
|
-
[
|
|
222
|
-
0.4132185,
|
|
223
|
-
0.41315801
|
|
224
|
-
]
|
|
225
|
-
],
|
|
226
|
-
"steps": [
|
|
227
|
-
{
|
|
228
|
-
"param": [
|
|
229
|
-
{
|
|
230
|
-
"name": "soilOutLPS",
|
|
231
|
-
"bounds": [
|
|
232
|
-
0.0,
|
|
233
|
-
2.0
|
|
234
|
-
],
|
|
235
|
-
"value": 1.4232478417536503
|
|
236
|
-
},
|
|
237
|
-
{
|
|
238
|
-
"name": "lagInterflow",
|
|
239
|
-
"bounds": [
|
|
240
|
-
10.0,
|
|
241
|
-
80.0
|
|
242
|
-
],
|
|
243
|
-
"value": 58.2004069813242
|
|
244
|
-
}
|
|
245
|
-
],
|
|
246
|
-
"objfunc": [
|
|
247
|
-
{
|
|
248
|
-
"name": "ns",
|
|
249
|
-
"of": "ns",
|
|
250
|
-
"data": [
|
|
251
|
-
"obs_data02_14.csv/obs/orun[1]",
|
|
252
|
-
"output/csip_run/out/Outlet.csv/output/catchmentSimRunoff"
|
|
253
|
-
]
|
|
254
|
-
}
|
|
255
|
-
],
|
|
256
|
-
"cost": 0.4965635659744849
|
|
257
|
-
},
|
|
258
|
-
{
|
|
259
|
-
"param": [
|
|
260
|
-
{
|
|
261
|
-
"name": "flowRouteTA",
|
|
262
|
-
"bounds": [
|
|
263
|
-
0.4,
|
|
264
|
-
5.0
|
|
265
|
-
],
|
|
266
|
-
"value": 1.9829062991388553
|
|
267
|
-
},
|
|
268
|
-
{
|
|
269
|
-
"name": "soilMaxDPS",
|
|
270
|
-
"bounds": [
|
|
271
|
-
0.0,
|
|
272
|
-
5.0
|
|
273
|
-
],
|
|
274
|
-
"value": 2.569282303473601
|
|
275
|
-
}
|
|
276
|
-
],
|
|
277
|
-
"objfunc": [
|
|
278
|
-
{
|
|
279
|
-
"name": "ns",
|
|
280
|
-
"of": "ns",
|
|
281
|
-
"data": [
|
|
282
|
-
"obs_data02_14.csv/obs/orun[1]",
|
|
283
|
-
"output/csip_run/out/Outlet.csv/output/catchmentSimRunoff"
|
|
284
|
-
]
|
|
285
|
-
}
|
|
286
|
-
],
|
|
287
|
-
"cost": 0.41587191865116957
|
|
288
|
-
}
|
|
289
|
-
]
|
|
290
|
-
},
|
|
291
|
-
"r1": {
|
|
292
|
-
"time": "2024-03-13 02:11:57.122093",
|
|
293
|
-
"round_cost": 0.9124354846256545,
|
|
294
|
-
"best_costs": [
|
|
295
|
-
[
|
|
296
|
-
0.4132185,
|
|
297
|
-
0.41315801
|
|
298
|
-
]
|
|
299
|
-
],
|
|
300
|
-
"improvements": [
|
|
301
|
-
[
|
|
302
|
-
false,
|
|
303
|
-
false
|
|
304
|
-
]
|
|
305
|
-
]
|
|
306
|
-
},
|
|
307
|
-
"r2s1": {
|
|
308
|
-
"time": "2024-03-13 02:14:38.624493",
|
|
309
|
-
"best_costs": [
|
|
310
|
-
[
|
|
311
|
-
0.4132185,
|
|
312
|
-
0.41315801
|
|
313
|
-
]
|
|
314
|
-
],
|
|
315
|
-
"steps": [
|
|
316
|
-
{
|
|
317
|
-
"param": [
|
|
318
|
-
{
|
|
319
|
-
"name": "soilOutLPS",
|
|
320
|
-
"bounds": [
|
|
321
|
-
0.0,
|
|
322
|
-
2.0
|
|
323
|
-
],
|
|
324
|
-
"value": 1.3852729993614596
|
|
325
|
-
},
|
|
326
|
-
{
|
|
327
|
-
"name": "lagInterflow",
|
|
328
|
-
"bounds": [
|
|
329
|
-
10.0,
|
|
330
|
-
80.0
|
|
331
|
-
],
|
|
332
|
-
"value": 56.51654153627339
|
|
333
|
-
}
|
|
334
|
-
],
|
|
335
|
-
"objfunc": [
|
|
336
|
-
{
|
|
337
|
-
"name": "ns",
|
|
338
|
-
"of": "ns",
|
|
339
|
-
"data": [
|
|
340
|
-
"obs_data02_14.csv/obs/orun[1]",
|
|
341
|
-
"output/csip_run/out/Outlet.csv/output/catchmentSimRunoff"
|
|
342
|
-
]
|
|
343
|
-
}
|
|
344
|
-
],
|
|
345
|
-
"cost": 0.41321849826662227
|
|
346
|
-
},
|
|
347
|
-
{
|
|
348
|
-
"param": [
|
|
349
|
-
{
|
|
350
|
-
"name": "flowRouteTA",
|
|
351
|
-
"bounds": [
|
|
352
|
-
0.4,
|
|
353
|
-
5.0
|
|
354
|
-
],
|
|
355
|
-
"value": 1.9829062991388553
|
|
356
|
-
},
|
|
357
|
-
{
|
|
358
|
-
"name": "soilMaxDPS",
|
|
359
|
-
"bounds": [
|
|
360
|
-
0.0,
|
|
361
|
-
5.0
|
|
362
|
-
],
|
|
363
|
-
"value": 2.569282303473601
|
|
364
|
-
}
|
|
365
|
-
],
|
|
366
|
-
"objfunc": [
|
|
367
|
-
{
|
|
368
|
-
"name": "ns",
|
|
369
|
-
"of": "ns",
|
|
370
|
-
"data": [
|
|
371
|
-
"obs_data02_14.csv/obs/orun[1]",
|
|
372
|
-
"output/csip_run/out/Outlet.csv/output/catchmentSimRunoff"
|
|
373
|
-
]
|
|
374
|
-
}
|
|
375
|
-
],
|
|
376
|
-
"cost": 0.41587191865116957
|
|
377
|
-
}
|
|
378
|
-
]
|
|
379
|
-
},
|
|
380
|
-
"r2s2": {
|
|
381
|
-
"time": "2024-03-13 02:17:21.403554",
|
|
382
|
-
"best_costs": [
|
|
383
|
-
[
|
|
384
|
-
0.4132185,
|
|
385
|
-
0.41315801
|
|
386
|
-
]
|
|
387
|
-
],
|
|
388
|
-
"steps": [
|
|
389
|
-
{
|
|
390
|
-
"param": [
|
|
391
|
-
{
|
|
392
|
-
"name": "soilOutLPS",
|
|
393
|
-
"bounds": [
|
|
394
|
-
0.0,
|
|
395
|
-
2.0
|
|
396
|
-
],
|
|
397
|
-
"value": 1.3852729993614596
|
|
398
|
-
},
|
|
399
|
-
{
|
|
400
|
-
"name": "lagInterflow",
|
|
401
|
-
"bounds": [
|
|
402
|
-
10.0,
|
|
403
|
-
80.0
|
|
404
|
-
],
|
|
405
|
-
"value": 56.51654153627339
|
|
406
|
-
}
|
|
407
|
-
],
|
|
408
|
-
"objfunc": [
|
|
409
|
-
{
|
|
410
|
-
"name": "ns",
|
|
411
|
-
"of": "ns",
|
|
412
|
-
"data": [
|
|
413
|
-
"obs_data02_14.csv/obs/orun[1]",
|
|
414
|
-
"output/csip_run/out/Outlet.csv/output/catchmentSimRunoff"
|
|
415
|
-
]
|
|
416
|
-
}
|
|
417
|
-
],
|
|
418
|
-
"cost": 0.41321849826662227
|
|
419
|
-
},
|
|
420
|
-
{
|
|
421
|
-
"param": [
|
|
422
|
-
{
|
|
423
|
-
"name": "flowRouteTA",
|
|
424
|
-
"bounds": [
|
|
425
|
-
0.4,
|
|
426
|
-
5.0
|
|
427
|
-
],
|
|
428
|
-
"value": 1.9512811039470743
|
|
429
|
-
},
|
|
430
|
-
{
|
|
431
|
-
"name": "soilMaxDPS",
|
|
432
|
-
"bounds": [
|
|
433
|
-
0.0,
|
|
434
|
-
5.0
|
|
435
|
-
],
|
|
436
|
-
"value": 1.4271995521553167
|
|
437
|
-
}
|
|
438
|
-
],
|
|
439
|
-
"objfunc": [
|
|
440
|
-
{
|
|
441
|
-
"name": "ns",
|
|
442
|
-
"of": "ns",
|
|
443
|
-
"data": [
|
|
444
|
-
"obs_data02_14.csv/obs/orun[1]",
|
|
445
|
-
"output/csip_run/out/Outlet.csv/output/catchmentSimRunoff"
|
|
446
|
-
]
|
|
447
|
-
}
|
|
448
|
-
],
|
|
449
|
-
"cost": 0.41315801069598224
|
|
450
|
-
}
|
|
451
|
-
]
|
|
452
|
-
},
|
|
453
|
-
"r2": {
|
|
454
|
-
"time": "2024-03-13 02:17:21.403554",
|
|
455
|
-
"round_cost": 0.8263765089626045,
|
|
456
|
-
"best_costs": [
|
|
457
|
-
[
|
|
458
|
-
0.4132185,
|
|
459
|
-
0.41315801
|
|
460
|
-
]
|
|
461
|
-
],
|
|
462
|
-
"improvements": [
|
|
463
|
-
[
|
|
464
|
-
false,
|
|
465
|
-
false
|
|
466
|
-
]
|
|
467
|
-
]
|
|
468
|
-
},
|
|
469
|
-
"rounds": 2,
|
|
470
|
-
"end": "2024-03-13 02:17:21.901600",
|
|
471
|
-
"time": "0:10:53.346725"
|
|
472
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|