API Documentation¶
pynasonde exposes a layered Python API for reading, parsing, and visualising ionosonde data from VIPIR and Digisonde instruments. Use the navigation on the left to browse modules, or jump to a subsystem below.
Symbol legend¶
Every heading in the reference pages carries a symbol that identifies what kind of Python object is documented.
P Package / Module
A Python package (directory with __init__.py) or a .py module file.
C Class
A Python class definition, including dataclasses and abstract base classes.
M Method / Function
An instance method, class method, static method, or module-level function.
A Attribute / Property
A class-level attribute, dataclass field, or @property.
Subsystems¶
Digisonde¶
| Module | Purpose |
|---|---|
| Utils | Shared helpers: namespace conversion, station loading, grid utilities |
| Plot Utils | Matplotlib wrappers for sky maps, drift velocity, EDP plots |
| SAO Parser | Read legacy fixed-width and XML SAO ionogram files |
| SKY Parser | Read SKY drift/direction files |
| RSF Parser | Read raw RSF ionogram binary records |
| DVL Parser | Read Digisonde Velocity/DVL files |
| DFT Parser | Read DFT spectral files |
| EDP Parser | Electron density profile extraction |
| SBF Parser | Read binary SBF ionogram amplitude/phase blocks |
| MMM Parser | Read binary ModMax MMM ionogram blocks |
| Image Parser | Extract ionogram images (IonogramImageExtractor) |
| SAO XML Datatypes | Dataclasses for SAO XML records |
| SBF Datatypes | Dataclasses for SBF binary format |
| MMM Datatypes | Dataclasses for MMM/ModMax binary format |
| DFT Datatypes | Dataclasses for DFT spectral format |
| RSF Datatypes | Dataclasses for RSF binary records |
| Raw IQ Parse | DPS4D raw IQ → ionogram pipeline (process, IonogramResult) |
| IQ Reader | One-second .bin IQ file reader (IQStream) |
| Raw Plots | Plotting helpers for raw IQ ionograms (RawPlots, AFRLPlots) |
VIPIR¶
| Module | Purpose |
|---|---|
| NGI Utils | Time-zone conversion, smoothing, color helpers |
| NGI Source | Dataset / DataSource for loading NGI NetCDF files |
| NGI Scale | Auto-scaling, noise profiling, trace extraction |
| NGI Plot Utils | Ionogram and profile visualisation helpers |
| RIQ Echo Extractor | Dynasonde-style seven-parameter echo extraction (Echo, EchoExtractor) |
| RIQ Ionogram Filter | Five-stage post-extraction echo filter: RFI, EP, multi-hop, DBSCAN, temporal coherence (IonogramFilter) |
| RIQ Read | Low-level RIQ binary reader and threshold routines |
| RIQ Utils | RIQ format utility functions |
| SCT Datatypes | System configuration table dataclass |
| PCT Datatypes | Pulse configuration table dataclass |
VIPIR Analysis¶
| Module | Purpose |
|---|---|
| Analysis Overview | Physics analysis sub-package overview, pipeline diagram, all public imports |
| Es Imaging — Package | Package overview: algorithm, instrument parameters, singularity constraints |
| Es Imaging — capon.py | EsCaponImager (single-cube Capon imager), EsImagingResult — full constructor, fit(), internal methods, plot API |
| Es Imaging — aggregator.py | RiqAggregator — multi-file A+B+C; load(), combine(), fit(); Option A/B/C combining strategy |
| Absorption | AbsorptionAnalyzer → LOFResult, DifferentialResult, TotalAbsorptionResult, AbsorptionProfileResult |
| True Height Inversion | TrueHeightInversion → EDPResult — Titheridge lamination method; N(h) profile |
| Polarization | PolarizationClassifier → PolarizationResult — O/X mode labelling from PP chirality |
| Spread-F | SpreadFAnalyzer → SpreadFResult — range/frequency/mixed spread-F detection |
| Scaler | IonogramScaler → ScaledParameters — foE, foF2, h′F, MUF, bootstrap uncertainty |
| Irregularities | IrregularityAnalyzer → IrregularityProfile — EP structure function, spectral index α |
| NeXtYZ | NeXtYZInverter → NeXtYZResult, WedgePlane — 3-D WSI + Hamiltonian ray tracing (Zabotin et al. 2006) |