Metadata-Version: 2.1
Name: water-benchmark-hub
Version: 0.1.0
Summary: WaterBenchmarkHub
Author-email: André Artelt <aartelt@techfak.uni-bielefeld.de>
License: MIT License
Project-URL: Homepage, https://github.com/WaterFutures/WaterBenchmarkHub
Project-URL: Documentation, https://water-benchmark-hub.readthedocs.io/en/latest/
Project-URL: Repository, https://github.com/WaterFutures/WaterBenchmarkHub.git
Project-URL: Issues, https://github.com/WaterFutures/WaterBenchmarkHub/issues
Keywords: water,networks,benchmarks,data
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: epyt-flow >=0.4

# WaterBenchmarkHub

The [*WaterBenchmarkHub*](https://waterfutures.github.io/WaterBenchmarkHub) is a platform for providing benchmark resources regarding
Water Distribution Networks (WDNs).
The webpage is available at
[https://waterfutures.github.io/WaterBenchmarkHub](https://waterfutures.github.io/WaterBenchmarkHub)
-- see [docs/](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*.

## Call for Contributions

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](https://waterbenchmarkhub.readthedocs.io/en/latest/how_to_contribute.html).

## Installation of the Python Package

The Python package supports Python 3.9 - 3.12

### PyPI

```
pip install water-benchmark-hub
```

### Git
Download or clone the repository:
```
git clone https://github.com/WaterFutures/WaterBenchmarkHub.git
cd WaterBenchmarkHub
```

Install all requirements as listed in [REQUIREMENTS.txt](REQUIREMENTS.txt):
```
pip install -r REQUIREMENTS.txt
```

Install the benchmark hub:
```
pip install .
```

## Quick Example

```python
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

Documentation is available on readthedocs:
[https://waterbenchmarkhub.readthedocs.io/en/latest/](https://waterbenchmarkhub.readthedocs.io/en/latest/)

## License

MIT license -- see [LICENSE](LICENSE)

## How to Cite?

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}}
    }
```

## How to get Support?

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.

## How to Contribute?

Contributions (e.g. creating issues, pull-requests, etc.) are welcome -- please make sure to read
[How to Contribute](https://waterbenchmarkhub.readthedocs.io/en/latest/how_to_contribute.html),
the [code of conduct](CODE_OF_CONDUCT.md) and follow the [developers' guidelines](DEVELOPERS.md).
