Imviz#

class jdaviz.configs.imviz.helper.Imviz(*args, **kwargs)[source]#

Bases: ImageConfigHelper

Imviz Helper class.

Methods Summary

create_image_viewer([viewer_name])

Create a new image viewer.

destroy_viewer(viewer_id)

Destroy a viewer associated with the given ID.

get_aperture_photometry_results()

Return aperture photometry results, if any.

get_catalog_source_results()

Return table of sources given by querying from a catalog, if any.

get_data([data_label, spatial_subset, cls])

Returns data with name equal to data_label of type cls with subsets applied from spatial_subset.

get_link_type(data_label_1, data_label_2)

Find the type of glue linking between the given data labels.

get_ref_data()

link_data([link_type, wcs_fallback_scheme, ...])

(Re)link loaded data in Imviz with the desired link type.

load_data(data[, data_label, show_in_viewer])

Load data into Imviz.

Methods Documentation

create_image_viewer(viewer_name=None)[source]#

Create a new image viewer.

To display data in this new viewer programmatically, first get the new viewer ID from the small tab on the top left of viewer display. Then, use add_data_to_viewer() from imviz.app by passing in the new viewer ID and the desired data label, once per dataset you wish to display.

Alternately, you can also display data interactively via the GUI.

Parameters:
viewer_namestr or None

Viewer name/ID to use. If None, it is auto-generated.

Returns:
viewerImvizImageView

Image viewer instance.

destroy_viewer(viewer_id)[source]#

Destroy a viewer associated with the given ID.

Raises:
ValueError

Default viewer cannot be destroyed.

get_aperture_photometry_results()[source]#

Return aperture photometry results, if any. Results are calculated using Aperture Photometry plugin.

Returns:
resultsQTable or None

Photometry results if available or None otherwise.

get_catalog_source_results()[source]#

Return table of sources given by querying from a catalog, if any. Results are calculated using Catalog Search plugin.

Returns:
resultsQTable or None

Table of sources if available or None otherwise.

get_data(data_label=None, spatial_subset=None, cls=None)[source]#

Returns data with name equal to data_label of type cls with subsets applied from spatial_subset.

Parameters:
data_labelstr, optional

Provide a label to retrieve a specific data set from data_collection.

spatial_subsetstr, optional

Spatial subset applied to data.

clsSpectrum1D, CCDData, optional

The type that data will be returned as.

Returns:
datacls

Data is returned as type cls with subsets applied.

Find the type of glue linking between the given data labels. A link is bi-directional. If there are more than 2 data in the collection, one of the given labels should be the reference data or look-up will fail.

Parameters:
data_label_1, data_label_2str

Labels for the data linked together.

Returns:
link_type{‘pixels’, ‘wcs’, ‘self’}

One of the link types accepted by the Orientation plugin or 'self' if the labels are identical.

Raises:
ValueError

Link look-up failed.

get_ref_data()[source]#

(Re)link loaded data in Imviz with the desired link type. All existing links will be replaced.

Parameters:
link_type{‘pixels’, ‘wcs’}

Choose to link by pixels or WCS.

wcs_fallback_scheme{None, ‘pixels’}

If WCS linking failed, choose to fall back to linking by pixels or not at all. This is only used when link_type='wcs'. Choosing None may result in some Imviz functionality not working properly.

wcs_use_affinebool

Use an affine transform to represent the offset between images if possible (requires that the approximation is accurate to within 1 pixel with the full WCS transformations). If approximation fails, it will automatically fall back to full WCS transformation. This is only used when link_type='wcs'. Affine approximation is much more performant at the cost of accuracy.

load_data(data, data_label=None, show_in_viewer=True, **kwargs)[source]#

Load data into Imviz.

Parameters:
dataobj or str

File name or object to be loaded. Supported formats include:

  • 'filename.fits' (or any extension that astropy.io.fits supports; first image extension found is loaded unless ext keyword is also given)

  • 'filename.fits[SCI]' (loads only first SCI extension)

  • 'filename.fits[SCI,2]' (loads the second SCI extension)

  • 'filename.jpg' (requires scikit-image; grayscale only)

  • 'filename.png' (requires scikit-image; grayscale only)

  • JWST ASDF-in-FITS file (requires stdatamodels and gwcs; data or given ext + GWCS)

  • Roman ASDF file or roman_datamodels.datamodels.ImageModel (requires roman-datamodels)

  • HDUList object (first image extension found is loaded unless ext keyword is also given)

  • ImageHDU object

  • NDData object (2D only but may have unit, mask, or uncertainty attached)

  • Numpy array (2D or 3D); if 3D, it will treat each slice at axis=0 as a separate image (limit is 16 slices), however loading too many slices will cause performance issue, so consider using Cubeviz instead.

data_labelstr or None

Data label to go with the given data. If not given, this is automatically determined from filename or randomly generated. The final label shown in Imviz may have additional information appended for clarity.

show_in_viewerstr or bool

If True, show the data in default viewer. If a string, show in that viewer.

kwargsdict

Extra keywords to be passed into app-level parser. The only one you might call directly here is ext (any FITS extension format supported by astropy.io.fits).

Notes

When loading image formats that support RGB color like JPG or PNG, the files are converted to greyscale. This is done following the algorithm of skimage.color.rgb2gray(), which involves weighting the channels as 0.2125 R + 0.7154 G + 0.0721 B. If you prefer a different weighting, you can use skimage.io.imread() to produce your own greyscale image as Numpy array and load the latter instead.