The project is used to analyze water quality data using AI/ML tools.
Project description
🌊 AI-Aquatica
AI-Aquatica is a comprehensive open-source Python library designed to analyze water quality data using advanced AI and statistical tools.
It facilitates preprocessing, modeling, visualization, and reporting of hydrochemical datasets with minimal effort – empowering researchers and professionals in hydrology, ecology, and environmental monitoring.
✨ Features
- ✅ Data Import: Load datasets from CSV, Excel, JSON, SQL, NoSQL, and APIs.
- 🧼 Data Cleaning: Remove duplicates and handle missing values via multiple strategies.
- 📏 Data Standardization: Normalize and standardize data (Z-score, MinMax, log, sqrt, Box-Cox).
- 🧠 Missing Data Imputation: Fill gaps with:
- Mean, Median, Mode
- KNN Imputer
- Regression Imputer
- Autoencoder Neural Network
- ⚖️ Ion Balance: Detect chemical inconsistencies and auto-correct based on ionic ratios.
- 📊 Statistical Analysis: Get descriptive statistics, correlation matrices, ANOVA, time series decomposition.
- 🤖 AI/ML Modeling:
- Regression & Classification (Logistic, SVM, Tree, RF)
- Clustering (KMeans, DBSCAN)
- Anomaly Detection (LOF, Isolation Forest)
- Synthetic Data (GAN-based generation)
- 📈 Visualization:
- Basic: Line, Bar, Pie, Scatter, Heatmaps
- Advanced: PCA, t-SNE, Interactive Bubble Charts
- 📝 Report Generation:
- Automatic HTML reports (statistics, ML evaluation, recommendations)
🛠 Installation
pip install ai-aquatica
Optional extras provide deep-learning and interactive visualization support:
# Install TensorFlow-powered utilities
pip install "ai-aquatica[deep_learning]"
# Install Plotly-based interactive charts
pip install "ai-aquatica[interactive]"
# Or grab everything
pip install "ai-aquatica[all]"
Or from GitHub:
git clone https://github.com/TyMill/AI-Aquatica.git
cd AI-Aquatica
pip install -e .[all]
Full guide: installation.md
📘 Documentation
Read the full documentation on GitHub Pages:
👉 https://tymill.github.io/AI-Aquatica/
Explore individual usage examples:
usage_data_cleaning.mdusage_data_loading.mdusage_missing_data.mdusage_statistical_analysis.md- ... and more!
💡 Quick Start Example
from ai_aquatica.ml_analysis import train_classification_model
import pandas as pd
import numpy as np
# Create mock dataset
df = pd.DataFrame({
'NO3': np.random.rand(100),
'pH': np.random.rand(100),
'target': np.random.randint(0, 2, 100)
})
X = df[['NO3', 'pH']]
y = df['target']
# Train a random forest classification model using AI-Aquatica's helper
model = train_classification_model(X, y, model_type='random_forest')
print("Model trained successfully.")
Report Generation Templates
AI-Aquatica ships with ready-to-use Jinja2 templates stored in
ai_aquatica/templates. By default the report utilities render these files to create:
statistical_report.html(plus an accompanyingheatmap.pngchart),interpretation_report.html,further_analysis_report.html.
The templates are available immediately after installation, but if you installed only the
minimal dependencies make sure jinja2 is present:
pip install jinja2
You can point the report functions to your own template directory by passing the template_dir
parameter. The directory should contain files named like the bundled templates so the engine can
find them.
from ai_aquatica.report_generation import generate_statistical_report
custom_templates = "/path/to/my/templates" # folder with statistical_report_template.html, etc.
generate_statistical_report(
data=df,
report_path="reports/wq_stat_report.html",
template_dir=custom_templates,
)
Need more control? Copy the files from
ai_aquatica/templates, modify them, and pointtemplate_dirto the folder containing your customized versions.
🤝 Contributing
Contributions are welcome! Please feel free to fork the repo and submit a pull request.
We especially welcome:
- New preprocessing or AI models
- Example notebooks / visual dashboards
- Dataset integrations
📄 License
This project is licensed under the MIT License.
🙏 Acknowledgments
Special thanks to:
- Open-source contributors
- Environmental data science community
- University of Szczecin & BNP Paribas for ongoing support
📫 Questions? Suggestions? Open an issue or email the maintainer.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ai_aquatica-1.1.0.tar.gz.
File metadata
- Download URL: ai_aquatica-1.1.0.tar.gz
- Upload date:
- Size: 26.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ef32138b1389e21cf58d51efea46e218d29555083968a2da26b33512d2b0ed2
|
|
| MD5 |
3da7973d40ae1d6499789b4cd0d49c04
|
|
| BLAKE2b-256 |
13caba12bccef7761879c4523cff94af65309ce9c47749a745a275e530312978
|
File details
Details for the file ai_aquatica-1.1.0-py3-none-any.whl.
File metadata
- Download URL: ai_aquatica-1.1.0-py3-none-any.whl
- Upload date:
- Size: 35.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5cdaa895902d058c6caaa8151111c081b1ae581bed530dcd6b0078de4a8a7aed
|
|
| MD5 |
437ccf593f8944011b7f69e156f03241
|
|
| BLAKE2b-256 |
3d264e556e540bbea370459293c0f16d9622dc9c13d6ad9add97799bcd431eb4
|