VoidRender API

VoidRender for VoidFinder

load_galaxy_data

load_void_data

vast.voidfinder.viz.load_void_data(infilename)[source]

Load voids as formatted for VoidFinder

Parameters:
infilenamestring

path to desired VoidFinder fits output file

Returns:
holes_xyznumpy.ndarray shape (N,3)

the xyz centers of the holes

holes_radiinumpy.ndarray shape (N,)

the radii of the holes

hole_flagsnumpy.ndarray shape (N,)

the VoidFinder ‘flag’ output representing which void group a hole belongs to

VoidRender

vast.voidfinder.viz.VoidRender.__init__(self, holes_xyz=None, holes_radii=None, holes_group_IDs=None, galaxy_xyz=None, galaxy_display_radius=2.0, wall_galaxy_xyz=None, wall_distance=3.5, remove_void_intersects=1, filter_for_degenerate=True, canvas_size=(800, 600), title='VoidFinder Results', camera_start_location=None, camera_start_orientation=None, start_translation_sensitivity=1.0, start_rotation_sensitivity=1.0, galaxy_color=array([1., 0., 0., 1.], dtype=float32), wall_galaxy_color=array([0., 0., 0., 1.], dtype=float32), void_hole_color=array([0., 0., 1., 0.95], dtype=float32), SPHERE_TRIANGULARIZATION_DEPTH=3, verbose=False)

Main class for initializing the visualization.

Parameters:
holes_xyz(N,3) numpy.ndarray

xyz coordinates of the hole centers

holes_radii(N,) numpy.ndarray

length of the hole radii in xyz coordinates

holes_group_IDs(N,) numpy.ndarray of integers

Void group to which a given hole belongs according to VoidFinder

galaxy_xyz(M,3) numpy.ndarray

xyz coordinates of the galaxy locations

galaxy_display_radiusfloat

using a constant radius to display galaxy points since they should all be small compared to the void holes, and they don’t have corresponding radii

wall_galaxy_xyz(K,3) numpy.ndarray

xyz coordinates of the wall galaxy locations

wall_distancefloat

xyz distance at which to connect two wall galaxies with a web visualization. This should be set to the isolated galaxy distance limit calculated in VoidFinder (and printed to the terminal).

remove_void_intersectsint, default 1

0 - turn off 1 - remove all intersections 2 - remove intersections only within predefined Void Groups based on hole_group_IDs turn on (True) or off (False) the clipping of display triangles for void interiors. When true, removes all the triangles of a void hole sphere which are fully contained inside another void hole, which essentially creates a surface union of void holes which overlap. Note that for smaller sphere density values, the edge artifacts along the seams where void holes intersect will be more visually apparent

filter_for_degeneratebool, default True

if true, filter the holes_xyz and holes_radii for any holes which are completely contained within another hole and remove them

canvas_size2-tuple

(width, height) in pixels for the output visualization

titlestr

value to display at top of the window

camera_start_locationndarray of shape (3,) dtype float32

starting location for the camera. Remember to multiply by -1.0 to go from data coordinates to camera coordinates example: np.zeros(3, dtype=np.float32)

camera_start_orientationndarray of shape (3,3) dtype float32

rotation matrix describing initial camera orientation example: np.eye(3, dtype=np.float32)

start_translation_sensitivityfloat

starting sensitivity for translation keys - wasdrf

start_rotation_sensitivityfloat

starting sensitivity for rotation keys - qeijkl

galaxy_colorndarray shape (4,) dtype float32

values from 0.0-1.0 representing RGB and Alpha for the galaxy points

wall_galaxy_colorndarray shape (4,) dtype float32

values from 0.0-1.0 representing RBG and Alpha for the wall galaxy points

void_hole_colorndarray shape (4,) or (num_void,4) dtype float32

values from 0.0-1.0 representing RGB and Alpha for the voids

void_highlight_colorndarray shape (4,) dtype float32

values from 0.0-1.0 representing RGB and Alpha for the void highlight, when the camera enters a void hole it turns the hole this color so you know you are inside IF enable_void_interior_highlight == True

SPHERE_TRIANGULARIZATION_DEPTHinteger, default 3

number of subdivisions in the icosahedron sphere triangularization to make. Total vertices will be num_voids * 20 * 3 * 4^SPHERE_TRIANGULARIZATION_DEPTH so be careful increasing this value above 3. Default of 3 results in 3840 vertices (1280 triangles) per sphere

Notes

Controls:

w - translate forward s - translate backward a - translate left d - translate right r - elevate up f - elevate down

q - roll left e - roll right i - pitch up k - pitch down j - yaw left k - yaw right

z - increase translation sensitivity x - decrease translation sensitivity

m - start/stop video recording NOTE: MAY TAKE A LOT OF RAM 0 - screenshot

Left mouse click - pitch & yaw Right mouse click - translate forward & backward Mouse Wheel - increase & decrease galaxy size

