hyrax.verbs.visualize

Attributes

logger

Classes

Visualize

Verb to create a visualization

Module Contents

logger[source]
class Visualize(config)[source]

Bases: hyrax.verbs.verb_registry.Verb

Verb to create a visualization

__init__()[source]

Overall initialization for all verbs that saves the config

cli_name = 'visualize'[source]
add_parser_kwargs[source]
static setup_parser(parser: argparse.ArgumentParser)[source]

CLI not implemented for this verb

run_cli(args: argparse.Namespace | None = None)[source]

CLI not implemented for this verb

run(input_dir: pathlib.Path | str | None = None, *, return_verb: bool = False, make_lupton_rgb_opts: dict | None = None, **kwargs)[source]

Generate an interactive notebook visualization of a latent space that has been umapped down to 2d.

The plot contains two holoviews objects, a scatter plot of the latent space, and a table of objects which can be populated by selecting from the scatter plot.

Parameters:
  • input_dir (Optional[Union[Path, str]], optional) – Directory holding the output from the ‘umap’ verb, by default None. When not provided, we use [results][inference_dir] from config. If that’s false; we the most recent umap in the current results directory.

  • return_verb (bool, optional) – If True, also return the underlying Visualize instance for post-hoc access to selection state. Defaults to False.

  • make_lupton_rgb_opts (dict, optional) – Dictionary of options to pass to astropy’s make_lupton_rgb function for RGB image creation. Default is {“stretch”: 5, “Q”: 8}. Common parameters include stretch (brightness/contrast) and Q (softening parameter for asinh transformation).

  • kwargs – Keyword arguments are passed through as options for the plot object as plot_pane.opts(**plot_options). It is not recommended to override the “tools” plot option, because that will break the integration between the plot selection operations and the table.

Returns:

  • Holoviews, if return_verb = True (defaul) – A Collection of Haloviews Panes

  • tuple of (pane, Visualize), if return_verb = True – Returns a 2-tuple with the pane and the verb instance.

visible_points(x_range: tuple | list, y_range: tuple | list)[source]

Generate a hv.Points object with the points inside the bounding box passed.

This is the event handler for moving or scaling the latent space plot, and is called by Holoviews.

Parameters:
  • x_range (tuple or list) – min and max x values

  • y_range (tuple or list) – min and max y values

Returns:

Points lying inside the bounding box passed

Return type:

hv.Points

update_points(**kwargs) None[source]

This is the main UI event handler for selection tools on the plot. If you are a dynamic map in the layout of the visualizer who updates based on plot selection you MUST call this function.

This function accepts the data values from all streams and uses the differences between the current call and prior calls to differentiate between different UI events.

The self.prev_kwargs dictionary is used to store previous calls to this function, and the _called_* helpers perform the differencing for each case.

Calling this function GUARANTEES that self.points, self.points_id, and self.points_idx are up-to-date with the user’s latest selection, regardless of the order that Holoviews evaluates the DynamicMaps in.

_called_lasso(kwargs)[source]
_called_tap(kwargs)[source]
_called_box_select(kwargs)[source]
poly_select_points(geometry) tuple[numpy.typing.ArrayLike, numpy.typing.ArrayLike, numpy.typing.ArrayLike][source]

Select points inside a polygon.

Parameters:

geometry (list) – List of x/y points describing the verticies of the polygon

Returns:

First element is an ndarray of x/y points in latent space inside the polygon Second element is an ndarray of corresponding object ids

Return type:

Tuple

box_select_points(x_range: tuple | list, y_range: tuple | list) tuple[numpy.typing.ArrayLike, numpy.typing.ArrayLike, numpy.typing.ArrayLike][source]

Return the points and IDs for a box in the latent space

Parameters:
  • x_range (tuple or list) – min and max x values

  • y_range (tuple or list) – min and max y values

Returns:

First element is an ndarray of x/y points in latent space inside the box Second element is an ndarray of corresponding object ids

Return type:

Tuple

box_select_indexes(x_range: tuple | list, y_range: tuple | list)[source]

Return the indexes inside of a particular box in the latent space

Parameters:
  • x_range (tuple or list) – min and max x values

  • y_range (tuple or list) – min and max y values

Returns:

Array of data indexes where the latent space representation falls inside the given box.

Return type:

np.ndarray

selected_objects(**kwargs)[source]

Generate the holoview table for a selected set of objects based on input from the Lasso, Tap, and SelectionXY streams.

Returns:

Table with Object ID, x, y locations of the selected objects

Return type:

hv.Table

_table_from_points()[source]
static _bounding_box(points)[source]
_even_aspect_bounding_box()[source]
get_selected_df()[source]

Retrieve a pandas DataFrame containing the currently selected points and their associated metadata.

Returns:

A DataFrame with one row per selected point and columns: [“object_id”, “x”, “y”, *additional_fields].

Return type:

pd.DataFrame

_load_images(**kwargs)[source]
_make_image_pane(total_width: int = 500, *args, **kwargs)[source]

Sample up to 6 of the selected object_ids, load their FITS cutouts from [general][data_dir], and render as small hv.Image thumbnails in a grid.