Skip to content

Es Imaging Package (pynasonde.vipir.analysis.es_imaging)

High-Resolution Sporadic-E Layer Range Imaging

Capon minimum-variance cross-spectrum analysis (Liu et al. 2023) applied to VIPIR pulse-compressed RIQ gate data. Achieves up to 10× finer range resolution — e.g. 150 m from a 1.499 km VIPIR native gate — without sacrificing temporal resolution.

Package contents

Module Classes Description
capon.py EsCaponImager, EsImagingResult Single-cube Capon imager — one RIQ file or pre-built IQ array
aggregator.py RiqAggregator Multi-file A+B+C imager — loads RIQ files, coherent Rx beamform + incoherent averaging

Public imports

All three classes are re-exported from the package root and from pynasonde.vipir.analysis:

# Any of these work:
from pynasonde.vipir.analysis.es_imaging import EsCaponImager, RiqAggregator, EsImagingResult
from pynasonde.vipir.analysis import EsCaponImager, RiqAggregator, EsImagingResult

Algorithm overview

Capon cross-spectrum range imaging (Liu et al. 2023)

IQ cube (pulses × gates [× rx])
FFT along gate axis → cross-power spectrum G_ss (V points)
Hankel subband matrix G  shape (Z, V−Z+1)
Covariance  R_f = G · G^H / (V−Z+1)  +  ε·tr(R_f)/Z · I
Steering matrix A  shape (K·V, Z),  ω_l = 2π·l / (K·V)
Capon pseudospectrum  P[l] = 1 / (a^H · R_f⁻¹ · a)   shape (K·V,)

Effective range resolution = r₀ / K.

Multi-file A+B+C combining (RiqAggregator)

n_files × n_pulse × n_rx IQ cubes
        ├─ Option A: coherent Rx beamform within each pulse
        │       R_beam[p] = cube[p,:,:] @ w*    (+9 dB SNR for 8 Rx)
        ├─ Option B: Capon per pulse → incoherent mean per file
        │       P_file = mean_p{ P_capon(R_beam[p,:]) }   (÷ n_pulse variance)
        └─ Option C: incoherent mean/stack across files
                single:   P = mean_f{ P_file }            (÷ n_files variance)
                slow_rti: P = stack_f{ P_file }            (n_files time columns)

Singularity constraint

Parameter Constraint Effect
Z (subbands) Hard: Z < V; recommended: Z ≤ (V+1)/2 Above (V+1)/2, R_f is rank-deficient; warning issued
K (resolution factor) None — K is a free parameter Only sets output grid density; does not enter R_f

Instrument parameters

Instrument gate_spacing_km (r₀) Typical V Recommended Z K Δr
WISS (Liu et al. 2023) 3.84 km 200 100 10 384 m
VIPIR WI937 1.499 km 960 480 10 150 m

See Also

References

Liu, T., Yang, G., & Jiang, C. (2023). High-resolution sporadic E layer observation based on ionosonde using a cross-spectrum analysis imaging technique. Space Weather, 21, e2022SW003195. https://doi.org/10.1029/2022SW003195