Downloading Data#

nf2-download provides a single command with source-specific download modes.

Most download modes use JSOC. Use the email address registered with JSOC, make sure DRMS/JSOC access works in the active Python environment, and expect large full-disk or time-series requests to take longer than a local file copy. After each download, check that every required component exists before starting NF2:

ls ./data/sharp_cea_377/*.Br.fits
ls ./data/sharp_cea_377/*.Bt.fits
ls ./data/sharp_cea_377/*.Bp.fits

For a single extrapolation, each component should resolve to one matching time step. For a series, each component pattern must resolve to the same number of files, and the sorted filenames should be chronological.

SHARP CEA#

nf2-download \
  --source hmi_sharp \
  --download_dir "./data/sharp_cea_377" \
  --email "you@example.org" \
  --sharp_num 377 \
  --t_start 2011-02-15T00:00:00 \
  --t_end 2011-02-15T00:12:00 \
  --cadence 720s \
  --series sharp_cea_720s \
  --segments Br,Bp,Bt,Br_err,Bp_err,Bt_err

Use --noaa_num instead of --sharp_num when the NOAA active-region number should be resolved through JSOC metadata. To inspect the mapping directly, use nf2-noaa-to-sharp:

nf2-noaa-to-sharp \
  --time 2011-02-15T00:00:00 \
  --email "you@example.org" \
  --noaa_nums 11158

SHARP CEA runs usually need Br, Bt, and Bp. Error maps Br_err, Bt_err, and Bp_err are optional in some configs but recommended when the example config exposes those placeholders. The filenames written by JSOC include the SHARP/HARP number, timestamp, and segment name, for example hmi.sharp_cea_720s.377.20110215_000000_TAI.Br.fits.

HMI Full Disk#

nf2-download \
  --source hmi_full_disk \
  --download_dir "./data/hmi_spherical/full_disk" \
  --email "you@example.org" \
  --t_start 2024-05-10T00:00:00 \
  --series B_720s

By default, full-disk vector data are converted to Br/Bt/Bp with JSOC HmiB2ptr. Use --no_convert_ptr to download the native segments.

Use the converted Br/Bt/Bp products for the spherical example configs. If full-disk uncertainty maps are available, pass them as --full_disk_Br_err, --full_disk_Bt_err, and --full_disk_Bp_err; for series runs use --full_disk_Br_err_pattern, --full_disk_Bt_err_pattern, and --full_disk_Bp_err_pattern, for example ./data/hmi_spherical/full_disk/*.Br_err.fits. If you disable conversion, the native JSOC segments are useful for custom preprocessing but are not drop-in replacements for the map boundary examples.

HMI Synoptic#

nf2-download \
  --source hmi_synoptic \
  --download_dir "./data/hmi_spherical/synoptic" \
  --email "you@example.org" \
  --t_start "2025-01-01T00:00:00" \
  --series b_synoptic \
  --segments Br,Bt,Bp

Use --carrington_rotation to select the rotation explicitly, or --t_start to infer it from a time. Use --carrington_rotation_end or --t_end for an inclusive range of rotations.

Download the polar-filled radial-field product with:

nf2-download \
  --source hmi_synoptic \
  --download_dir "./data/hmi_spherical/synoptic" \
  --email "you@example.org" \
  --carrington_rotation 2173 \
  --synoptic_product mr_polfil

Synoptic maps are usually paired with full-disk maps in spherical runs. Choose the Carrington rotation that covers the full-disk observation time, or let --t_start infer it. When mixing full-disk and synoptic constraints, keep the component naming consistent: NF2 expects spherical Br, Bt, and Bp maps unless your local config says otherwise.