SAOImageDS9
Version 8.8 Release Notes
Highlights
- Multicolor frames: Combine more than three images
in one frame using an arbitrary number of color
layers.
Each layer can have its own color, transparency, order, and blend
mode.
- Per-frame colorbars: Each frame now controls its
own colorbar visibility, position, label placement,
foreground/background colors, width, and other display settings,
including center position. Colorbars can be placed on any side of the
image, including the top or left.
- Bookmarks: Save and return to locations in an
image, including the zoom, rotation, orientation, and data-cube
slice.
- Live region statistics:
Analysis →
Make Catalog measures supported regions in the current
frame and displays the results in a live Catalog Tool table.
- Region pixel masks:
save pixmask
writes a FITS image in which pixels inside regions are labeled with the
corresponding region ID.
- 3D Surface region analysis: View the pixel values
inside a 2D region as an automatically updated 3D data cube.
- New 3D ray tracing:
FIP (First
Intensity Projection) rendering displays the first finite, non-zero
voxel along each ray and can add basic shading and lighting.
- Virtual Observatory image search:
Analysis → Archives →
Search SIA Registry finds Simple Image Access (SIA)
services in a VO registry.
- CIAO/FITS composite-region logic: DS9 now preserves
explicit intersection and union logic in composite regions and can show
hatching to visualize the selected area. This changes previous
behavior.
- Reveal frames: A new display mode that overlays two
frames and wipes between them with a draggable slider, for comparing two
images of the same field.
- PDF export: Save DS9 images and plots directly as
PDF.
- HEALPix & MOC support: Load partial HEALPix
datasets, including Multi-Order Coverage (MOC) maps.
- Movie scripting: Create movies from scripted DS9
actions such as panning, zooming, region edits, and display
changes.
- Updated image and catalog services: The
discontinued DSS-SAO server was removed; 2MASS, VLA, SKYVIEW, and
catalog selections were refreshed.
- Display improvements: Dark-mode-friendly Advanced
View icons and additional dark themes.
- Workflow fixes: Corrected several data-cube,
event-file, compressed-FITS, image-export, and illustration issues.
- Interface improvements: Adjustable panner and
magnifier sizes, faster panning with
Shift+Arrow, editable
polygon vertices, new dash-list controls, and full-screen
shortcuts.
- Platform updates: XPA is enabled by default on
Windows; macOS builds are universal binaries for macOS 12+; Linux is
also available as a Flatpak; DS9 moved to Tcl/Tk 9 with associated
package and compatibility updates.
- Developer documentation: The region
callback command is now documented allowing users define
actions to take when interacting with regions (select, move, edit,
etc.). Additional developer docs detailing the ds9 state
array and the set of Frame commands used to interact with
the display.
Bug fixes since Beta2
- Bug when deleting a frame and then creating a new multi-color frame
could cause colorbar contrast/bias to behave badly.
- Fixed crash if footprint server returns a single sided
“polygon”.
- Fix problem reading FITS regions and WCS-TAB coordinates on
Windows.
- Fix issue when using new reveal mode with more/less than exactly 2
frames.
- Fix issue with using Virtual Observatory (processing empty
responses)
- Fix vertical text positioning offset bug in PDF output
- Address several SAMP compatibility issues including self-closing
tags and RFC 7230 CRLF compliance.
- Fix GZIP tile compression for partial/edge tiles.
- Fix regression in coordinate grid rendering (X11, tile mode with
>2 frames)
- Fix
cube order command; the GUI action worked but not
CLI, XPA, and SAMP.
- Fix colorbars when switching from tile/grid to single frame
display.
- Work around macOS Golden Gate problem with some menus causing the
application to hang.
- Fix issue on Windows where some files were left open
indefinitely
User-facing details
Multicolor frames and layers
multicolor is a new frame type for combining an
arbitrary number of observations or filters, rather than being limited
to RGB. Layers can be added, removed, reordered, shown, and configured
independently. Layer order matters because each layer is blended with
the layers below it.
Available blend modes include: multiply,
overlay, color-dodge, color-burn,
hard-light, soft-light,
difference, exclusion, hue,
saturation, color, and
luminosity.
New multicolor and layer-related command-line, XPA, and
SAMP controls are also available.
Colorbars
Colorbars are now managed independently for each frame. New or
expanded commands include:
show yes|no — show or hide the current frame’s
colorbar.
position top|bottom|left|right — place the colorbar on
any side of the image.
label position natural|opposite — control where numeric
labels appear.
foreground / background — set colorbar
colors; use Theme to follow the current UI theme.
center — position the center from 0 to
1; 0.5 is centered.
width — set the displayed width or height from
0 to 1; 1 uses the full available
extent.
The CPT-CITY colormap repository URL was also updated.
Bookmarks
Press m, or use Zoom →
Bookmarks → Add, to save the current view. A
bookmark stores the image position, zoom, rotation, orientation, and the
current slice in an N-dimensional data cube. Bookmarks are
frame-specific, included in backups, and can also be controlled from the
command line, XPA, and SAMP.
Region statistics catalog
Analysis → Make Catalog measures all
supported area regions in the current frame and opens a live table in
the Catalog Tool.
- Rows update as regions are created, pasted, moved, edited, rotated,
deleted, or restored.
- Measurements also update when relevant image or WCS state
changes.
- Annulus and panda-family regions use one row per non-overlapping
component.
- The table supports sorting, filtering, plotting, export, and
marker-free
Pan To.
- Measurements include intensity-weighted centroids in both image and
WCS coordinates.
- Initial and image-wide measurements use bounded multithreading.
Reveal frames
Frame → Reveal Frames is a new display mode
for comparing two images of the same field. Both frames are shown at
full size, exactly overlapping, and a slider along the bottom of the
frame wipes between them: the first active frame is revealed to the left
of the split, the second to the right. Regions, contours and other
overlays are clipped along with the frame they belong to. The colorbar
belongs to the active frame.
The mode is available only when exactly two frames are active and
neither is a 3D frame; otherwise DS9 falls back to tile or
single. A cyan demarcation line marks the split and can be
turned off with Frame → Reveal Bar.
Scriptable as reveal over XPA and SAMP, and as
-reveal on the command line, including
reveal split to set the split position and
reveal bar to toggle the demarcation line.
Pixel masks
save pixmask writes a FITS image whose pixel values are
region ID numbers. Pixels outside all regions, or excluded pixels, are
written as 0.
3D region analysis
3D Surface converts pixels inside a selected region
into a 3D data cube in a separate frame. The result updates
automatically when the region, scaling, limits, or colormap changes.
Access it from Region → Get Information or by
double-clicking a region.
FIP ray tracing renders the first finite, non-zero
voxel encountered along a ray. For comparison, MIP uses the
maximum value along the ray and AIP uses the average. FIP
can also use the new 3d shade parameters for basic shading
and lighting.
Composite regions
DS9 now fully supports explicit CIAO region logic in ASCII and FITS
region files.
- CIAO
AND operators (&, *)
create intersection composites.
- CIAO
OR operators (|, +)
create union composites.
- Behavior change: earlier versions ignored this
logic and created separate DS9 regions.
- When saving to CIAO format, DS9 now writes the corresponding
intersection or union logic.
- Existing DS9 composite regions using
|| are interpreted
as unions; intersection composites use &&.
- The Composite Region window can display hatching to show the area
selected by intersection or union logic.
PDF export
Save Image can save an image as PDF using
-saveimage pdf.
- Plot export can create PDF files using
-plot export pdf.
Supporting PDF functionality was added to the plotting and packaging
libraries.
HEALPix and FITS
- Partial HEALPix files and Multi-Order Coverage (MOC) maps are
supported.
- Lossless GZIP-compressed floating-point FITS images, including files
created by Astropy, are handled correctly. Submitted by @timj
- Accessing specific cube-axis orderings such as
123,
132, and 213 was fixed.
Movie scripting and
animation output
The movie script mode can turn a sequence of DS9
instructions into a movie. Scripts can control operations such as pan,
zoom, adding or deleting regions, and changing colormaps or scaling.
- Fixed a movie-script timing issue in which a 3D frame could be
captured before rendering completed.
- MPEG output can now be created up to
4080x4080, and a
compression-limiting quantization issue was fixed.
- Fixed an intermittent skew in MPEG and animated-GIF rendering.
- GIF export now forces quantization to 255 colors.
Navigation, regions, and
display
- In PAN mode,
Shift+Arrow pans by one screen at a
time.
- Polygon information now shows vertices and allows points to be
edited, added, or deleted manually.
- Region and contour interfaces now include a
Dash List
option; contours also expose it in the Paste dialog.
- Preferences can set panner and magnifier sizes.
- Region editing can use a preferred coordinate system, and the
Default Length preference is also applied when editing regions.
- Linux/Windows:
F11 enters full screen. macOS Aqua:
Command+Control+F should enter full screen.
- HTML views now support
Page Up, Page Down,
Home, and End.
- Mouse-wheel scrolling in HTML views has been fixed.
- The grid
Other Colors option has been fixed.
- Plot axes no longer have an unwanted gap between the axes and the
plotted data.
- Projection plot backup files now retain X-axis labels.
- Advanced View has dark-mode-friendly icons.
- Updated themes add dark-mode options.
- Rotated ellipses and boxes are supported in Illustrate mode.
- Loading
.seg Illustrate files containing
line shapes was fixed.
- In tiled-frame mode, hold
Control and drag a frame to
reorder it.
- Coordinate-grid settings are now shown in a single widget.
- DS9 gives clearer errors when there are no frames, or when the
current frame has no data.
- Graph parsing now requires an explicit
horizontal or
vertical option.
Archives, catalogs, and table
data
Analysis → Archives →
Search SIA Registry queries a Virtual Observatory registry
for SIA image services. The registry URL can be set in Preferences;
command-line, XPA, and SAMP access is also available.
- CIAO-style TSV vector columns such as
sky(x,y) are read
as sky_x and sky_y. Array columns such as
R[2] are expanded to R_1 and R_2.
Combined vector/array forms such as sky(x,y)[2] and
sky(x[2],y[2]) are not supported.
- The DSS-SAO image server is no longer maintained and has been
removed;
dsssao now returns an error.
- VLA and 2MASS access was updated to newer interfaces.
- SKYVIEW’s survey list was refreshed.
- Easy-access catalog selections were updated to remove obsolete
entries and include newer surveys.
- The CXC footprint service URL was updated, with VOTable handling
extended to support both
POST and GET.
Analysis, automation, and
file handling
- In Advanced view, running an Analysis task displays a progress
indicator at the lower right. Multiple simultaneous tasks show a task
count, and tasks can be terminated from the task menu.
- SAMP
print is enabled only when the destination is a
file.
- SAMP
notes load is disabled for security reasons.
- Event-file examination now bins data correctly at
1.0 / zoom level.
- TIFF/JPEG export through commands such as
xpaget ds9 jpeg > foo.jpg was fixed after a regression
introduced in DS9 8.7.
- XPA now reports an error if
xpa connect is called when
already connected, rather than disconnecting and reinitializing the
connection.
- Documentation was added for the interactive region-file
callback option.
- Windows:
- XPA is enabled by default. The Windows build now uses
-mconsole to address standard input/output issues; support
is ASCII-only.
- Packaging moved to the Inno Setup installer.
- DS9 now uses the Windows standard
APPDATA folder to
store user preferences. Windows users with preferences set will need to
manually update them in 8.8.
- macOS: Darwin/X11 and Aqua builds are universal
binaries for macOS 12 and later, covering Intel (
x86_64)
and Apple silicon (aarch64).
- Linux: DS9 is available as a Flatpak. Tar packages
also include
ds9.desktop, ds9.png, and setup
instructions in ds9.readme.txt.
Internal,
compatibility, and maintenance notes
- Tcl/Tk was updated to
9.0.3, requiring compatibility
work across DS9 and several bundled components.
- Tcl/Tk 9 compatibility work covered binary-data handling, rendering,
event loops, macOS double buffering, networking, and other runtime
details across DS9, TCLXML, TKBLT, TKCON, TKHTML, TKSAO, TKSVG, and
XPA.
- OpenSSL was updated to
3.6.2, TLS to 2.0,
and certifi 2026.04.22 was added for
certificate handling.
- HTTP support was updated for TLS 2.0 and for
Content-Disposition filenames.
- OpenSSL certificate handling now prefers system certificates and
falls back to a temporary file only when needed.
- SAMP web HTTP headers were updated for newer browser security
requirements.
- DS9 checks for a valid WCS before requesting WCS parameters from the
AST library.
- XPA was forked and given a new version number without other source
changes.
- XPA now exposes
nsconnect to Tcl/Tk and checks whether
xpans started successfully; menu state and connection
errors now reflect failures correctly.
- PDF code was refactored; PDF support includes PDF4TCL
0.9.4 and TKBLT changes needed for PDF plots.
- Build files were adjusted to use the locally built
tclsh.
- DS9, TKSAO, and TCLXML can use
pkg-config when older
XML configuration helpers are unavailable.
- Library updates include TCLLIB
1.2, TKLIB
0.9, TCLSIGNAL 1.4.5, AWTHEMES
10.4.0, and TTKTHEMES 3.3.0.
Manifest.md was added to record package versions and
upstream sources.
- GitHub Actions support was added. Submitted by @DougBurke
- Documentation was updated for the new commands.
- The region
callback command has been added to the
region documentation.
- Three new developer docs have been added:
ds9arr.html,
currentarray.html, and framecmd.html providing
developers details on the internal interface most commonly used when
writing region callbacks and/or ds9.ini initialization
scripts.