Metadata-Version: 2.4
Name: autowaterqualitymodeler
Version: 3.0
Summary: 自动水质光谱建模工具
Home-page: 
Author: 周元琦
Author-email: 周元琦 <zyq1034378361@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/1034378361/AutoWaterQualityModeler
Project-URL: Bug Tracker, https://github.com/1034378361/AutoWaterQualityModeler/issues
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: numpy>=1.20.0
Requires-Dist: pandas>=1.3.0
Requires-Dist: scipy>=1.7.0
Requires-Dist: matplotlib>=3.4.0
Requires-Dist: cryptography>=36.0.0
Requires-Dist: openpyxl>=3.0.0
Requires-Dist: scikit-learn>=1.0.0
Provides-Extra: dev
Requires-Dist: pytest>=6.0; extra == "dev"
Requires-Dist: flake8>=3.9.0; extra == "dev"
Requires-Dist: black>=21.5b2; extra == "dev"
Requires-Dist: mypy>=0.812; extra == "dev"
Dynamic: author
Dynamic: requires-python

# AutoWaterQualityModeler

自动水质光谱建模工具，提供一键式水质建模、预测和评估功能。

## 特性

- **一键式建模**：根据光谱数据和实测值自动构建水质模型
- **多种特征**：支持多种光谱特征，包括波段反射率、波段组合、色度特征等
- **自动特征选择**：根据相关性自动选择最佳特征组合
- **多种模型**：支持幂函数模型和线性模型
- **模型微调**：当样本量不足时，可以使用微调模式
- **模型评估**：提供多种评估指标，如R2、RMSE、MAE、MAPE等
- **命令行接口**：提供友好的命令行接口，方便用户使用

## 安装

### 从PyPI安装

```bash
pip install autowaterqualitymodeler
```

### 从源码安装

```bash
git clone https://github.com/1034378361/AutoWaterQualityModeler.git
cd AutoWaterQualityModeler
pip install -e .
```

## 快速开始

### 代码中使用

```python
from autowaterqualitymodeler import AutoWaterQualityModeler
import pandas as pd

# 加载数据
spectrum_data = pd.read_csv("spectrum.csv", index_col=0)
metric_data = pd.read_csv("metrics.csv", index_col=0)

# 创建建模器
modeler = AutoWaterQualityModeler()

# 建模
model_dict, pred_dict, all_pred_dict = modeler.fit(
    spectrum_data=spectrum_data,
    metric_data=metric_data,
    data_type="aerospot"
)

# 保存模型
model_path = modeler.save_model(model_dict)

# 加载模型并预测
loaded_model = modeler.load_model(model_path)
predictions = modeler.predict(spectrum_data, loaded_model)
```

### 命令行使用

建模：

```bash
autowaterquality model --spectrum spectrum.csv --metric metrics.csv --data-type aerospot
```

预测：

```bash
autowaterquality predict --spectrum new_spectrum.csv --model model.bin --output predictions.csv
```

格式转换：

```bash
autowaterquality format --input data.csv --output data.json --format json
```

## 项目结构

```
autowaterqualitymodeler/
│
├── core/                     # 核心组件
│   ├── modeler.py            # 主入口类
│   ├── feature_manager.py    # 特征管理
│   └── config_manager.py     # 配置管理
│
├── preprocessing/            # 数据预处理
│   └── spectrum_processor.py # 光谱数据预处理
│
├── features/                 # 特征计算
│   └── calculator.py         # 特征计算器
│
├── models/                   # 模型构建
│   └── builder.py            # 模型构建器
│
├── utils/                    # 工具函数
│   ├── logger.py             # 日志工具
│   └── encryption.py         # 加密工具
│
├── config/                   # 配置文件
│   └── features_config.json  # 特征配置
│
├── resources/                # 资源文件
│   ├── D65xCIE.xlsx          # 三刺激值系数
│   └── CIE_README.txt        # 说明文档
│
└── cli/                      # 命令行接口
    └── commands.py           # 命令行工具
```

## 配置文件

配置文件是JSON格式，包含特征定义和模型参数。例如：

```json
{
  "aerospot": {
    "model_params": {
      "min_samples": 6,
      "power_model": true,
      "min_correlation": 0.6,
      "top_features": 5
    },
    "turbidity": {
      "features": [
        {
          "name": "B3divB2",
          "formula": "630/560"
        },
        {
          "name": "B4divB3",
          "formula": "700/630"
        }
      ]
    }
  }
}
```

## 开发

### 开发环境

```bash
pip install -e ".[dev]"
```

### 运行测试

```bash
pytest
```

### 构建分发包

```bash
python -m build
```

## 许可证

MIT

## 作者

周元琦 (zyq1034378361@gmail.com) 
