Releases: spacetelescope/jdaviz
v5.0
5.0 (2026-04-15)
New Features
-
Datasets can now be renamed via API and UI through the viewer data-menu. [#3960, #3968, #4010]
-
Allow creating new viewers (in deconfigged) when adding results from plugins. [#3966]
-
Astroquery loader supports cone-search for JWST or HST data products, where applicable. [#3907]
-
"Spectrum List" and "Spectrum List Concatenated" loaders have now been absorbed into the "1D Spectrum" loader
via theextensionandconcatenateoptions. [#3953] -
Catalog public API exposed [#3761, #3777, #3778, #3799, #3814, #3835, #3854, #3856, #3863, #3867, #3930, #3906, #3912, #3899, #3907, #3990, #4039]
-
Support in plot options to set which columns are visible for table viewers. [#4033]
-
Added
skewermode to footprint selection that only selects when clicking inside a footprint.
Footprint selection tools now support control+click or command+click to toggle
selections (add/remove individual footprints without replacing the current selection). [#3962, #4034] -
Added ability to load catalogs from FITS file extensions through the Catalog loader. [#3998]
-
Add support for viewers with mixed pixel and wavelength/frequency spectral axis units. [#4001]
-
Add handles to subset to allow interactive resizing. [#3919]
-
Indicate in loaders whether the loaded entry/entries will overwrite existing data in the app. [#3997]
-
Added
enable_footprint_selection_tools()anddisable_footprint_selection_tools()APIs
to programmatically control footprint selection toolbar. [#4048] -
Improve default marker styling options (size and color cycler) for scatter layers. [#4044]
-
Top level access to datasets API dictionary, deprecating top-level access to data_labels list. [#4024]
-
Renaming data will now propagate the new label to derived data in the same way as renaming subsets. For example,
renaming 'Cube' to 'CubeFlux' will rename 'Cube (Subset 1, sum)' to 'CubeFlux (Subset 1, sum)'. [#4025] -
Enable multiselect mode for selecting multiple table extensions in the Catalog loader. [#4051]
-
Table viewer tools to highlight selected, zoom-to-selected, and create subset from selected. [#3994]
-
Allow ingesting tables in plugins back into the app. [#4021]
-
Allow creating new image viewers from moment map plugin. Remove option to select 'align by' in image
importer unless orientation plugin exists, or new viewer creation selection is Image. [#4054] -
Provide better error reporting when attempting to load data via
load
and loaders infrastructure. [#4058] -
Allow launching generalized Jdaviz from the command line and deprecate configs from that interface. [#4087, #4115]
-
Added ability to load spectra with 'IVAR' and 'VAR' uncertainty extensions. [#4091]
-
Line list loader to allow loading custom line lists from a table or file. [#4082]
-
Avoid attempting to convert units in image viewers that are likely moment map data. This
fix allows the user to load moment map data into an existing image viewer, and use
unit converison functionality when there is moment map data in a viewer. [#4085] -
Add ability to toggle between flux and surface brightness in deconfigged.
Avoid attempting to convert units in image viewers that are likely moment map
data. This fix allows the user to load moment map data into an existing image
viewer, and use unit converison functionality when there is moment map data in
an Image or 3D Spectrum viewer. [#4085] -
Fixed batch aperture photometry mode in deconfigged. [#4106]
-
Add support for loading Spectra from BinaryHDU and TableHDU extensions. [#4097]
-
Fix discrepancies between deconfigged and imviz when loading subsets/regions
when using the WCS/orientation layer [#4130] -
Data menus are now scrollable; the data menu legend is now truncated when it reaches a certain
height (relative to the viewer height); a button has been added to the data menu legend to
indicate to users that more layers can be accessed [#4137] -
Add additional logic to support table file formats beyond text in the astropytable parser. [#4133]
-
Style tweaks to scatter axis ticks and labels. [#4139]
-
Add support for unit conversions in aperture photometry plugin for images. [#4136]
Cubeviz
- Added ability to load DQ extension in the cubeviz loader, which activates the
DQ plugin in cubeviz. [#4077]
Specviz
- Fixed an inconsistency with 1/2D Spectra when loading duplicate user-supplied labels. With those data types,
user-supplied labels would auto-increment whereas with others, they would not.
Now all user-supplied labels do not auto-increment. [#4055]
API Changes
- Deprecate
show_in_viewerargument inloadin favor of using theviewerargument to specify
which viewer(s) to show the data in, or whether to create a new viewer. [#4116]
Cubeviz
- Deprecates Cubeviz in favor of the generalized top-level Jdaviz application. [#4090]
Imviz
- Deprecates Imviz in favor of the generalized top-level Jdaviz application. [#4090]
Specviz
- Deprecates Specviz in favor of the generalized top-level Jdaviz application. [#4090]
Specviz2d
- Deprecates Specviz2d in favor of the generalized top-level Jdaviz application. [#4090]
Bug Fixes
-
Fix issue with treat_table_as_query switch where it disappeared entirely when switched 'off' [#4102]
-
Fixed bug when loading remote ASDF files by S3 URI, and retrieve remote
FITS PrimaryHDU by default. [#3980]
Specviz2d
- Fixed bug where mouseover fails to display in 2D Spectra viewer when no wavelength mapping
is provided. [#4093]
Other Changes and Additions
-
Fixed an issue that occurred when destroying a 2D Spectrum viewer due to a units check that
attempted to read from a file that was no longer in memory due to cleanup procedures. [#4105] -
Deprecated the Catalog Search plugin in favor of the astroquery loader + table viewers. [#4023]
-
Update example notebooks and add examples for deconfigged. [#4052]
v4.5.2
Bug Fixes
-
Fixed bug where creating new subsets in a fresh app instance and adjusting them creates a copy
instead of adjusting the original subset. [#4083] -
Fixed using
viewer.show()with height argument not using the full height inline in the notebook. [#4134] -
Fixed bug where file drop resolver failed to process messages correctly when ipykernel>=7. [#4080]
Imviz
-
Fixed bug where calling
jd.show()beforebatch_loadcontext caused data not to load correctly
into the viewer(s) due to absence of linking necessary for glue's rendering backend. [#4079] -
Fixed a bug when trying to change link type multiple times with subsets defined. [#4096]
Specviz2d
- Fixed bug where loading two 2D spectra failed to display in the spectrum-2d viewer. [#3983]
v4.5.1
Bug Fixes
-
Fixed bug when deleting subsets in deconfigged. [#3951]
-
Fixed bugs in aperture photometry plugin for images in deconfigged, where the _cube_wave attribute,
which is not applicable to images, was being accessed. [#3950] -
Fixes traceback when loading two 2D spectra into the deconfigged app. [#3957]
-
Fixed bug when deleting a viewer with WCS-linked data in deconfigged, and readding the same data
into a new viewer. [#3976] -
Fixed a traceback when zooming 2D spectra in deconfigged. [#3981]
-
Fixed filedrop bug where parsers were unable to detect file formats. [#3986]
-
Fixed bug when initializing relevant 2D Spectrum plugins when there are viewers
with mixed pixel / wavelength spectral units. [#3982] -
Fixed API hint styling for viewer labels. [#4003]
-
Fixed bug when opening plot options or export from shortcut button when jdaviz
and lcviz are simultaneously imported. [#4027] -
Fixed astroquery and virtual observatory loaders not responding properly to link type changes. [#4038]
-
Avoid incorrectly showing "no viewer selected" warning when adding data from some plugins. [#4037]
-
Fix layer filtering logic for plot options to properly show/hide layers based on coordinate and link type. [#4046]
-
Fixed WCS layer being pushed to incorrect viewer types in deconfigged when changing between pixel and WCS linking. [#4049]
-
Avoid crashing Jdaviz if the PyVO vocabularies can't be downloaded. [#4059]
Cubeviz
- Fixed a traceback when mousing over a 2D viewer with only 2D (non-cube) data loaded into it. [#3959]
Imviz
- Optimization to orientation plugin to reduce overhead when multiple custom orientations are created. [#3896]
Specviz2d
- Fixed an issue with GWCS 1.0.3 by updating the
try/exceptto an if check againstpixel_n_dim. [#4032]
v4.5.0
New Features
-
Loaders now all support "observation" and "file" tables, allowing choosing which file to download
and import from an astroquery or MAST search. Interactive footprint selection enables displaying
observation footprints froms_regiondata as overlays on the image viewer and clicking on
footprints to select/deselect observations. [#3769, #3894, #3935] -
Change parallelization framework for better performance and flexibility. [#3806]
-
Plugin-specific viewer tools (footprint, catalogs, line lists, line analysis) now have a
toggle button in the plugin UI to enable/disable a custom toolbar specific to that context. [#3812] -
Data selected for load in the UI is now checked against existing data for duplicates
and the user warned. [#3813] -
Add check for valid model fitting equation operators. [#3818]
-
Viewers now support being popped out into separate window or sending to any sidecar location via
.show()
API. [#3821] -
Added descriptive hints for toggleable model fitter parameters in the Model Fitting plugin. [#3831]
-
Add image viewer method for returning a
PolygonSkyRegionthat outlines the viewer limits. [#3851] -
AIDA methods setting and retrieving rotation of imviz viewer [#3834]
-
Added ability to delete subsets from the Subset Tools plugin UI and API. [#3853, #3870]
-
Support layer re-ordering by drag-and-drop in viewer data menus. [#3532]
-
Generalize spectrum loading logic to prepare to support Roman ASDF files. [#3864]
-
Add 'Resize in Viewer' to the 'Edit Subset' menu [#3905]
-
The Model Fitting plugin now supports fitting with
astropy.modeling.models.Spline1Dusing
theastropy.modeling.fitting.SplineSmoothingFitter. [#3882] -
Update the standalone application launcher to use the solara file browser. [#3941]
-
Update data menu to group children with parents using visual indentation and ordering children below parents. [#3926]
Cubeviz
-
load_datais deprecated in favor ofloadmethod and loaders infrastructure. [#3748, #3861, #3911] -
Loading data is now done through the loaders menu in the right sidebar. The "import data" button is
deprecated and will open the new sidebar. [#3748, #3872] -
Aperture photometry and collapse data selection no longer includes uncertainty cubes. [#3910]
-
The default label for collapsed cubes now always includes the input data-label. [#3910]
-
The
Sliceplugin is renamed toSpectral Slice. [#3925]
Imviz
-
Loading footprints from files/API is now done through the loaders infrastructure. [#3790]
-
Virtual Observatory (VO) plugin functionality is now available through the loaders infrastructure. [#3769]
-
Added interactive footprint selection feature for MAST observations in Imviz.
Users can now display observation footprints froms_regiondata as overlays
on the image viewer and click on footprints to select/deselect observations. [#3894] -
align_bycan be set directly from the Image loader. [#3904]
Specviz2d
-
Allow loading intermediate
_bsubpipeline step files for JWST WFSS. [#3786] -
Generalized cross-dispersion profile plugin to be compatible with the deconfigged jdaviz instance. [#3928]
Rampviz
-
load_datais deprecated in favor ofloadmethod and loaders infrastructure.
This changes the default auto-extraction function to always be "median" as well as
changes to the default label of the auto-extracted ramp integration. [#3878, #3910] -
The
Sliceplugin is renamed toRamp Slice. [#3925]
API Changes
-
Adds
ldr.load()method to the loaders API and suggests using this in API hints overldr.importer()
(which will continue to exist). [#3832] -
Renames model fitting's
fitter_componenttofitter, with deprecation. [#3944]
Bug Fixes
-
Fixes in model fitting plugin to work better with nonfinite data. [#3792]
-
Fixes in model fitting plugin to correctly update parameter units and values upon unit conversion. [#3858]
Imviz
- In the Catalog Search plugin,
Zoom to Selectedbutton is now moved to below the selection table.
The button is now hidden when no selection is made. [#3888]
Other Changes and Additions
v4.4.2
Bug Fixes
-
Fixes traceback raised by the stretch histogram in plot options when entering multiselect mode. [#3825]
-
Add support for all valid astropy table write formats. [#3822]
-
Fix a bug with initializing component models in Model Fitting when Cube Fit was toggle on. [#3857]
-
Fixes an issue where loader widgets were showing outside the app when the entire app was wrapped in a solara component. [#3877]
-
Fixes a bug in parser preference where sometimes an input would go through the specutils parser
instead of the fits parser. [#3869] -
Disable cloning viewers in Specviz, Specviz2d, Cubeviz, and Mosviz. [#3876]
Imviz
- Adds ability to use Ra/Dec if there is no
sky_centroidcolumn in a catalog loaded from file
for the Catalog Search plugin, so exported catalog tables can be loaded into the app. [#3841]
Specviz2d
- Fix subset linking between pixel/wavelength in Specviz2d viewers. [#3817]
v4.4.1
v4.4.0
4.4 (2025-09-18)
New Features
-
The Model Fitting plugin now allows the user to select a fitter from a dropdown menu, with the default being the
astropy.modeling.fitting.TRFLSQFitter. [#3720] -
Dropdown menus generated by
plugin_select.vuenow have the ability to be searched when
enabled. [#3729] -
Enable unix style wildcard matching for searches in UI dropdown menus and
API objects that support multiselect. [#3744, #3752] -
Loaders now allow selecting which viewer(s) to show the data or whether to create a new viewer. [#3739, #3766, #3774]
-
Ability to change the logger levels and clear the logger history from the UI. [#3745]
-
Initialized model components in Model Fitting now update when units are changed by the
Unit Conversion plugin. [#3742] -
Ability to show/hide resolver and loader selection using remote server settings. [#3785]
Specviz
-
Added support for WFSS Level 3 data. [#3729]
-
Spectrum lists default to selecting the first available source. [#3771]
Bug Fixes
Cubeviz
- Speed up loading of large cubes into cubeviz. [#3787]
Other Changes and Additions
v4.3.2
4.3.2 (2025-09-15)
Bug Fixes
-
Fixes support for using jdaviz downstream in lcviz. [#3772]
-
Updated JWST data quality flag for bit 8 to match updated value in
stdatamodels. [#3765] -
Fixed a bug in Line Analysis where spectra were improperly being shifted away from
0 after continuum subtraction, particularly affecting absorption features. [#3775]
Imviz
- Allow image importer to accept component labels starting with 'SCI' rather
than only matching 'SCI' exactly. [#3781]
v4.3.1
4.3.1 (2025-09-03)
Bug Fixes
-
Disable some plugins when there is no data loaded into any relevant viewer, and fix tracebacks
when unloading all data. [#3730] -
Distance measurement marks now update properly upon unit conversion. [#3716]
-
Use validator on subset layer visibility and subset deletion to ensure toggling visibility and
deleting subsets from data menu and plot options updates accordingly. [#3708] -
Fixed a bug in freezable state
_set_zoom_radius_centerwherex/y_min/maxvalues were calculated incorrectly when the viewer was rotated [#3731] -
Fixed issue in Rampviz where new loader infrastructure was unintentionally exposed. [#3740]
-
Restrict polynomial order value of Polynomial1D model component to be >= 0. [#3741]
-
When all data is unloaded from 1D Spectrum viewer, and new data is loaded, the unit setting in the unit conversion plugin from the initial
dataset are maintained. [#3746]
Cubeviz
-
Fixed issue with initial model components not using spectral y axis unit. [#3715]
-
Fixed reestimating model parameters when cube fitting in the case where the cube's
first axis is the spectral axis. [#3717] -
Fixed issue with initializing model components when a spectral subset is selected and
Cube Fit is toggled on. [#3727]
Specviz2d
- Fix various bugs in the Line Analysis plugin, including some issues with spectral axis unit conversions and deletion of subsets. [#3746]
v4.3.0
4.3 (2025-05-28)
New Features
-
The Markers plugin now includes a Distance Tool to interactively measure pixel, on-sky, and axis-separated
(dx, dy) distances in any viewer. The tool features a real-time preview line that follows the cursor. [#3609, #3694] -
The Plot Options plugin now highlights the tab for the active (top-most) data layer
in the selected viewer. [#3514] -
Added an STC-S string region parser to the Footprints plugin. [#3479]
-
General (work-in-progress) centralized app-instance available at top package-level. [#3475, #3526, #3522, #3531, #3555, #3577, #3675, #3682, #3684]
-
Added a results history table to the Line Analysis plugin. Results are no longer updated in realtime with changes to inputs,
but rather when clicking the button or callingget_results, at which point an entry is added to the results history table
by default. [#3557] -
User API access to
simplify_subset()method in the Subset Tools plugin. [#3601] -
Hitting the "Enter" key while changing a value in the Subset Tools plugin will make a call to accept the changes (equivalent to clicking the "Update" button). [#3600]
-
Hitting the "Enter" key while renaming a subset or footprint will accept the changes, hitting "Escape" will cancel. [#3600]
-
Added
subset_labelkeyword argument toimport_regionmethod of Subset Tools plugin
to name the resulting subset(s). [#3616] -
Ability to import subsets from the Subset Tools plugin UI. [#3639]
-
Aperture Photometry public API exposed, added API hints to plugin. [#3617]
-
Allow custom resolutions when exporting viewers to png or mp4. [#3478]
Cubeviz
-
Ability to ingest and export
SkyRegionobjects. [#3502] -
Add sonified layer for each cube created by the Sonify Data plugin. [#3430, #3660]
-
Sonified data can now be added to any image viewer after initial sonification. [#3690]
-
Renamed
Spectral Extractionplugin to3D Spectral Extraction. [#3691]
Imviz
-
load_datais deprecated in favor ofloadmethod and loaders infrastructure. Default data-labels
fromload_datamay change in some cases, with the actual extension name used in place of[DATA]
and the version number included along with the extension. [#3662, #3709, #3713] -
Loading data is now done through the loaders menu in the right sidebar. The "import data" button is
deprecated and will open the new sidebar. [#3662, #3709] -
Added ability to load remote data from a S3 URI to Imviz. [#3500]
-
Footprints plugin now supports selecting the closest overlay
to a clicked point in the image viewer. [#3525, #3539, #3546, #3554] -
Improve performance by using FITS WCS for reference data layers when linked by WCS, rather than GWCS [#3483, #3535]
-
The Export plugin now supports saving spatial subsets as STC-S strings, including CircleSkyRegion and EllipseSkyRegion,
which are exported asCIRCLEandELLIPSESTC-S shapes, respectively. [#3591, #3595] -
Improve performance by using FITS WCS for reference data layers when linked by WCS, rather than GWCS. [#3483, #3535, #3540, #3687]
Specviz
-
load_datais deprecated in favor ofloadmethod and loaders infrastructure. [#3473] -
Loading data is now done through the loaders menu in the right sidebar. The "import data" button is
deprecated and will open the new sidebar. [#3473]
Specviz2d
-
load_datais deprecated in favor ofloadmethod and loaders infrastructure. [#3473] -
Loading data is now done through the loaders menu in the right sidebar. The "import data" button is
deprecated and will open the new sidebar. [#3473] -
New plugin to vizualize the cross-dispersion profile [#3552]
-
Renamed
Spectral Extractionplugin to2D Spectral Extraction. [#3691]
API Changes
- Allow
get_regionsandget_subsetsto take a data label and have a subset apply to the wcs of that data.
By setting a value forwrt_data, the user is requesting a region type that is the opposite of the current link
type, (i.e.SkyRegionwhen linked by pixel orPixelRegionwhen linked by wcs.) Also deprecate the
return_sky_regionkwarg and leave a deprecation warning to usewrt_datainstead. [#3527]
Cubeviz
-
Radial profile and curve of growth in Aperture Photometry plugin are now consistent
withphotutils.profiles. [#3510] -
BEHAVIOR CHANGE: Change
import_regionmethod to default to creating a new subset when run.
Also allow editing a subset using theedit_subsetargument. [#3523]
Imviz
-
Radial profile and curve of growth in Aperture Photometry plugin are now consistent
withphotutils.profiles. [#3510] -
Catalog Search: When catalog is imported from file, its original column names are
preserved on export. [#3519] -
User API for Catalog Search plugin (including
catalog,max_sources,search,
table, andtable_selected) is now public. [#3529]
Bug Fixes
-
Improve performance when adding/removing subsets by avoiding circular callbacks. [#3628]
-
Disable export and raise vue error message upon selection of unsupported subset format. [#3635]
-
Fixed issue in
compute_scaleto handle the case when the wcs forward
transform does not use units, which was previously causing issues when
aligning by WCS. [#3658] -
Fixed API hints for viewers in the data-menu. [#3695]
Cubeviz
-
Significantly improved the performance of Cubeviz when creating several subsets in the
image viewer. [#3626] -
Broadcast snackbar message to user when sonification of a data cube completes. [#3647]
-
Fixes exporting an image viewer as a movie by starting the movie at the specified slice
and returning to the correct slice after exporting. [#3710]
Imviz
-
Catalog Search: Fixed a bug where the plugin modifies the input table if
import_catalogis used on a table instance (not from file). [#3519] -
Fix dropdowns for overlay not showing in UI. [#3640]
-
Prevent image wrapping in Imviz with Roman L2 images with GWCS. [#2887]
-
Fix get_zoom_limits when WCS linked and out of image bounds. [#3654]
Specviz2d
-
Fixed an issue with default angle unit being set in unit conversion plugin, which fixed
a bug when background data from the spectral extraction plugin is added to the viewer. [#3661] -
Fixed a bug loading array traces into Specviz2d. [#3697]
Other Changes and Additions
-
Bumped minimum version of
photutilsto v2.2 and Python to 3.11. [#3510] -
Bumped minimum version of
specutilsto 2.0. [#2922] -
Added
strauss,qtpy,PySide6androman_datamodelsto the list of optional
dependencies installed with the[all]extra dependencies flag
(i.e.,pip install jdaviz[all]). [#3556] -
Auto-update sonification label upon adding sonification to viewer. [#3430, #3656]