Metadata-Version: 2.4
Name: permeabledt
Version: 0.1.0
Summary: Digital-twin tools for permeable pavement modeling, calibration, particle filtering, and weather data acquisition
Author-email: Jose Brasil <jose.brasil@utsa.edu>
License: MIT
Keywords: hydrology,pavement,digital twin,stormwater,particle filter,weather data,HRRR
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Hydrology
Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
Classifier: Development Status :: 4 - Beta
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pandas>=1.3.0
Requires-Dist: numpy>=1.20.0
Provides-Extra: calib
Requires-Dist: deap>=1.3.0; extra == "calib"
Requires-Dist: scikit-learn>=1.0.0; extra == "calib"
Provides-Extra: pf
Requires-Dist: pypfilt>=0.6.0; extra == "pf"
Requires-Dist: scipy>=1.7.0; extra == "pf"
Requires-Dist: tomlkit>=0.11.0; extra == "pf"
Provides-Extra: plots
Requires-Dist: matplotlib>=3.5.0; extra == "plots"
Provides-Extra: weather
Requires-Dist: herbie-data>=2023.4.0; extra == "weather"
Requires-Dist: xarray>=0.20.0; extra == "weather"
Requires-Dist: pytz>=2021.3; extra == "weather"
Provides-Extra: dev
Requires-Dist: pytest>=6.0.0; extra == "dev"
Requires-Dist: pytest-cov>=2.12.0; extra == "dev"
Requires-Dist: black>=21.0.0; extra == "dev"
Requires-Dist: flake8>=3.9.0; extra == "dev"
Requires-Dist: mypy>=0.910; extra == "dev"
Provides-Extra: all
Requires-Dist: deap>=1.3.0; extra == "all"
Requires-Dist: scikit-learn>=1.0.0; extra == "all"
Requires-Dist: pypfilt>=0.6.0; extra == "all"
Requires-Dist: scipy>=1.7.0; extra == "all"
Requires-Dist: tomlkit>=0.11.0; extra == "all"
Requires-Dist: matplotlib>=3.5.0; extra == "all"
Requires-Dist: SALib>=1.4.0; extra == "all"
Requires-Dist: tqdm>=4.60.0; extra == "all"
Requires-Dist: herbie-data>=2023.4.0; extra == "all"
Requires-Dist: xarray>=0.20.0; extra == "all"
Requires-Dist: pytz>=2021.3; extra == "all"
Dynamic: license-file

# PermeableDT

[![Python Version](https://img.shields.io/badge/python-3.8+-blue.svg)](https://python.org)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)

**PermeableDT** is a comprehensive Python library for permeable pavement digital twin modeling, featuring water flow simulation, genetic algorithm calibration, particle filtering, and weather data acquisition capabilities.

## Features

- 🌊 **Water Flow Modeling**: Physics-based simulation of permeable pavement systems
- 🧬 **Genetic Algorithm Calibration**: Automated parameter optimization using DEAP
- 📊 **Particle Filtering**: Real-time state estimation and uncertainty quantification
- 🌦️ **Weather Data Integration**: HRRR forecast data downloading and processing
- 📊 **Visualization**: Built-in plotting functions for results analysis

## Installation

### Requirements
- **Python** ≥ 3.8  
- Base dependencies are installed automatically (`numpy`, `pandas`).  
- Optional feature groups (install with extras):
  - `calib` → genetic algorithm calibration (`deap`, `scikit-learn`)
  - `pf` → particle filtering (`pypfilt`, `scipy`, `tomlkit`)
  - `plots` → plotting (`matplotlib`)
  - `weather` → HRRR downloads (`herbie-data`, `xarray`, `pytz`)
  - `all` → everything above

---

### Install from PyPI (recommended)

```bash
pip install permeabledt
# or with optional features:
pip install "permeabledt[all]"
# examples:
pip install "permeabledt[calib]"
pip install "permeabledt[pf]"
pip install "permeabledt[plots]"
pip install "permeabledt[weather]"

### Manual Installation

```bash
git clone https://github.com/arturbra/permeabledt.git
cd permeabledt
pip install -e .
```

## Support

- 📧 Email: jose.brasil@utsa.edu
- 🐛 Issues: [GitHub Issues](https://github.com/arturbra/permeabledt/issues)
- 📖 Documentation: [Documentation](https://permeabledt/readthedocs.io)

## Acknowledgments

- DEAP library for genetic algorithms
- pypfilt library for particle filtering
- herbie-data for weather data access
