Catalogue 3D Viewer¶
Reference for vtkWindowCatalogue3D (src/gui/vtkWindowCatalogue3D.h/cpp).
Opening a catalogue¶
MainWindow::openCatalogue3D():
Health-check the backend via
BackendClient::health()Open
RemoteFileBrowserDialogfiltered to.csvConstruct
vtkWindowCatalogue3D(filepath, backendUrl, backendToken)The viewer calls
BackendClient::openCatalogue()synchronously in its constructor, then triggers the firstapplyFilter()call
Distance resolution priority¶
For each entry, Catalogue3DParser::detail::entryDistanceMpc(entry, schema) applies in order:
entry.distanceMpc > 0— cosmology-selector override (set byonCosmologyFinished())Catalogue
distance/dist/dMpcfield — positive values onlyRedshift field (
z,REDSHIFT,ZSPEC,ZMEAN,ZPHOT, …) →comovingDistanceMpc(z)— if result > 0Hardcoded 300 Mpc fallback
comovingDistanceMpc(z) uses a simple Riemann integral with Planck18 constants (H₀ = 67.74, Ωm = 0.3089, ΩΛ = 0.6911). It returns 0 for z ≤ 0.
Coordinate frames¶
Frame |
Enum |
Description |
|---|---|---|
FK5 / J2000 |
|
Parser output; no conversion needed |
Galactic (l, b) |
|
|
applyFrameToEntries() recomputes sceneX/Y/Z for all entries when the frame combo changes or after cosmology update.
Cosmology model selector¶
Model |
Implementation |
Network call |
|---|---|---|
Planck18 |
local |
none |
Planck15 |
backend |
async |
Planck13 |
backend |
async |
WMAP9 |
backend |
async |
On model change:
Planck18 → clears all
entry.distanceMpcoverrides, recomputes FK5 Cartesian locally, callsapplyFrameToEntries()Others →
m_cosmologyWatcherlaunches batch request;onCosmologyFinished()applies results
Geometry modes¶
Mode |
VTK source |
Description |
|---|---|---|
Ellipsoid |
|
scaled by major/minor axes |
Sphere |
|
single radius |
Point |
|
for very dense datasets |
Cross |
|
wireframe cross |
Size modes¶
Mode |
Scale source |
|---|---|
Fixed |
constant |
Major axis |
|
LLS |
|
Flux |
|
Redshift field detection¶
Catalogue3DParser::detail::detectedRedshiftField(schema) matches schema headers (case-insensitive, stripped of non-alphanumeric chars) against an alias list in priority order:
Z > REDSHIFT > ZSPEC > ZMEAN > ZPHOT
Compound names like flux_z normalise to FLUXZ and do not match Z.
Interaction¶
Event |
Effect |
|---|---|
Mouse move |
|
Left click (no drag) |
select source → red wireframe sphere + info panel |
Left click + drag |
camera trackball rotate (VTK) |
Click selected source again |
deselect |
|
table row → camera center on source |
Pagination¶
Page size: 50 000 rows. “Load more (N remaining)” button appears in the Filter sidebar page when more rows are available. Each load-more fetch uses the same active filters and increments the offset. After each append the full VTK scene is rebuilt (points, glyphs, labels).