RT1D NVIS O/X from IRI (config1D)¶
End-to-End 1D Tracer Example
Build a single-point IRI profile, run O/X NVIS tracers, and overlay IRI plasma-frequency and electron-density diagnostics on one scientific plot.
This page explains:
examples/rtmodel_nvis_ox_iri_1d.py
Call Flow¶
main()parses CLI arguments (--config,--event, frequency sweep, regridding options).load_config_1D(...)resolves bundled or user-providedconfig1D.json.RT1D(...)initializes a 1D profile and fetches:- IRI electron density (
fetch_iri=True) - geomagnetic profile (
fetch_geomag=True, optional via--no-geomag) RT1D.NVIS_tracer(...)runs O-mode and X-mode tracer sweeps._plot_results(...)draws a single-panel figure:- bottom x-axis: frequency [MHz]
- y-axis: height/altitude [km]
- O/X virtual-height traces
- IRI plasma-frequency profile on same axis
- top x-axis: IRI
N_e - Script logs summary diagnostics with
loguruand saves figure to--out.
Key Code (From rtmodel_nvis_ox_iri_1d.py)¶
1) Build RT1D Profile from Config¶
cfg = load_config_1D(config_path)
rt = RT1D(
cfg=cfg,
time=event_time,
fetch_iri=True,
fetch_geomag=not args.no_geomag,
fetch_msise=False,
workers=max(1, int(getattr(cfg, "worker", 1))),
)
2) Run O/X Tracers¶
freqs_mhz = np.linspace(args.fmin, args.fmax, args.nfreq)
o_res = rt.NVIS_tracer(
freq_mhz=freqs_mhz,
mode="O",
formulation=args.formulation,
use_nonuniform_grid=not args.uniform_grid,
nonuniform_points=int(args.nonuniform_points),
nonuniform_sharpness=float(args.nonuniform_sharpness),
)
x_res = rt.NVIS_tracer(
freq_mhz=freqs_mhz,
mode="X",
formulation=args.formulation,
use_nonuniform_grid=not args.uniform_grid,
nonuniform_points=int(args.nonuniform_points),
nonuniform_sharpness=float(args.nonuniform_sharpness),
)
3) Plot Traces + IRI Diagnostics¶
pf_mhz = RT1D.den_to_plasma_freq_hz(ne_m3) / 1e6
ax.plot(freqs_mhz, o_res.vh_km, ...)
ax.plot(freqs_mhz, x_res.vh_km, ...)
ax.plot(pf_mhz, alt_km, ..., label="IRI fp profile")
ax_top = ax.twiny()
ax_top.semilogx(ne_m3, alt_km, ..., label="IRI Ne profile")
Regridding Controls (Jagged-Trace Reduction)¶
RT1D.NVIS_tracer(...) supports stretched nonuniform vertical remapping:
--uniform-griddisables regridding--nonuniform-pointsincreases points near reflection region--nonuniform-sharpnessconcentrates samples near turning height
Typical tuning:
- points:
300-600 - sharpness:
10-18
Run¶
Default sweep:
cd /home/chakras4/Research/CodeBase/trace
python examples/rtmodel_nvis_ox_iri_1d.py --fmin 1 --fmax 12 --nfreq 301
Smoothed sweep:
python examples/rtmodel_nvis_ox_iri_1d.py \
--fmin 1 --fmax 12 --nfreq 301 \
--nonuniform-points 500 \
--nonuniform-sharpness 16
Output Figure¶
Default output:
docs/examples/figures/rt1d_nvis_ox_iri.png
Related Files¶
examples/rtmodel_nvis_ox_iri_1d.pyhfpytrace/model/rt1d.pyhfpytrace/model/dispersion.pyhfpytrace/density/iri.pyhfpytrace/geomag.py
