The WaterBenchmarkHub is a platform for providing benchmark resources regarding Water Distribution Networks (WDNs). The webpage is available at https://waterfutures.github.io/WaterBenchmarkHub -- see docs/ for details such as source code, etc.
The availability and accessibility of benchmarks are essential for reproducible research as well as for accelerating scientific progress. A benchmark is a verified data set or resource (e.g. a water distribution network) together with an evaluation functions that can evaluate different algorithms/methods under the same criteria.
The WaterBenchmarkHub is also available as a Python package water-benchmark-hub.
If you have a benchmark (resource) that is not yet available in the WaterBenchmarkHub, please either create a new issue or read on How to Contribute.
The Python package supports Python 3.9 - 3.12
pip install water-benchmark-hub
Download or clone the repository:
git clone https://github.com/WaterFutures/WaterBenchmarkHub.git
cd WaterBenchmarkHub
Install all requirements as listed in REQUIREMENTS.txt:
pip install -r REQUIREMENTS.txt
Install the benchmark hub:
pip install .
from water_benchmark_hub import load
if __name__ == "__main__":
# Load the GECCO Water Quality 2019 benchmark
benchmark = load("GECCO-WaterQuality2019")
# Load data set
data = benchmark.load_data(return_X_y=True)
# Show number of samples
X_train, y_train = data["train"]
X_val, y_val = data["validation"]
X_test, y_test = data["test"]
print(X_train.shape, X_val.shape, X_test.shape)
Documentation is available on readthedocs: https://waterbenchmarkhub.readthedocs.io/en/latest/
MIT license -- see LICENSE
If you use the WaterBenchmarkHub in your research, please cite it as follows:
@misc{github:water_benchmark_hub,
author = {André Artelt, Katharina Giese},
title = {WaterBenchmarkHub},
year = {2024},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/WaterFutures/WaterBenchmarkHub}}
}
If you come across any bug or need assistance please feel free to open a new issue if none of the existing issues answers your questions.
Contributions (e.g. creating issues, pull-requests, etc.) are welcome -- please make sure to read How to Contribute, the code of conduct and follow the developers' guidelines.