From d8db06df7fdc0d94bbac014471e20a7d22aed441 Mon Sep 17 00:00:00 2001 From: ConnectedSystems Date: Thu, 28 Nov 2019 23:33:42 +1100 Subject: [PATCH] Move to a more usable scenario result logging approach --- src/agtor/Zone.py | 7 ++++--- tests/test_run.py | 15 ++++++++++++--- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/agtor/Zone.py b/src/agtor/Zone.py index 83127e5..6658d31 100644 --- a/src/agtor/Zone.py +++ b/src/agtor/Zone.py @@ -275,9 +275,10 @@ def run_timestep(self, farmer: Manager, dt: object): # print("------------------\n") results[f.name] = { - 'datetime': dt, - 'income': income, - 'irrigated_area': f.irrigated_area + dt: { + 'income': income, + 'irrigated_area': f.irrigated_area + } } f.set_next_crop() diff --git a/tests/test_run.py b/tests/test_run.py index 05aaeea..8c7e721 100644 --- a/tests/test_run.py +++ b/tests/test_run.py @@ -68,7 +68,7 @@ def test_short_run(): time_sequence = z1.climate.time_steps start = timer() - result_set = [] + result_set = {f.name: {} for f in z1.fields} for dt_i in time_sequence[0:(365*5)]: if (dt_i.month == 5) and (dt_i.day == 15): # reset allocation for test @@ -79,11 +79,20 @@ def test_short_run(): res = z1.run_timestep(farmer, dt_i) if res is not None: - result_set += [res] + for f in z1.fields: + result_set[f.name].update(res[f.name]) + # End for + # End if # End for end = timer() - print(result_set) + scenario_result = {} + for f in z1.fields: + scenario_result[f.name] = pd.DataFrame.from_dict(result_set[f.name], + orient='index') + # End for + + print(scenario_result) print("Finished in:", timedelta(seconds=end-start)) # End test_short_run()