NF2 codebase pipeline

NF2’s basic workflow is:

download FITS magnetogram data
  -> load it as boundary data
  -> train a neural extrapolation model
  -> convert or evaluate the trained .nf2 result

The important point is that the .nf2 output is not just a picture. It stores enough model state to reload the learned field and evaluate derived quantities such as current density, divergence, slices, field lines, and magnetic energy.

Main steps

  1. Download JSOC/DRMS FITS data with nf2.data.download*.
  2. Load FITS boundaries with nf2.loader.fits.
  3. Train with nf2.extrapolate or nf2.extrapolate_series.
  4. Evaluate or convert with nf2.evaluation and nf2.convert.

Relevant local paths

  • Downloading: /Users/andrew/MISCADA/Project_COMP52060/NF2/nf2/data/download.py
  • CLI download range: /Users/andrew/MISCADA/Project_COMP52060/NF2/nf2/data/download_range.py
  • FITS loaders: /Users/andrew/MISCADA/Project_COMP52060/NF2/nf2/loader/fits.py
  • Single extrapolation: /Users/andrew/MISCADA/Project_COMP52060/NF2/nf2/extrapolate.py
  • Series extrapolation: /Users/andrew/MISCADA/Project_COMP52060/NF2/nf2/extrapolate_series.py

Single-frame AR 11158 path

For a single-frame AR 11158 run:

JSOC/DRMS query
  -> FITS files: Br/Bp/Bt plus errors
  -> NF2 FITS loader
  -> neural field training with boundary + physics losses
  -> .nf2 checkpoint/result
  -> diagnostics or conversion

The single-frame entry point is nf2.extrapolate. The time-series entry point is nf2.extrapolate_series.

Output meaning

The local smoke result loads with high-level keys:

['config', 'data', 'model', 'transforms']

Those keys are why downstream tools can query the trained field rather than only plot a saved cube.