Supported Instruments
AeroViz provides comprehensive support for reading and processing data from a wide range of aerosol measurement instruments. Each instrument has a dedicated reader that handles its specific data format, file structure, and measurement characteristics.
Instrument Support
You name the instrument; AeroViz does not guess it. instrument= is
required and is validated against the supported list — a wrong or unknown name
raises KeyError listing what is valid. The reader then handles that
instrument's file format, header layout and status codes for you, including
the dialect differences between host-software versions.
Instrument Categories
Aethalometers (Black Carbon Measurement)
Instruments for measuring black carbon and light absorption:
- AE33 - Magee Scientific AE33 (7-wavelength aethalometer)
- AE43 - Magee Scientific AE43 (real-time BC measurements)
- BC1054 - MetOne BC1054 (high-resolution absorption)
- MA350 - AethLabs MA350 (multi-angle absorption photometer)
Nephelometers (Light Scattering)
Instruments for measuring aerosol light scattering:
- Aurora - Ecotech Aurora (3-wavelength nephelometer)
- NEPH - TSI Nephelometer (standard scattering measurements)
Particle Sizers
Instruments for measuring particle size distributions:
- SMPS - Scanning Mobility Particle Sizer (10-600 nm)
- APS - Aerodynamic Particle Sizer (0.5-20 μm)
- GRIMM - GRIMM Aerosol Spectrometer (optical sizing)
Chemical Analysis
Instruments for chemical composition analysis:
- IGAC - Ion chromatography (water-soluble ions)
- OCEC - Organic/Elemental Carbon Analyzer
- Xact - Xact 625i XRF Analyzer (elemental analysis)
Mass Concentration
Instruments for PM mass concentration measurement:
External / pre-aggregated sources
Not instruments, but read through the same factory:
- EPA - Taiwan EPA hourly air-quality export (
big5-encoded 測項 / 直式 CSV)
Not readable
- Q-ACSM - a real instrument (30-min native resolution), but its reader is
not written yet: calling it raises
NotImplementedErrorexplaining what to contribute — see Contributing a Reader. - VOC, Minion - pre-aggregated, second-hand data with no raw log to
parse. The readers were removed; calling them raises
KeyErrorcarrying the migration advice. See VOC Data.
Usage Example
from AeroViz import RawDataReader
# Name the instrument and the folder holding its raw files.
df = RawDataReader('AE33', '/data/NZ_AE33', start='2024-01-01', end='2024-06-30')
# What was actually read is reported in df.attrs
print(df.attrs['raw_freq']) # native resolution detected from the files
print(df.attrs['coverage_start']) # first timestamp carrying real data
print(df.attrs['total_rate']) # % of expected periods that passed QC
Technical Specifications
| Instrument | Time Resolution | File Type | QC Rules |
|---|---|---|---|
| AE33 | 1 min | .dat | Status Error, Invalid BC, Invalid AAE, Insufficient |
| AE43 | 1 min | .dat | Status Error, Invalid BC, Invalid AAE, Insufficient |
| BC1054 | 1 min | .csv | Status Error, Invalid BC, Invalid AAE, Insufficient |
| MA350 | 1 min | .csv | Status Error, Invalid BC, Invalid AAE, Insufficient |
| NEPH | 5 min | .dat | Status Error, No Data, Invalid Scat Value, Invalid Scat Rel, Insufficient |
| Aurora | 1 min | .csv | Status Error, No Data, Invalid Scat Value, Invalid Scat Rel, Insufficient |
| SMPS | 6 min | .txt, .csv | Status Error, Invalid Number Conc, CPC Over-range, DMA Water Ingress, Truncated Scan, Insufficient |
| APS | 6 min | .txt | Status Error, Invalid Number Conc, Insufficient |
| GRIMM | 6 min | .dat | No Data, Negative Conc, Insufficient |
| TEOM | 6 min | .csv | Status Error, High Noise, Non-positive, NV > Total, Spike, Insufficient |
| BAM1020 | 1 h | .csv | Invalid Conc, Spike |
| OCEC | 1 h | *LCRes.csv | Invalid Carbon, Below MDL, Spike, Missing OC |
| IGAC | 1 h | .csv | Mass Closure, Missing Main, Above MR, Ion Balance |
| Xact | 1 h | .csv | Calibration Mode, Instrument Error, Upscale Warning, Invalid Value, High Uncertainty, Internal Std Drift |
| EPA | 1 h | .csv | Negative |
Every reader declares its rules as QCRules; what a flag means, which are
advisory and where the verdict is recorded is explained once in
RawDataReader Reference §2,
and the files each read writes in
Reference §1.
Adding an instrument
See Contributing a Reader: the meta
entry, the Reader class with its _raw_reader / _QC / _process hooks,
the tests and the docs page.
Related
- AbstractReader — base class for all readers
- Quality Control — the filters the rules are built from
- RawDataReader — the factory