diff --git a/README.md b/README.md index 729a4d5..a87b0ed 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ ##
AeroViz for Aerosol Science Visualization
-

+

- Static Badge - Static Badge - Static Badge - Static Badge +![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) -

+
@@ -16,26 +16,44 @@ Alex870521 LinkedIn Alex870521 Medium -
+##
Installation
+```bash +pip install AeroViz +``` + ##
Key Features
-* Data Reading: Supports reading multiple aerosol data formats. -* Data Visualization: Offers various charts and graphs, including time series plots, distribution plots, and correlation - matrices. -* Data Processing: Includes multiple data processing tools, such as linear regression and Mie theory calculations. +### 📊 Data Reading ▶ `RawDataReader` +Built-in RawDataReader supporting multiple aerosol instruments: -##
Installation
+- **Particle Sizers**: SMPS, APS, GRIMM, OPC +- **Mass & Optical**: TEOM, NEPH, Aurora, AE33/43, BC1054 +- **Chemical Analysis**: OCEC, IGAC, XRF, VOC -```bash -pip install AeroViz -``` +> Features include quality control, data filtering, flexible resampling, and CSV export. For detailed instrument support +> and usage, check our [RawDataReader Guide](docs/guide/RawDataReader). + +### 🔬 Data Processing ▶ `DataProcess` + +Advanced aerosol analysis: -For Windows users: Run `install_windows.bat` +- **Size Distribution**: Mode Fitting, Log-Normal Analysis +- **Optical Properties**: Mie Theory, SOAP Calculation +- **Chemical**: Mass Closure, Source Apportionment +- **VOC**: OFP, SOAP -For Linux and Mac users: Run `install_unix.bat` +### 📈 Data Visualization ▶ `plot` + +Comprehensive visualization tools: + +- **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! ##
Quick Start
@@ -50,57 +68,10 @@ data = RawDataReader('NEPH', Path('/path/to/data'), start=datetime(2024, 2, 1), # Create a visualization plot.timeseries(data, y='scattering_coefficient') ``` - For more detailed usage instructions, please refer to our [User Guide](). -##
RawDataReader - -RawDataReader supports a wide range of aerosol instruments, including NEPH, SMPS, AE33, and many more. It handles -various file types and time resolutions, making data processing efficient and standardized. - -For a detailed list of supported instruments, file types, and data columns, please refer to -our [RawDataReader Usage Guide](docs/guide/RawDataReader) in the `docs` folder. - -### Key Features: - -- Supports multiple aerosol instruments -- Applies customizable quality control measures -- Offers flexible data filtering and resampling options -- Enables easy data export to CSV format - -### Supported Instruments - -The AeroViz project currently supports data from the following instruments: - -- SMPS (Scanning Mobility Particle Sizer) -- APS (Aerodynamic Particle Sizer) -- GRIMM (GRIMM Aerosol Technik) -- TEOM (Continuous Ambient Particulate Monitor) -- NEPH (Nephelometer) -- Aurora (Nephelometer) -- AE33 (Aethalometer Model 33) -- AE43 (Aethalometer Model 43) -- BC1054 (Black Carbon Monitor 1054) -- MA350 (MicroAeth MA350) -- OCEC (Organic Carbon Elemental Carbon Analyzer) -- IGAC (In-situ Gas and Aerosol Compositions monitor) -- XRF (X-ray Fluorescence Spectrometer) -- VOC (Volatile Organic Compounds Monitor) - -> **Note:** We are continuously working to support more instruments. Please check back for updates or contribute to our -> project on GitHub. - -##
DataProcess
- -The AeroViz project currently supports the following processing methods: - -- **Chemistry**: -- **Optical** -- **SizeDistr** -- **VOC** ##
Documentation
- For detailed documentation, please refer to the `docs` folder, which includes:
@@ -109,17 +80,9 @@ For detailed documentation, please refer to the `docs` folder, which includes: |--------------------------------|--------------------------| | [User Guide](docs/guide) | Basic usage instructions | | [Changelog](docs/changelog.md) | List of changes | -
-##
Related Source
- -* #### [PyMieScatt](https://github.com/bsumlin/PyMieScatt.git) -* #### [py-smps](https://github.com/quant-aq/py-smps.git) -* #### [ContainerHandle](https://github.com/yrr-Su/ContainerHandle.git) - ##
Contact
- For bug reports and feature requests please visit [GitHub Issues](https://github.com/Alex870521/DataPlot/issues).
@@ -129,6 +92,4 @@ For bug reports and feature requests please visit [GitHub Issues](https://github Alex870521 LinkedIn Alex870521 Medium - -
\ No newline at end of file diff --git a/docs/guide/RawDataReader.md b/docs/guide/RawDataReader.md index 784ece8..b739727 100644 --- a/docs/guide/RawDataReader.md +++ b/docs/guide/RawDataReader.md @@ -141,24 +141,26 @@ This will display the first few rows of the processed data, including timestamps # Supported Instruments: Default Time Resolutions and File Types -| Instrument | Time Resolution | File Type | Display Columns | QAQC method | -|:----------:|:---------------:|:------------|-------------------------------------------------------|:-----------:| -| NEPH | 5min | .dat | G | default | -| Aurora | 1min | .csv | G | default | -| SMPS | 6min | .txt, .csv | all | default | -| GRIMM | 6min | .dat | all | default | -| APS_3321 | 6min | .txt | all | default | -| AE33 | 1min | .dat | BC6 | default | -| AE43 | 1min | .dat | BC6 | default | -| BC1054 | 1min | .csv | BC9 | default | -| MA350 | 1min | .csv | BC5 | default | -| TEOM | 6min | .csv | PM_Total, PM_NV | default | -| OCEC | 1h | *LCRes.csv | Thermal_OC, Thermal_EC, Optical_OC, Optical_EC | default | -| IGAC | 1h | .csv | Na+, NH4+, K+, Mg2+, Ca2+, Cl-, NO2-, NO3-, SO42- | default | -| XRF | 1h | .csv | Al, Si, P, S, Cl, K, Ca, Ti, V, Cr, Mn, Fe, Ni, Cu... | default | -| VOC | 1h | .csv | voc | default | -| EPA | 1h | .csv | all | default | -| Minion | 1h | .csv, .xlsx | Na+, NH4+, Cl-, NO3-, SO42-, Al, Ti, V, Cr, Mn, Fe | default | +### The AeroViz project currently supports data from the following instruments: + +| Instrument | Time Resolution | File Type | Display Columns | QAQC method | +|:------------------------------------------------------:|:---------------:|:------------|-------------------------------------------------------|:-----------:| +| NEPH (Nephelometer) | 5min | .dat | G | default | +| Aurora (Nephelometer) | 1min | .csv | G | default | +| SMPS (Scanning Mobility Particle Sizer) | 6min | .txt, .csv | all | default | +| GRIMM (GRIMM Aerosol Technik) | 6min | .dat | all | default | +| APS_3321 (Aerodynamic Particle Sizer) | 6min | .txt | all | default | +| AE33 (Aethalometer Model 33) | 1min | .dat | BC6 | default | +| AE43 (Aethalometer Model 43) | 1min | .dat | BC6 | default | +| BC1054 (Black Carbon Monitor 1054) | 1min | .csv | BC9 | default | +| MA350 (MicroAeth MA350) | 1min | .csv | BC5 | default | +| TEOM (Continuous Ambient Particulate Monitor) | 6min | .csv | PM_Total, PM_NV | default | +| OCEC (Sunset Organic Carbon Elemental Carbon Analyzer) | 1h | *LCRes.csv | Thermal_OC, Thermal_EC, Optical_OC, Optical_EC | default | +| IGAC (In-situ Gas and Aerosol Compositions monitor) | 1h | .csv | Na+, NH4+, K+, Mg2+, Ca2+, Cl-, NO2-, NO3-, SO42- | default | +| XRF (X-ray Fluorescence Spectrometer) | 1h | .csv | Al, Si, P, S, Cl, K, Ca, Ti, V, Cr, Mn, Fe, Ni, Cu... | default | +| VOC (Volatile Organic Compounds Monitor) | 1h | .csv | voc | default | +| EPA | 1h | .csv | all | default | +| Minion | 1h | .csv, .xlsx | Na+, NH4+, Cl-, NO3-, SO42-, Al, Ti, V, Cr, Mn, Fe | default | ```{note} Notes: diff --git a/pyproject.toml b/pyproject.toml index f8d0482..a7011b0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "AeroViz" -version = "0.1.9.5" +version = "0.1.9.6" description = "Aerosol science" authors = [{ name = "alex", email = "alex870521@gmail.com" }] license = { text = "MIT" }