This PR makes significant strides in improving the speed and memory overhead of running WOMBAT for simple and complex scenarios using the following procedural improvements:
Boolean statuses (and their checks) have been converted to SimPy Events
This also adds significant robustness to the dispatching of servicing equipment
Reading and writing CSVs is switched to a PyArrow framework for previously I/O bound tasks
Faster indexing and date handling in weather forecasting and lookup methods
Utilizing operator.mul in place of _product for system.operating_level
Additionally, there is a major bug fix addressing a previously unknown issue where RepairManager would dispatch multiple servicing equipment to a single system when the servicing equipment had yet to arrive at the system for maintenance and repairs. This was solved from moving to an event-basis for status checks in place of the boolean checks, which could be easily reset.
This PR makes significant strides in improving the speed and memory overhead of running WOMBAT for simple and complex scenarios using the following procedural improvements:
Event
soperator.mul
in place of_product
forsystem.operating_level
Additionally, there is a major bug fix addressing a previously unknown issue where
RepairManager
would dispatch multiple servicing equipment to a single system when the servicing equipment had yet to arrive at the system for maintenance and repairs. This was solved from moving to an event-basis for status checks in place of the boolean checks, which could be easily reset.