Sun Photometer Text Exports¶
Status: Supported (scoped) · Vendor: Solar Light / YES Inc. · Extensions:
.OUT,.TXT,.csv,.lev10,.lev15,.lev20(text);.nc(NetCDF, behindfmt-hdf5)
Sun photometers measure spectral aerosol optical thickness and irradiance at a
handful of fixed filter wavelengths. These are not core NIR lab spectra, but
they appear in the sample corpus and exercise the same normalization contract:
channel wavelengths become the spectral axis and each observation row becomes
one SpectralRecord. nirs4all-formats reads the common ASCII exports (MFR, Microtops,
AERONET MAN); the ARM MFRSR and Microtops MAN NetCDF paths live in the NetCDF
reader and require the fmt-hdf5 feature.
Instruments & software¶
Solar Light Microtops II and MFR-7 rotating-shadowband radiometers, the DOE ARM MFRSR datastream, and AERONET Maritime Aerosol Network (MAN) cruise exports.
File structure¶
The ASCII reader recognises three text layouts by content:
MFR-7
.OUT— aMFR-7 Sun Photometertitle and site line, aRecord …header, then fixed-width rows withChannel_<nm>columns.Microtops
.TXT/CSV — a comma-separated header containingAOT_1020/AOT_870, then one row per observation withAOT_<nm>columns.AERONET MAN ASCII — a
Maritime Aerosol Networkpreamble (version/level, campaign, data policy, PI line) and aDate(dd:mm:yyyy)header withAOD_<nm>nm(and optionalSTD_<nm>nm) columns.
The NetCDF path (ARM MFRSR b1 and Microtops MAN) is decoded through the
fmt-hdf5 NetCDF reader.
What nirs4all-formats extracts¶
MFR
.OUT— one record per row, signalchannels(raw counts) at the filter wavelengths (e.g. 415, 500, 614, 673, 870, 940 nm). Record number, time and air mass are preserved per record; site/lat/lon/alt from the header.Microtops
.TXT/CSV — one record per row, signalaottypedaerosol_optical_thicknessat the AOT filter wavelengths (e.g. 1020, 870, 675 nm). Location, pressure, solar geometry and water-column fields are preserved as metadata.AERONET MAN ASCII — one record per row, signal
aot(aerosol_optical_thickness) over the valid 380–870 nm channels; a pairedaot_stdsignal (typeduncertainty) when STD columns are present. Missing-999channels are omitted from the axis; campaign, level, aggregation, PI fields and row metadata are preserved. Records carry themicrotops_man_ascii_experimentalwarning.NetCDF (via
fmt-hdf5) — ARM MFRSR exposes 7-filter hemispheric/diffuse/direct irradiance plus voltage and direct/diffuse ratio signals, with ARM datastream metadata, filter centroids/FWHM, solar geometry and per-signal QC; Microtops MAN NetCDF exposesaotandaot_std.
Variants & support status¶
Variant |
Status |
Notes |
|---|---|---|
MFR-7 |
Supported |
Synthetic fixture validates the parser; a redistributable real |
Microtops |
Partial |
Synthetic CSV covered; no redistributable legacy |
AERONET MAN ASCII ( |
Supported (local-only) |
All-points, daily and series aggregations validated on local Okeanos samples; not redistributable (MAN data policy). |
Microtops MAN NetCDF |
Supported |
Real PANGAEA fixture; uses a contiguous-layout fallback decoder (see below). |
ARM MFRSR NetCDF |
Experimental (local-only) |
One local b1 fixture; broader ARM/xarray conformance pending. |
Limitations & known gaps¶
No atmospheric correction or unit conversion is applied.
The Microtops MAN NetCDF fixture is discovered as a Microtops
aot_<nm>schema. When the high-levelhdf5-reader0.5 API fails to resolve this layout’s shared attribute heap, the reader falls back to a generic contiguous-layout decoder (DataLayout::Contiguousblocks via fractal-heap link records andget_or_parse_header(addr)), emittingmicrotops_man_netcdf_contiguous_layout_fallbackand, for byte-scanned global string attributes,microtops_man_netcdf_global_attributes_byte_scan. This fallback should disappear oncehdf5-readerresolves NetCDF4 shared attribute heaps cleanly.AERONET MAN ASCII and ARM MFRSR NetCDF support are validated on local samples only and are not redistributed.
Redistributable MFR-7
.OUTand legacy Microtops.TXTfield exports, and a generic NetCDF path, are still needed.
Reference readers¶
Ad-hoc parsers, SPECCHIO and xarray / ARM ACT (for the NetCDF datastreams) are
the reference candidates.
Samples & validation¶
samples/mfr/synthetic_mfr.OUT (50 records) and
samples/microtops/synthetic_microtops.TXT (20 records) are golden-backed in
crates/nirs4all-formats/tests/goldens/, alongside the real
samples/microtops/microtops_arc_msm114_2.nc MAN NetCDF (378 records, PANGAEA
MSM114/2, CC-BY-4.0). Local-only fixtures cover the ARM MFRSR b1 NetCDF (4,320
records × 7 filters, with a QC YAML sidecar attached as a qc_sidecar source)
and the AERONET MAN ASCII Okeanos exports. Microtops/MAN aot arrays use the
aerosol_optical_thickness signal type; aot_std uses uncertainty. The
probes report mfr-sun-photometer, microtops-sun-photometer and
microtops-man-ascii at Confidence::Definite.