Skip to content

Alex870521/AeroViz

Repository files navigation

AeroViz

Aerosol Data Processing and Visualization Toolkit for Atmospheric Research

Python PyPI Pytest Documentation License

AeroViz is a Python toolkit for reading, processing, and visualizing aerosol measurement data. It supports 18+ atmospheric instruments with built-in quality control, data processing, and publication-ready visualizations.

Installation

pip install AeroViz

Pre-built for Linux, macOS, and Windows — no compiler needed.

Quick Start

from AeroViz import RawDataReader

df = RawDataReader(
    instrument='AE33',
    path='/path/to/data',
    start='2024-01-01',  # optional — omit to read the files' full coverage
    end='2024-12-31',    # optional
    mean_freq='1h',      # optional — '1h' resamples to hourly; omit for native resolution
    qc=True,             # apply quality control
)
print(df[['eBC', 'AAE']].describe())

# Or read everything the files contain, at native resolution:
df_all = RawDataReader('AE33', '/path/to/data')
print(df_all.attrs['coverage_start'], '→', df_all.attrs['coverage_end'])

Important

Behaviour change: mean_freq no longer defaults to '1h' — the default is now no resampling (native resolution). Pass mean_freq='1h' (or '30min', '1D') for averaging. start / end are also optional now.

Supported Instruments

Category Instruments
Black carbon / absorption AE33, AE43, BC1054, MA350
Particle sizers SMPS, APS, GRIMM
Mass concentration TEOM, BAM1020
Optical NEPH, Aurora
Chemical composition Xact, OCEC, IGAC, Q-ACSM

See the instrument reference for output columns and per-instrument notes.

Usage

RawDataReader returns a pandas DataFrame. Key options:

  • start / end — optional date range (omit for the files' full coverage)
  • mean_freq — resample frequency, e.g. '1h' (omit for native resolution)
  • qc — quality control (on by default; flags rows via QC_Flag and reports rates)
  • fill_missing — pad to the requested range (default) or clamp to coverage
  • size_range — diameter filter for SMPS / APS

Result metadata — coverage, QC rates, native frequency and more — is attached to df.attrs. The RawDataReader guide has the full parameter list, QC flags, and df.attrs reference.

Data Processing & Visualization

from AeroViz import reconstruct_mass, improve, mie, merge_psd, voc_potentials, plot
from AeroViz.plot import timeseries_interactive
  • Top-level processing functions — each takes a DataFrame (or a few) and returns a DataFrame/dict: reconstruct_mass & volume_ri/kappa (chemistry), improve/mie/retrieve_ri (optical), merge_psd/psd_stats (size distribution), voc_potentials (OFP, SOAP). They are grouped under the chemistry, optical, size, voc namespaces too.
  • plot — publication-ready matplotlib figures (timeseries, diurnal_pattern, scatter, meteorology.wind_rose, …).
  • timeseries_interactive(df) — quick interactive Plotly viewer; click the legend to toggle columns, or save='out.html' for a standalone file.

DataProcess(...) is deprecated (it still works but emits a DeprecationWarning); use the top-level functions above.

See the user guide for details.

Documentation

Contributing

Contributions are welcome! See CONTRIBUTING.md for the development setup and release workflow, and GitHub Issues for bug reports and feature requests.

License

MIT License - see LICENSE for details.

Citation

If you use AeroViz in your research, please cite:

AeroViz: Aerosol Data Processing and Visualization Toolkit
https://github.com/Alex870521/AeroViz

Contributors

Alex870521 yrr-Su Masbear

About

A Python package designed for aerosol science, providing various data processing and visualization tools.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors