Release notes

v0.1.4 (Master branch)

  • Added a faster EPANET binary output file reader
  • Added ability to get the names of all required objects that are queried or acted upon by the control (see requires)
  • Modified the structure of the WaterNetworkOptions object to group options into types (API change, see WaterNetworkOptions)
  • Created a Pattern object that can be called to get the pattern value at a specific time (see Pattern)
  • Created a TimeSeries object that contains a base value, Pattern object, and category. The object can be called to get its value at a specific time. TimeSeries are used to store junction demand, source injection, pricing, pump speed, and reservoir head. (see TimeSeries)
  • Created a Demands object that contains multiple demands for a single junction and can calculate demand values at a specific time. The ability to store multiple demands per junction means that ‘base_demand’ is no longer a Junction attribute (API change). The Demands object can be used to extract the base value per demand. Expected demand and average daily expected demand can also be calculated using new metrics (see expected_demand and average_expected_demand).
  • Added support for flow control valves (FCV), multiple demands at a junction, and variable reservoir head in the WNTRSimulator
  • Modified the WaterNetworkModel.add_pattern() to no longer accept start_time and end_time options. Binary patterns can be created using the Patterns object (API change, see binary_pattern).

v0.1.3 (October 3, 2017)

  • Added method to compute pump energy and cost
  • Added methods to plot fragility curves and pump curves
  • Bug fix to support 24-hour clocktime format and correct tank volume curve name in EPANET INP files
  • Added ability to create network graphics in subplots (API change, see plot_network)
  • Changed argument in the WNTRSimulator specifying demand-driven or pressure dependent demand (API change, see WNTRSimulator)
  • Updated use of NetworkX to be compatible v2.0
  • Bug fix in method used to split pipes. The updated method modifies the original pipe and retains rules and controls associated with that pipe. (API change, see split_pipe, replaces split_pipe_with_junction)
  • Updated documentation

v0.1.2 (May 19, 2017)

  • Improved EPANET INP file reader/writer with unit conversions
  • Added EPANET binary file reader
  • Improved model option handling with the EpanetSimulator
  • Added water network compatibility with EPANET INP file SOURCES and RULES
  • Restructured code base (API change)
    • Added epanet package which contains an epanet toolkit, EPANET INP file reader/writer, and unit conversions. Removed pyepanet package.
    • Added graphics package which contains functions to plot networks. Renamed draw_graph to plot_network. Added a function to create network graphics using Plotly.
    • Reorganized metrics, network, scenario, sim, and utils packages
    • Removed Waterquality class from the scenario package. This functionality has been replaced with Source class in the water network model.
  • Updated documentation

v0.1.1 (February 6, 2017)

  • Updated package for Python 3.4 and 3.5 compatibility
  • Added install requirements to
  • Bug fix in animation example
  • Updated documentation

v0.1.0 (October 17, 2016)

This is the first official release of WNTR. Features include basic functionality to:

  • Generate water network models
  • Modify network structure and operations
  • Add disruptive incident and response/repair strategies
  • Simulate network hydraulics using pressure dependent demand or demand-driven hydraulic simulation
  • Run probabilistic simulations using fragility curves
  • Compute resilience using topographic, hydraulic, water quality/security, and economic metrics
  • Analyze results and generate graphics