Measurement Tools
The Tools panel turns a click or a drag on the live display into a real measurement, computed by the simulation on the same dataset and geometry as the render. Any result can be exported to HDF5 from the panel.
| Tool | Input | Result |
|---|---|---|
| Tracer | click | Field values along the camera ray, against physical path length |
| Histogram (2D pixels) | drag rect | Distribution of displayed pixel values in the rectangle |
| Histogram (3D cells) | drag rect | Distribution of a 3D cell field over the cells the rectangle covers |
| Absorption (Lyα) | click | τ(λ) along the sightline, from SightlineOperator |
Depth and grid mode
Tracer and Absorption share two extra controls.
Depth, in box-size units, sets how far each ray integrates. 0 displays as
auto and means what the simulation itself does: the run's dist_max if one is
set, otherwise the box exit. Any positive value caps the ray shorter.
Grid turns a click into a drag: the rectangle becomes an n×n fan of rays, with every profile overlaid in one plot.
Absorption
A toggle switches the plot between optical depth τ(λ) and transmitted flux
e−τ. The window is ±window_kms around the line centre, sampled
into the number of spectral pixels set by the slider.
Orientation
SightlineOperator puts the observer at ray_end, so its direction runs
source → observer and d·v > 0 is a blueshift. A camera ray runs the other way,
so the tool hands its segment over reversed. Emitting it in camera order instead
mirrors every spectrum in velocity — with no other visible symptom, which is how
it shipped that way once. The geometry is now pinned by
tests/tests_camera_sightline.cpp and by orientation-sensitive gates in
regression_tests/CI/sightline_absorption.
Requirements
The tool declines with a warning rather than ending the run if:
- the run is multi-rank, or uses
pbc: true(the sightline is an explicit-ray operator), or - any of
Density,Temperature,VelocityX,VelocityY,VelocityZ,HIdensityis not loaded — Lyα optical depth needs all six.
In grid mode, rays that miss the domain keep their slot and come back empty.