Metadata-Version: 2.2
Name: AeroViz
Version: 0.1.16
Summary: Aerosol science
Author-email: alex <alex870521@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/Alex870521/AeroViz
Project-URL: Repository, https://github.com/Alex870521/AeroViz
Project-URL: Issues, https://github.com/Alex870521/AeroViz/issues
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pandas>=2.2.0
Requires-Dist: numpy>=1.26.4
Requires-Dist: matplotlib==3.8.4
Requires-Dist: scipy>=1.14.0
Requires-Dist: seaborn==0.13.2
Requires-Dist: scikit-learn==1.5.1
Requires-Dist: windrose==1.9.2
Requires-Dist: cartopy==0.24.1
Requires-Dist: tabulate==0.9.0
Requires-Dist: rich~=13.9.4
Provides-Extra: test
Requires-Dist: pytest>=7.0.0; extra == "test"
Requires-Dist: pytest-cov>=4.1.0; extra == "test"
Requires-Dist: pytest-mock>=3.10.0; extra == "test"
Provides-Extra: dev
Requires-Dist: black>=23.0; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"
Requires-Dist: flake8>=6.0.0; extra == "dev"
Requires-Dist: mypy>=1.5.0; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Provides-Extra: docs
Requires-Dist: mkdocs>=1.4.0; extra == "docs"
Requires-Dist: mkdocs-material>=8.0; extra == "docs"
Requires-Dist: mkdocstrings[python]>=0.18.0; extra == "docs"

## <div align="center">AeroViz for Aerosol Science Visualization</div>

<div align="center">

![Python](https://img.shields.io/pypi/pyversions/aeroviz?logo=python)
![PyPI](https://img.shields.io/pypi/v/aeroviz?logo=pypi)
![Pytest](https://img.shields.io/github/actions/workflow/status/Alex870521/aeroviz/pytest.yml?logo=pytest&label=pytest)
![GitHub last commit](https://img.shields.io/github/last-commit/Alex870521/aeroviz?logo=github)

</div>

<div align="center">
<a href="https://github.com/Alex870521"><img src="https://cdn.simpleicons.org/github/0A66C2" width="3%" alt="GitHub"></a>
<span style="margin: 0 1%"></span>
<a href="https://www.linkedin.com/in/Alex870521/"><img src="https://cdn.simpleicons.org/linkedin/0A66C2" width="3%" alt="LinkedIn"></a>
<span style="margin: 0 1%"></span>
<a href="https://medium.com/@alex870521"><img src="https://cdn.simpleicons.org/medium/0A66C2" width="3%" alt="Medium"></a></div>

## <div align="center">Installation</div>
```bash
pip install AeroViz
```

## <div align="center">Key Features</div>

### 📊 Data Reading ▶ RawDataReader

Built-in `RawDataReader` supporting multiple aerosol instruments:
- **Particle Sizers**: SMPS, APS, GRIMM, OPC
- **Mass**: TEOM, BAM1020
- **Optical**: NEPH, Aurora, AE33/43, BC1054
- **Chemical Analysis**: OCEC, IGAC, XRF, VOC

> Features include quality control, data filtering, flexible resampling, and CSV export. For detailed instrument support
> and usage, check our [RawDataReader Guide](docs/guide/RawDataReader.md).

### 🔬 Data Processing ▶ DataProcess

Built-in `DataProcess` provides advanced aerosol analysis:
- **Size Distribution**: Mode Fitting, Log-Normal Analysis
- **Optical Properties**: Mie Theory, IMPROVE
- **Chemical**: Mass Closure, Source Apportionment
- **VOC**: OFP, SOAP

### 📈 Data Visualization ▶ plot

Comprehensive visualization tools `plot`:
- **Time Analysis**: Trends, Diurnal Patterns
- **Statistical**: Distributions, Correlations
- **Specialized**: Size Contours, Wind Rose, Polar Plots, Hysplit, CBPF

> **Note:** We are continuously adding support for more instruments and features. Contributions are welcome!

## <div align="center">Quick Start</div>

```python
from datetime import datetime
from pathlib import Path
from AeroViz import RawDataReader, DataProcess, plot

# Read data from a supported instrument
data = RawDataReader(
    instrument='NEPH',
    path=Path('/path/to/data'),
    start=datetime(2024, 2, 1),
    end=datetime(2024, 4, 30)
)
```

```pycon
> Console output
╔════════════════════════════════════════════════════════════════════════════════╗
║     Reading NEPH RAW DATA from 2024-02-01 00:00:00 to 2024-04-30 23:59:59      ║
╚════════════════════════════════════════════════════════════════════════════════╝
▶ Reading NEPH files ━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00 file_name.dat
		▶ Scatter Coe. (550 nm)
			├─ Sample Rate    :   100.0%
			├─ Valid  Rate    :   100.0%
			└─ Total  Rate    :   100.0%
```

For more detailed usage instructions, please refer to our [User Guide](docs/guide).


## <div align="center">Documentation</div>
For detailed documentation, please refer to the `docs` folder, which includes:

<div align="center">

| Documentation                  | Description              |
|--------------------------------|--------------------------|
| [User Guide](docs/guide)       | Basic usage instructions |
| [Changelog](docs/CHANGELOG.md) | List of changes          |
</div>

## <div align="center">Contact</div>
For bug reports and feature requests please visit [GitHub Issues](https://github.com/Alex870521/DataPlot/issues).
