Demo Data Examples

This page maps the current Heliokit CLI to the sample data used by the desktop demo workflows. Set $DEMO_DATA to the directory where those sample files are available.

Install the host and the components used below:

python -m pip install heliokit `
  heliokit-data-cdf heliokit-data-plt heliokit-data-vti `
  heliokit-data-h5 heliokit-filter-data-calculator `
  heliokit-filter-format-convert heliokit-filter-meshtovtk-scs `
  heliokit-filter-scattertovtk heliokit-viz2d-xy-line `
  heliokit-viz2d-histogram heliokit-viz2d-histogram2d `
  heliokit-viz3d-volume heliokit-viz3d-slice `
  heliokit-viz3d-iso-surface heliokit-viz3d-wireframe

Then activate short component commands in the current terminal:

$DEMO_DATA = "D:\data\heliokit-demo-data"
$OUT = "D:\data\heliokit-demo-output"
New-Item -ItemType Directory -Force $OUT | Out-Null
heliokit activate --no-prompt | Invoke-Expression

After activation, component names can be used as short commands, such as histogram2d or meshtovtk_scs.

Data inspection

Inspect the PSP CDF file used by the desktop XY-LINE and HISTOGRAM demos:

heliokit data read cdf "$DEMO_DATA\1D\psp_fld_l2_mag_rtn_2020010300_v02.cdf"

Inspect the PLT file used by the desktop HISTOGRAM2D demo:

heliokit data read plt "$DEMO_DATA\2D\CMF_ME.plt"

Inspect the VTI file used by VTK visualization demos:

heliokit data read vti "$DEMO_DATA\VTK\uniform_004.vti"

2D visualization

The desktop XY-LINE.swimc demo selects components from psp_fld_l2_mag_RTN. The current CLI accepts whole dataset names rather than component-index selectors, so the runnable examples below use the CMF PLT data also present in the demo set.

xy_line `
  --input "$DEMO_DATA\2D\CMF_ME.plt" `
  --x X `
  --y BR `
  --save "$OUT\xy_line.png" `
  --no-show

Example output:

XY line plot generated from CMF_ME.plt using X and BR

Create a histogram from a CMF PLT variable:

histogram `
  --input "$DEMO_DATA\2D\CMF_ME.plt" `
  --array BR `
  --bins 10 `
  --save "$OUT\histogram.png" `
  --no-show

Create a 2D histogram from the CMF PLT variables used by the desktop demo:

histogram2d `
  --input "$DEMO_DATA\2D\CMF_ME.plt" `
  --x BR `
  --y BF `
  --bins 72 `
  --save "$OUT\histogram2d.png" `
  --no-show

3D VTK visualization

Render a volume screenshot from the VTI demo file:

volume `
  --input "$DEMO_DATA\VTK\uniform_004.vti" `
  --array density `
  --save "$OUT\volume.png" `
  --no-show

Render a middle-Z slice:

slice `
  --input "$DEMO_DATA\VTK\uniform_004.vti" `
  --array density `
  --axis z `
  --save "$OUT\slice.png" `
  --no-show

Render an iso-surface:

iso_surface `
  --input "$DEMO_DATA\VTK\uniform_004.vti" `
  --array density `
  --save "$OUT\iso_surface.png" `
  --no-show

Render a wireframe:

wireframe `
  --input "$DEMO_DATA\VTK\uniform_004.vti" `
  --array density `
  --save "$OUT\wireframe.png" `
  --no-show

Filters and conversion

Calculate a derived CMF magnitude from PLT variables:

data_calculator `
  --expression "sqrt(BR**2 + BF**2)" `
  --var BR="$DEMO_DATA\2D\CMF_ME.plt::BR" `
  --var BF="$DEMO_DATA\2D\CMF_ME.plt::BF" `
  --name br_bf_magnitude `
  --output "$OUT\cmf_br_bf_magnitude.h5"

Convert a spherical mesh H5 file to VTI. Radius bounds and active scalar default from the loaded data, matching the CLI default-parameter behavior.

meshtovtk_scs `
  --rad "$DEMO_DATA\3D\coronal.h5::R" `
  --theta "$DEMO_DATA\3D\coronal.h5::THETA" `
  --phi "$DEMO_DATA\3D\coronal.h5::PHI" `
  --scalar value="$DEMO_DATA\3D\coronal.h5::VALUE" `
  --size 64 `
  --output "$OUT\coronal_value.vti"

Convert scattered CMF PLT data to a sampled VTI:

scattertovtk `
  --x "$DEMO_DATA\2D\CMF_ME.plt::X" `
  --y "$DEMO_DATA\2D\CMF_ME.plt::Z" `
  --z "$DEMO_DATA\2D\CMF_ME.plt::FS" `
  --scalar BR="$DEMO_DATA\2D\CMF_ME.plt::BR" `
  --size 64 `
  --output "$OUT\cmf_scatter.vti"

Convert the CMF PLT file to HDF5:

format_convert `
  --input "$DEMO_DATA\2D\CMF_ME.plt" `
  --output "$OUT\CMF_ME.h5"

Current CLI coverage

The desktop demo states for PB, PB_FNRGF, QFactor, Twist, CMF, and several business-specific 2D tools are present in the sample state files, but their current CLI components still use placeholder adapters. They are not shown as runnable CLI examples until those runners are implemented.