Examples

from vast.voidfinder.viz import VoidRender, load_void_data, load_galaxy_data

holes_xyz, holes_radii, holes_flags = load_void_data(“vollim_dr7_cbp_102709_holes.txt”)

galaxy_data = load_galaxy_data(“vollim_dr7_cbp_102709.dat”)

viz = VoidFinderCanvas(holes_xyz,

holes_radii, galaxy_data, canvas_size=(1600,1200))

viz.run()

VoidRender for V2

load_galaxy_data

vast.vsquared.viz.load_galaxy_data(infilename)[source]

Load a table of galaxies for use in VoidRender

Parameters:
infilenamestring

path to desired data file intended to be a fits table with columns ‘ra’, ‘dec’, and ‘z’

Returns:
galaxy_data_xyznumpy.ndarray shape (N,3)

xyz coordinates of galaxies from the data table

load_void_data

vast.vsquared.viz.load_void_data(infilename)[source]

Load voids as formatted for Vsquared

Parameters:
infilenamestring

path to desired void catalog

Returns:
voids_tri_x, _y, _znumpy.ndarrays shape (N,3)

the xyz coordinates of the the vertices of triangles making up void edges

voids_normnumpy.ndarray shape (N,3)

the xyz coordinates of each triangle’s unit normal vector

voids_idnumpy.ndarray shape (N,)

the void ID of each triangle

gal_viznumpy.ndarray shape (N,)

the void ID of each galaxy

gal_oppnumpy.ndarray shape (N,)

the void ID of each galaxy’s nearest neighbor

VoidRender

vast.vsquared.viz.VoidRender.__init__(self, voids_tri_x=None, voids_tri_y=None, voids_tri_z=None, voids_norm=None, voids_id=None, galaxy_xyz=None, galaxy_display_radius=2.0, gal_viz=None, gal_opp=None, canvas_size=(800, 600), title='V2 Results', camera_start_location=None, camera_start_orientation=None, start_translation_sensitivity=1.0, start_rotation_sensitivity=1.0, galaxy_color=array([1., 0., 0., 1.], dtype=float32), void_color=array([0., 0., 1., 0.95], dtype=float32))

Main class for initializing the visualization.

Parameters:
voids_tri_x, _y, _znumpy.ndarrays shape (N,3)

the xyz coordinates of the the vertices of triangles making up void edges

voids_normnumpy.ndarray shape (N,3)

the xyz coordinates of each triangle’s unit normal vector

voids_idnumpy.ndarray shape (N,)

the void ID of each triangle

galaxy_xyz(N,3) numpy.ndarray

xyz coordinates of the galaxy locations

galaxy_display_radiusfloat

using a constant radius to display galaxy points since they should all be small compared to the void holes, and they don’t have corresponding radii

gal_viznumpy.ndarray shape (N,)

the void ID of each galaxy

gal_oppnumpy.ndarray shape (N,)

the void ID of each galaxy’s nearest neighbor

canvas_size2-tuple

(width, height) in pixels for the output visualization

titlestr

value to display at top of the window

camera_start_locationndarray of shape (3,) dtype float32

starting location for the camera. Remember to multiply by -1.0 to go from data coordinates to camera coordinates example: np.zeros(3, dtype=np.float32)

camera_start_orientationndarray of shape (3,3) dtype float32

rotation matrix describing initial camera orientation example: np.eye(3, dtype=np.float32)

start_translation_sensitivityfloat

starting sensitivity for translation keys - wasdrf

start_rotation_sensitivityfloat

starting sensitivity for rotation keys - qeijkl

galaxy_colorndarray shape (4,) dtype float32

values from 0.0-1.0 representing RGB and Alpha for the galaxy points

void_colorndarray shape (4,) or (num_void,4) dtype float32

values from 0.0-1.0 representing RGB and Alpha for the voids

Notes

Controls: w - translate forward s - translate backward a - translate left d - translate right r - elevate up f - elevate down

q - roll left e - roll right i - pitch up k - pitch down j - yaw left k - yaw right

z - increase translation sensitivity x - decrease translation sensitivity

m - start/stop video recording NOTE: MAY TAKE A LOT OF RAM 0 - screenshot

Left mouse click - pitch & yaw Right mouse click - translate forward & backward Mouse Wheel - increase & decrease galaxy size

Examples

from vast.vsquared.viz import VoidRender, load_void_data, load_galaxy_data

voids_tri_x, voids_tri_y, voids_tri_z, voids_norm, voids_id, gal_viz, gal_opp = load_void_data(“DR7_triangles.dat”, “DR7_galviz.dat”)

galaxy_data = load_galaxy_data(“vollim_dr7_cbp_102709.fits”)

viz = VoidFinderCanvas(voids_tri_x, voids_tri_y, voids_tri_z,

voids_norm, voids_id, galaxy_data, gal_viz, gal_opp, canvas_size=(1600,1200))

viz.run()