Benchmarking Framework for Smart Stormwater Systems

⚔️ Want to know how your control algorithm stacks up against others in smart stormwater systems? ⚔️
 
   


Welcome! We have built this benchmarking toolbox to encourage more researchers to have access to smart stormwater control problems. We want these problems accessible to all populations of researchers — those with experience in controls, but not stormwater; those with experience in stormwater, but not controls; and those without prior experience in either! We have streamlined all of the backend details of running a smart stormwater control problem so that all you have to do is focus on the control algorithm (see below for an example).

 

Getting Started

To try out how exactly to interact with stormwater networks using our benchmarking toolbox, we encourage you to first begin with our "toy control problem" which you can access here. Once you feel comfortable with how our toolbox works, we then encourage you really begin to have some fun by interacting with our five benchmarking scenarios: alpha, beta, gamma, delta, and epsilon. These benchmarking scenarios are built using real-world inspired stormwater networks, driving events, and control assets.

To learn more about this work, check out our github repository:

kLabUM/Benchmarking

To install and begin working, use:

This is how one would go about running a scenario ...

import benchmarking

def controller(state):
    """
    Your control algorithm that generates actions based on state information.
    """
    return actions

env = benchmarking.scenarios.alpha()
done = False

while not done:
    state = env.state()
    actions = controller(state)
    done = env.step(actions)

For more technical details on what we have developed, and why, please check out our documentation.

Contributing

If you want to be more involved, please consider the following:

 

Testimonials


 

Partnering Institutions


University of Michigan
University of Virginia
Emnet, LLC
University of Tennessee, Knoxville
open-storm.org
 

Funding Sources

GLPF
NSF