Next Previous Up Contents
Up: Release Notes
Releases to date have been as follows:
Version 0.3b (4 June 2003)
- First public release
Version 0.4b (8 July 2003)
- Row subset count column in subsets window.
- Fixed and improved broken Parameter window.
- Fixed output of table name and parameters.
- Output to LaTeX
tabular environment now available.
- SQL access buttons now greyed out when no JDBC drivers are present.
- UCD selection now available from New Synthetic Column dialogue.
- Column metadata display made more logical and flexible.
- Column cardinality now calculated in Stats window.
- Sythetic column expressions and most other column metadata now
- Null value support in evaluated expressions.
- Integral example data provided.
- Hierarchical browser for tables available in load dialogue.
Version 0.4-1b (10 July 2003)
- Fixed a VOTable output bug (not escaping XML special characters).
- Fixed a serious FITS output bug.
- Improved bad value handling for FITS tables.
Version 0.5b (20 October 2003)
- Can now read plain text format tables.
- FITS files of arbitrary size can now be read
(they are not loaded into memory).
- TOPCAT can now run without errors in a secure environment
(e.g. as an unsigned jar file under WebStart). Of course some actions
such as Save Table are unavailable in this context.
- Files compressed with Unix
compress now work
(as well as gzip and bzip2).
- Added hierarchy browser to load dialog.
- Added integral demo data (accessible from load dialog).
- Can now drag tables from
into TOPCAT load dialog (or load button).
- Some bugfixes.
Version 0.5-1 (18 November 2003)
- Rewrite of FITS binary table access for big efficiency improvements.
- It's now possible to plug in user-defined algebraic methods at runtime.
- Improved unit testing leads to some bugfixes.
Version 1.1-0 (21 April 2004)
- User interface redesigned - now based around Control Window
not table browser (much easier to work with multiple tables).
- Extensive facilities for table joining by matching rows between
multiple tables or within a single one.
- Documentation much improved and available on- or off-line as
- Self-contained table access library
STIL now provided
as a separate product.
- Tables can be concatenated.
- Better top-level control over window proliferation.
- Columns can now be hidden/revealed not just deleted.
- Additional output formats/variants supported:
- VOTable using BINARY or FITS encoding, inline or by reference
- Machine-readable plain ASCII stream
- HTML <TABLE> element or document
- Hybrid DOM/SAX parsing of VOTables for improved efficiency/memory usage.
- New flag
-demo starts up with demo data.
- Miscellaneous efficiency improvements and bug fixes.
Version 1.1-3 (5 May 2004)
- Functions provided for radians<->sexagesimal conversion
Version 1.3 (20 October 2004)
- This version has introduced many improvements in scalability,
efficiency and functionality. TOPCAT is now quite happy with tables
of a million rows or more (and hundreds of columns) even on systems
with quite modest memory/CPU resources.
The main improvements are as follows:
- Plotting is much faster and can handle many more points
- Subsets can be selected from plot window by tracing out a
- You have more choice over plotting symbols
(including semi-transparent ones)
- Finally X or Y axes can be flipped!
- Export to encapsulated PostScript is of improved quality
(though for many points file sizes can get large)
- Export to GIF format is available
- Regression lines can be plotted and coefficients displayed
(experimental capability - could be improved)
-disk" flag allows use of disk backing storage for
- New 'FITS-plus' format stores rich table/column metadata in a
- VOTable handler now fully VOTable 1.1 and 1.0 compatible
- VOTable parsing now works with Java 5.0 platform
- Comma-Separated Value format now supported for input and output
- ASCII input handler rewritten to cope with much larger tables
- ASCII handler now understands d/D as exponent letter as well as e/E
- ASCII handler now uses Short/Float not Integer/Double where
appropriate to save memory
- ASCII format fixed bug for -0 degrees/hours in sexagesimal
- Null handling improved for FITS & VOTable formats
- FITS files store column descriptions in TCOMMx headers
- Better error messages for unparsable tables
- Various efficiency improvements and reductions in memory
- In cases of multiple possible matches, the closest is now chosen
rather than picking one at random
- Pair match now adds column containing score for each match
(distance between points)
- Units can be selected RA/Dec columns and match errors
(so it doesn't need to be all in radians)
- New match types suitable for multivariate matching
(anistropic Cartesian, Sky+X, Sky+XY)
- Can add/remove table parameters
- One-step column replacement dialogue from data or column
- Synthetic column expressions now written out to column
GUI Navigation and Display
- Improved rendering of numbers in tables (esp. Floats)
- Better detection of displayed table column widths
- New Control Window option on File menus
- Better window resizing for some dialogue boxes
- Less confusing error messages in many places
- All available functions are now fully documented in help document
and interactive Method Window
- Many new trig, coordinate, type conversion, string manipulation
- Big performance improvements for null values
- Clicking a point in the plot highlights the corresponding row in the
data window and vice versa
- Row selection can trigger display sky cutout region display
- Row selection can trigger user-defined actions on activation
In addition, the following incompatibilities and changes have been
introduced since the last version:
- The input format for tables can now be specified in the load window
(via a selection box) or on the command line
(using the "
-f" flag). FITS files and VOTables can
still be identified automatically (i.e. it's not necessary to
specify format in this case) but ASCII tables cannot:
you must now specify the format when loading ASCII tables.
This change allows better error messages and support for
more text-like formats.
- Algebraic expressions referencing row subsets now use the
underscore character ("_") rather than the hash character ("#")
to indicate a subset ID.
- Classes containing user-supplied functions for algebraic expressions
are now specified using the properties "
- The default output format for FITS tables is now the so-called
"FITS-plus" format, which has a BINTABLE in its first extension
as before, but the text of a VOTable stored in its primary HDU.
This can store more metadata for TOPCAT, but should behave just
the same for other FITS-compatible applications.
The old behaviour can be restored if desired by specifying "FITS-basic"
Version 1.3-1 (10 November 2004)
- Minor changes:
- 2MASS cutout servers now available from Activation Window
- Added Starlink logo to all windows
Version 1.3-2 (6 Dec 2004)
- Bug fix:
- Error in parsing empty VOTable TD elements fixed.
Version 1.4 (4 Feb 2005)
- The graphical table load dialogue has been overhauled, and now
has two main new features. First, it has been rewritten so that
the GUI does not freeze during a long load; it is still currently
not possible to interact with other TOPCAT windows while a load is
taking place, but you can now cancel a load that is in progress.
Secondly, the provision of load dialogues has been modularised,
and a number of new dialogues provided. The new ones are:
If the required classes are present, you can acquire tables from
these external sources as well as the traditional methods of loading
from disk etc. New command line flags corresponding to each
of these have been added to ensure that they are present and
make them prominent in the load dialogue.
Furthermore it is possible to plug in additional load dialogues at
runtime using the
startable.load.dialogs system property.
The appearance of the Load Window
has changed; now only the File Browser button
is visible along with the Location field in the
body of the window, but the DataSources menu
can be used to display other available table import dialogues.
- The program can now be obtained in two standalone forms:
The former is much larger than before (11 Mbyte),
since it contains a number
of classes to support custom load dialogues such as the MySpace
browser and web service interaction, as well as the SoG classes.
The latter contains only the classes for the core functionality,
and is much smaller (3 Mbyte).
Explode Array Column action
- There is now a new button in the
Columns Window which replaces an
array-valued column with a scalar column for each of its elements.
- You can now load a table by pasting its filename or URL as
text into the table list in the Control Window (using the X selection
on X-windows - not sure if or how this works on other platforms).
- The result of
topcat -help is now more comprehensive,
describing briefly what each option does and listing system
properties as well as arguments/flags proper.
Version 1.4-1 (8 February 2005)
- Added Search Column item to Data Window column popup menu
Version 1.5 (17 March 2005)
- Load dialogues have changed again somewhat, and save
dialogues as well.
The default file browser in both cases is now a
which is very much like the standard file browser, but can browse files
in remote filesystems as well; currently supported are files in
or on an
(Storage Resource Broker) server.
You can now save files to these remote locations as well as
load from them.
In addition, the save dialogue now displays the current row
subset and sort order - this makes it easier to see and/or
change the details of the table you're about to save.
- A few more minor changes have been made.
- Error display dialogue boxes have been improved in some places
- Various bugs relating to JDBC database access have been fixed
- Some minor issues relating to VOTables with single-character
columns have been addressed
Version 1.6 (30 June 2005)
- Some more activation functionality has been added:
- New View URL as Web Page option introduced in
- New System class of activation functions containing
exec functions which execute commands on the local
- New Browsers class of activation functions for
displaying URLs in web browsers (external or basic fallback one)
- New Times class added containing functions for
converting between Modified Julian Day and ISO 8601 format epochs.
- The default sky matching algorithm now uses HEALPix rather than
HTM for assigning sky pixels to RA,Dec positions. This gives much
faster sky matches in most cases, and uses somewhat less memory
so can be used on larger tables. It has also fixed a bug
which missed out some possible matches. HTM-based matching
is currently still provided as an option, but this is mainly
for debugging purposes and may be withdrawn in the future.
- The message logging has been tidied up. The main observable
consequence of this is that fewer untidy messages are written to
the console when TOPCAT is run from a standalone jar file
rather than a full starjava installation.
By specifying the new
flag one or more times you can get those messages back.
The messages (in fact all logging messages at any level)
can also be viewed from the GUI by using the new
File|Show Log menu option from the
- TOPCAT now acts as a SOAP server; SOAP requests can now be made
to a running instance of TOPCAT to get it to display tables by
location or by sending XML for a VOTable direct. Because of
limitations in Axis, this latter method won't work for arbitrarily
tablecopy tool is no longer covered in this
document; it is replaced by the
tcopy tool in
There has also been some reorganisation of this document, mainly
in the appendices.
- Added (dummy) Print option to Data Window.
This just presents a message to the effect that you should save
to a printable format.
- Fixed a bug which gave errors when expressions contained a
NULL_ test on the first column of a table.
- Modified one of the demo tables to contain a column with URLs
Version 1.6-1 (7 July 2005)
- Work around AstroGrid/Sun bug which prevented loading short VOTables
- Ensure that filestore browsers are kept up to date when dialogues are
Version 1.7 (30 September 2005)
- There have been major improvements in the flexibility, and
minor improvements to performance, of two-table crossmatching.
Similar changes for 1-table and multi-table matches should follow
in future versions.
- New match algorithm Sky with Errors introduced.
This allows you to specify a column giving the maximum
permissible match error (so it can vary per row) rather
than a fixed value for the whole table.
- In the case of multiple possible matches between the two tables,
instead of automatically giving you only the closest match, you can
now select whether you'd like only the closest one or all
those which fit your criteria.
- You can now specify which rows you want to see in the output:
1 and 2, 1 or 2, All from 1, All from 2, 1 not 2, 2 not 1, 1 xor 2.
This is pretty much all the possibilities which make sense,
and in particular allows you to do 'left outer joins'
(1 not 2).
- The match score column which results from most matches
now comes (a) in sensible units where possible (e.g. arcseconds
not radians) and (b) with metadata which tells you what its
meaning and units are.
- More information is available in added columns after the match;
as well as the match score, information about matched groups
is inserted where appropriate.
- The "Spherical Polar" match algorithm is now rebadged as the
hopefully less confusing "Sky 3d".
- MySpace I/O has been re-implemented to use the ACR rather than
the (now deprecated) CDK classes it was using before. As well
as probably being more reliable and less likely to break with
future changes in MySpace server protocols, this gives the benefit
of single sign on. The effect of this is that you will need to have
the AstroGrid desktop running on your machine before you can
access MySpace from TOPCAT.
- Added Julian Epoch and Besselian Epoch conversion functions to
RANDOM special function.
- When you select a column in the Columns window, it now scrolls the
table in the Data Window so that the selected column is visible.
This is a boon when dealing with tables that have very many
- String "
null" interpreted as a blank value in ASCII
- Added new activation action to launch system default browser.
- Fixed some relatively harmless bugs to do with actions available
when you select the dummy "Index" column. You can now unsort
from a popup menu in the table viewer window.
- Believed to work fine with Java 1.5 now (there were previously
some issues with MySpace at Java 1.5).
- Fixed bug in ASCII input handler which misidentified blank lines,
or DOS-format line ends, as end of file.
Version 1.7-1 (4 October 2005)
- Fixed broken MySpace access on MS Windows.
Version 1.8 (13 October 2005)
- Added Sky Coordinates Window; it's now easy to
add new sky coordinate columns based on old ones in different
introduced for more control over visual appearance of numeric values.
- Now copes with 'K'-format FITS binary table columns (64-bit integers).
- Modifications to JNLP files.
Version 2.0 (3 February 2006)
- A major upgrade of TOPCAT's visualisation capabilities has taken
place in this release. There are considerable improvements in
functionality, flexibility and efficiency over previous versions:
New graphics windows
- In addition to the 2-d scatter plot from previous versions,
the following visualisation windows are now available:
The new 3-d functionality does not require you to install
Java3D or any other third-party 3D toolkit to work (nor does it
take advantage of any such toolkit which may be present).
- The plot windows are no longer associated with a single table.
All of them allow you to display data from different tables,
or from different tuples of columns of the same table,
on the same plot.
You can layer as many plots as you like on the same axes,
using different plotting styles for the different datasets.
As before, you can still display data from different subsets
of the same table and same columns using different styles.
- All the graphics windows allow you to set the plotting style
for each data set individually, using a wide range of options
including colour, line width, marker size, (histogram) bar style, etc.
This allows you considerable control over the visual details of the
- All the 2-d and 3-d scatter plots allow you to render points
using markers of variable transparency. In a crowded plot, this
allows you to see much more information than using opaque points,
since you can get some idea of how many points (of different data
sets) have been drawn at a given point on the plotting surface.
Line drawing & linear correlation
- The 2-d scatter plot can now optionally plot lines associated
with data sets. It can either draw straight line segments joining
all the plotted points in a set, or draw per-dataset linear
correlation lines. In the latter case it will report line
gradient, intercept and correlation coefficient.
Improved column selection
- The selector boxes for selecting which columns to plot are
now 'editable' - that is, instead of selecting the column from
a drop down list it is now also possible to type an expression
into them instead. This may be more convenient if there is a
very long list of columns. It also means that you can use an
algebraic expression based on the names of one or more columns
instead of a simple column name.
The selectors also have small arrow boxes next to them which
makes it easy to cycle through the list of known columns.
These features are also available at some other places in the
program where a column value is required.
Manual axis configuration
- As well as zooming in and out using the mouse, you can now
set the axis limits by typing them into an
axis dialogue box.
You can also set the text which will form the axis annotation
on the plot.
- Most plots now feature a panel at the bottom of the window
indicating how many points have been plotted and the current
position of the mouse pointer (if any) on the plotting surface.
- Scatter plots of large datasets now use considerably less memory
and around an order of magnitude less CPU time than previously
(a 2-d million point replot now takes about 1 second - plotting
it the first time may be rather longer since it needs to acquire
the data which may be I/O intensive).
Some non graphics-related improvements have also been made as follows:
- Selection of a subset in the Control Window now triggers its selection
in other windows (plot, statistics, subsets). The same thing doesn't
happen the other way around, since that might lead to confusing
- Boolean columns now display null values distinctly from false ones.
Additionally, null/false distinctions are handled more carefully in
FITS and VOTable files.
- The Sky Coordinates Window now suggests names for new columns.
- The Filestore Browser now allows you to enter the position
in a file of the table to load (e.g. HDU index for FITS
or TABLE index for VOTable).
- Added Hide All & Reveal All actions to the Columns window.
- When joining tables, column name comparison to determine whether
deduplication is required is now case-insensitive.
- Fixed a problem which was causing TOPCAT to crash when attempting
to save an altered copy of a FITS file under the same name.
- The manual has been reorganised somewhat, and a new
Quick Start section added.
- There is an experimental implementation of the Aladin
interoperability interface. This hasn't really been tested however,
so may not work. Improved Aladin interoperability is expected in
- Fixed a bug in Cartesian crossmatching algorithms which failed
to match if the required error in any dimension was zero.
Version 2.1 (7 April 2006)
- A number of graphical and other improvements have been made
at this release.
Stacked Line Plot
- A new
Stacked Line Plot
visualisation window has been added. This is especially
suitable for use with time series data.
Asynchronous data reading in graphics windows
- All the graphics windows now read data for plotting asynchronously.
What this means is that when you change the plot in a way which
requires the data to be read or re-read then the GUI will not
lock up and you can do other things, including changing the
plot in other ways before it has completed drawing.
A progress bar at the bottom of the window indicates progress.
This is only noticeable for large (slow to read) files.
- The existing Histogram, 2-D Scatter Plot and Density Map windows,
as well as the new Stacked Line Plot, now allow you to do a 1-d zoom
by dragging the mouse near the axis, as well as the 2-d zoom by
dragging on the plot surface.
PLASTIC Tool Interoperability
- TOPCAT now sends and services messages using the
PLatform for AStronomical Tool InterConnection protocol.
See Section 9.
IPAC Data Format
- Data files in the IPAC format
defined by the CalTech's Infrared Processing and Analysis Center
can now be read. This is how data from the Spitzer satellite
amongst others is normally provided.
String-typed coordinate columns
- If suitably identified (e.g. by UCD or units), string-valued
columns which represent data in certain well-known forms,
currently sexagesimal angles and ISO-8601-format dates,
can now be treated directly as numeric values in column selector
boxes such as the ones in the plotting windows, rather than
having to define a new column using a string->numeric converter.
Memory Error Reporting
- When the JVM runs out of memory, it now attempts to post a
popup window explaining this rather than just writing
a terse message to the console. This popup also gives you the
opportunity to view a new section added to the documentation:
Tips for Large Tables.
SOAP Service deprecated
- TOPCAT no longer by default runs a SOAP server for accepting tables.
You can choose to run it by specifying the
flag on the command line. This facility may be withdrawn in
future versions, in view of the fact that the PLASTIC service
can provide similar functionality.
- The Starlink logo at the top of every window is set to fade
out gradually over the period 1-APR-2006 to 1-SEP-2006.
Bug fixes and minor alterations
- Export of GIF and Encapsulated PostScript images from the
graphics windows has been improved - unwanted grey backgrounds
round the edges are now rendered transparent in GIFs and
white in EPS. A section on
Graphics has also been added to the manual.
- A number of graphical anomalies such as the plot bounds being reset
when an axis Flip button was toggled have been ironed out.
- The JDBC behaviour has been improved: some bugs have been fixed
and it now no longer asks for an SQL username/password twice.
- Work around intermittent bug when loading small files from
- Density maps are now exported into FITS format with better
WCS headers where appropriate.
- The SDSS JPEG cutout activation action URL has been updated
from DR2 to DR4.
- A bug which caused the first row in a table to be included
erroneously in graphical subset selections has been fixed.
- Added an offset selector toggle button to the Histogram window.
Version 2.1-1 (13 April 2006)
- You can now zoom in the Spherical Plot.
- There are some improvements to the PLASTIC functionality and
- In addition to Broadcast actions for the various
PLASTIC messages transmission types, there are now corresponding
Send actions which allow you to direct the message
to only a single selected listener application.
These actions are now enabled/disabled according to whether
any suitable PLASTIC listeners are registered.
- You can now pop up a little window from the
Control Window's Interop menu
which displays the currently registered PLASTIC listeners.
The functionality of this window may be extended in future
- When TOPCAT receives a
it now checks if a matching subset exists rather than always
creating and adding a new one. If it does, it just sets current
the existing one. This can cut down (a bit) on proliferation
of Row Subsets.
- The PLASTIC section of the manual has
- Some of the screenshots have been updated to include
- URLs using the
file: scheme sent by TOPCAT in
PLASTIC messages now correctly conform to RFC 1738.
- A workaround has been introduced for MySpace browsing
-Dmyspace.cache=true to speed it up at the
expense of accuracy.
Version 2.1-2 (21 April 2006)
- This is mainly a bug fix release.
- Added explode columns option to Data Window popup menu.
- Fix bug present since v2.0 which was sometimes drawing wrong numeric
labels near zero in 2D plots.
A side effect is that exponential multipliers will more often be
used on axis labels (as in versions prior to v2.0).
Hopefully somewhat improved axis labelling will be present in
- Fixed bug which was writing unclosed LINK elements in VOTables.
- Fixed some NullPointerException bugs in column selection and
- Fixed bug in scrolling to correct column in Data Window when column
is selected in Columns Window.
Version 2.1-3 (11 May 2006)
- Bug fixes and some minor enhancements.
- Implements send and receive of PLASTIC
- Added new
csv-noheader output format.
- Added skew and kurtosis calculations to
- Improved, though still imperfect, retention of table-wide
metadata in VOTables.
- Fixed bug in writing
votable-binary-href format tables from the file
mark.workaround system property,
see Section 10.2.3.
Version 2.2 (7 July 2006)
- New features for permitting column-oriented storage
startable.storage policy "
have been introduced.
These can provide considerable efficiency improvements for
certain tasks when working with very large (and especially wide)
- Fixed bug which caused some points to be missed out in spherical
- ISO-8601 strings now permit times of 24:00:00 as they should.
- Quoted unit values are examined to determine probable column
- Added flux conversion functions (Jansky<->magnitude).
Version 2.2-1 (3 August 2006)
- Added new coordinate system ICRS for sky coordinate conversions.
- Eliminated some unsightly but harmless stack dumps that could
occur during plotting.
- TUCDnn header cards now used in FITS files to transmit UCDs
- Added TST (Tab-Separated Table) format
- Efficiency improvements for column-oriented access.
- Improved responsiveness when viewing table data for extremely
Version 2.3 (5 October 2006)
Various modifications and improvements:
- Removed Starlink logo from the top right corner of all TOPCAT windows,
including screenshots in documentation.
New logos (Starlink, Astrogrid, VOTech, Bristol)
are added in About window.
- Added new Add Sample Subset,
Add Head Subset and
Add Tail Subset
utility tool buttons to the
- Direct MySpace access using
URLs is now provided - see new Section 4.2.
- Added time conversion functions between MJD and Decimal Year.
- ISO-8601 column numerical values (e.g. in plots) are now by default
Decimal Year rather than Julian Epoch. The numerical values are quite
close, but Decimal Year is probably more what you'd intuitively
-J flag to
topcat startup script
for passing flags directly to Java.
- Added Sample (as opposed to Population) Standard Deviation/Variance
calculation options to the Statistics Window.
- Improved listing for functions in Appendix B of user document
(subsection for each function class).
- Modified presentation of HTML version of user document using CSS.
- Fixed bug (introduced at v2.2-1) which made table display and adding
columns slow, and column widths the wrong size.
- Fixed bug (introduced at v2.0) which prevented Exact matches using
non-numeric columns. Exact match now also deals with array-valued
- Fixed PLASTIC bug which was ignoring ID argument of
- Fixed bug in coordinate conversion that caused bad behaviour in the
presence of malformed input coords.
- Fixed bug with plotting very large or very small axis labels in
- Fixed a couple of minor crossmatching bugs (which would not have
Version 2.3-1 (Starlink Hokulei release)
- Output to MySpace can now be streamed, if running under J2SE1.5 or
- Intercept OutOfMemoryErrors during 3D plotting to give an explanatory
- Fixed bug in axis range checking.
- Fixed bug in handling of single quotes in FITS file metadata.
- Concatenation column assignments now smarter for fully compatible
- Some optimisations for very large files.
- Added Vega<->AB magnitude conversion constants to
- Encapsulated PostScript exported from graphics windows is improved.
These files should now print when sent directly to a printer,
and the image size is now guaranteed sensible for a portrait
- Added hyperbolic trig functions
tanh and inverses)
(sinh, cosh, tanh and inverses).
- Added cosmology distance calculations in class
- Column selector panels in graphics windows are now in scrollers.
Version 3.0 (5 July 2007)
- This release includes major visualisation improvements and some changes
to the plotting user interface:
- Comprehensive plotting of symmetric and asymmetric error bars
(and crosshairs, and boxes, and ellipses, ...) in 1, 2 and 3
dimensional plots is now provided -- see Appendix A.4.1.3.
Auxiliary (colour) axes
- It is now possible to modify the colour of plotted points
according to values in one or more axes additional to the
spatial ones -- see Appendix A.4.1.5.
- The Histogram and
Density Map windows now have the
option of weighting the quantity represented, so that
the binned values are sums rather than just counts.
Density Map Colour Scale
- When the density map is in indexed (non-RGB) mode you can now
select from various colour maps to represent bin occupancy.
This makes level differences easier to see.
Plot window rearrangement
- Buttons which affect data selection are now arranged in their
own toolbar below the plot (Appendix A.4.1.1).
The size of the plot control area can be manually resized to
give more room for the plot itself by using the
Split Window () button,
which is useful on small screens.
Expression language enhancements
- Table parameters can now be referenced in expressions using
param$ notation (Section 7.3),
and both columns and parameters can be referenced by UCD using
ucd$ notation (Section 7.1).
Statistics & Histogram result re-use
- The Statistics and
Histogram windows now both provide
Save and Import actions,
which take the data presented in the window and allow it to be
saved to a file or imported directly into TOPCAT as a new table.
Cartesian 3D zoom
- It is now possible to zoom the
3D Plot towards the centre in the
same way as the Spherical Plot.
GAVO Millennium simulation database load dialogue
- You can now directly query the
GAVO Millennium database service
(Appendix A.6.10). Thanks to Gerard Lemson of GAVO
for contributing code for this.
Row subset improvements
- Row Subset names can now be re-used, and when you are asked to
select a new subset name you are allowed to choose one from the
list of existing ones. When a row selection is received from another
application via PLASTIC the subset name (the name of the sending
application) is re-used in this way. This helps to keep the
number of subsets under control.
Receving a row subset from PLASTIC in this way, and certain other
actions, now cause the subset to be shown straight away
(and updated if necessary) on any existing plots, which makes
this kind of PLASTIC interaction more responsive.
The size of each subset, and also the corresponding percentage of
the table it represents, is now calculated automatically and
displayed in the Subset Window.
The old behaviour of only calculating sizes on request can be
reinstated using the Autocount rows ()
menu item if required.
Fix Vertical in 3D plots
- A Stay Upright () button is provided
in the Cartesian and
spherical 3D plots which allow
you to keep the Z axis/north pole vertical during rotations.
- The Statistics Window can now
calculate quantiles (median, quartiles, .001, .01, .99 and .999)
Minor changes and bugfixes
- JPEG and PNG now plot export available from all graphics windows.
- Dramatic performance improvement for transparent pixel plotting in
3D plots on some platforms.
- Added locale-specific
formatDecimalLocal() functions in
functions in class Fluxes.
- Improved deduplication of column names when joining tables.
- 3D plots now correctly report number of visible points.
- Improved error message for broken CSV files.
- Improved error reporting in the presence of a deficient JVM
(such as GNU
- Worked around a Mac OSX Java bug which caused table display to
go funny when columns were deleted.
- Fixed error in output of FITS table
cards - write them as numeric not string values.
- Fixed a number of bugs in responding to PLASTIC messages
(threading, failure to respond).
- 3D plots now plot symbols for all subsets not just one,
as for 2D plots.
- Fixed bug which prevented non-string parameter values from
Version 3.0-1 (Starlink Puana release)
- Added error bars capped by arrows.
- Fixed bug which caused error bars in legend to draw in the wrong colour
in EPS output.
Version 3.1 (29 August 2007)
- You can now annotate plotted points using
text labels in
2d and 3d scatter plots - use the Draw Label
() button to assign a column containing label text.
- Radial axis control in sphere plot is now not visible by default -
you need to click the Radial Coordinates ()
button in the dataset toolbar to enable it.
- New Show Legend () button in plot windows
determines whether a legend will be displayed next to the plot.
- New Hide Legend checkbox in style editor windows which
allows subset legend entries to be excluded from the displayed legend
Version 3.2 (28 January 2008)
- Considerably improved display of per-table metadata in the
It is now possible to view long or multi-line parameter values.
- FITS header cards in table HDU are now read (but not written)
as table parameters.
- Add mouse wheel zoom for 3D plots.
- Add Write Mode selector to
SQL Output Dialogue, to allow
appending and optional drop prior to create of new table in
- Now TOPCAT will automatically register with a PLASTIC hub any time
one becomes available - the hub does not have to be running
when TOPCAT starts. As a corrollary, if you start an internal or
external hub from the Interop menu,
you no longer need to explicitly invoke the
Register item afterwards.
-exthub flag which starts a new external
- Activation window permits selection of different image viewers
for View URL as Image option.
Note this is not currently provided for the
Display Cutout Image option - this may be
addressed in the future.
Bugfixes and minor improvements
-stilts convenience flag so you can easily
run STILTS from a TOPCAT installation.
- Fix calculation error in
- Fix some bugs associated with text label plotting.
- Error bars for zero/negative values are now correctly extended
to the axis (rather than being omitted)
in 2D plots with logarithmic axes.
- Modified the size of some windows - now posts somewhat smaller
windows if a small screen is in use.
- System properties specified explicitly on command line now take
precendence over those in
- Embedded spaces in output ASCII format table column names
are now substituted with underscores, which prevents writing
ASCII tables that cannot be read.
- Downgraded from WARNING to INFO log messages about
the (extremely common) VOTable syntax error of omitting
a FIELD/PARAM element's
- Starting an external hub now works more reliably.
Version 3.3 (19 August 2008)
- Added normalisation option ()
to Histogram Window.
- In overplots using different tables, an attempt is now made
to use the same columns/expressions for axis values as
for the main table. This may be convenient when
overplotting data from several similar tables.
- FITS files with columns using variable-length arrays
('P' or 'Q' data type descriptors) can now be read
(in random access mode, i.e. from an uncompressed FITS file
on disk, only).
- The lut.files system property can now
be used to configure custom colour maps for auxiliary axes
and density maps - see Section 10.2.3.
- New class Arrays
added to algebraic functions.
- Histogram Offset control now works for
logarithmic X scale as well as linear.
Bug fixes and other changes:
- Efficiency improvements (~25%? in both CPU time and
memory usage) for HEALPix-based sky crossmatching.
Thanks to Nikolay Kouropatkine at Fermilab for a
new version of the
which provided this improvement
(this version also fixed a - minor? - HEALPix bug).
- Sexagesimal field identification for ASCII input files has
become more forgiving; it now accepts minutes or seconds
equal to 60 without a syntax error.
- Fixed a pair matching performance bug (slower if tables were not
given in the right order) introduced at v1.4.
-disk flag is now honoured when loading
tables from JDBC, which makes it possible to input larger
datasets from RDBMS.
- Fixed problem which caused the graphics system to hang or fail
when drawing Dot-to-dot lines in 2D plot for points a very
long way off the screen.
- Fixed bug which caused incorrect plotting of cumulative
histograms with small weights.
- Slight modification to spike-style bar drawing in Histogram,
now has tidier appearance when using dashed lines.
- There has been extensive internal reorgamisation of the plotting
classes. There should be no user-visible effects of this, but
please report anything which seems to be misbehaving.
Version 3.4 (23 December 2008)
- TOPCAT now uses
as a (preferred) alternative to PLASTIC for inter-tool
interoperability. SAMP is now usually the default; the old behaviour
can be recovered using the
-plastic command-line flag.
Although much of the messaging behaviour remains the same,
various improvements to the GUI accompany this change:
For more discussion see Section 9.
- New SAMP Panel at the bottom of the
Control Window summarising status
- New SAMP Status () toolbar button in
Control Window, which pops up new
- Other slight rerrangements of toolbar buttons and menu items
in Control Window
Broadcast Row checkbox added near Activation Action
in Control Window
- TOPCAT's registry access has finally been updated to use
VOResource 1.03 and the Registry Interface 1.01
(it was previously using very out of date protocols).
This means that the Cone Search dialogue
(as well as the semi-supported SIAP and Registry dialogues)
will now pick up a much more up to date set of services.
Additionally, you can choose your own registry service, and
the registry searches in those dialogues now feature keyword searches
rather than picking up all known cone/SIAP services.
See Appendix A.9.2.
- Table columns and parameters can now be referenced by Utype using
utype$ syntax in a similar way to using UCDs -
see Section 7.1.
- When a new subset is created by whatever method, the user
can now elect to transmit it to other applications using
SAMP/PLASTIC as an alternative to adding a new subset
to the table's subset list.
- Add items to Help menu for viewing help in the
default web browser rather than TOPCAT's help browser.
- Add a plot output format option to write gzipped PostScript.
-version command line flag now reports subversion
revision as well as symbolic version number.
- Fixed histogram bug (blank plot) for small values when using
logarithmic Y axis.
- Fix stacktrace error in 3D plots when no data is available.
- The SIMBAD name resolver is fixed in the cone search window
(it was using a no-longer-supported service format).
Version 3.4-1 (27 March 2009)
- Note Sybase ASE works (documentation edit only)
- Fixed bug which caused SIAP queries to fail every time.
- SIAP load dialogue now has name resolution capability.
- Added SSAP load dialogue. Basic functionality only.
- Added documentation for previously-unadvertised
SIAP/SSAP load dialogues.
- Fixed bug which caused registry queries (Cone, SIA, SSA) to fail
for Java 1.6.
- Fixed bug which caused blank Contact field in registry query
- Can now query registry for more registry services.
- Fits BINTABLE TZERO/TSCAL value reading improvements:
- Columns with integer TZERO values now read as integers
rather than floating point values where possible.
This includes unsigned longs ('K'), which were previously
represented as doubles with lost precision.
Unsigned longs which are too large however (>263)
are read as nulls.
- Byte-valued columns can now be written out by
handler as signed byte values (TFORM=B,TZERO=-128)
rather than signed shorts (TFORM=I).
- More comprehensive testing.
- Fixed bug in calculating value scaled double ('D') values.
- Fixed bug in typing value for scaled float ('E') arrays.
- Added column selector documentation Appendix A.1.4.
- Fix bug when decoding
- Fix error reporting bug in registry search.
- Report application name and version in User-Agent header of outgoing
- Provide aliases
-ssap command line flags.
- Fix SIA and SSA queries to avoid exponential notation in parameters;
there is currently no standard concerning numeric representations,
but this avoids problems with some servers.
- The fixed length Substring Array Convention for string arrays
is now understood for FITS binary tables.
- Fixed so that attempting to run services under unfavourable firewall
conditions does not cause startup to hang.
- Minor SAMP bugs fixed (JSAMP upgraded to 0.3-1).
Version 3.4-2 (17 July 2009)
- Plot windows now allow a plot title to be set from the
Configure Axes and Title window
- Loading message now displayed in control window table list
when table is being loaded from PLASTIC or SAMP, or during startup.
- Incoming and outgoing SAMP
load.table messages now use
name parameter, which gives a better chance of a
useful human-readable name being attached to transmitted tables.
- Sexagesimal delimiters can now be spaces as alternative to colons
in Cone/SSA/SIA load dialogues.
- GAVO load dialogue updated in line with modified database service.
- Work around J2SE mark/reset bug when loading table direct from URL.
- Produce null rather than nonsense results from sky coordinate
conversions with unphysical latitudes.
- Produce null rather than questionable results from sexagesimal
conversions with mins/secs out of range.
- Startup script improved to provide some cosmetic improvements for
Mac users: the TOPCAT icon is shown in the dock rather than the
generic Java icon, and the menu application name is set to
"TOPCAT" rather than the classname. Note these don't take effect
if running directly using
- STILTS run using
topcat -stilts from standalone jar
can now correctly report starjava revision.
Version 3.4-3 (31 July 2009)
- Fixed two bugs related to drag and drop: intermittent failure of drop
(Mac only?), and application crash when making a drop that fails.
Version 3.5 (6 November 2009)
- There are several improvements in this version, many of them to do
with improved functionality and usability for loading or acquiring
data both from local files and from various Virtual Observatory services.
- TOPCAT will now load multiple tables from a single file if
multiple tables are present, rather than just the first one.
This applies to multi-extension FITS files which contain more than
one table HDU, and to VOTable documents which contain more than one
TABLE element. It affects the Filestore dialogue, naming files
on the command line, and the new VizieR load dialogue.
In previous versions, when you selected a multi-extension FITS
file or VOTable from one of the load dialogues or on the command
line, only the first table contained in it would be loaded, and
any others were silently ignored.
Such files often only contain a single table, but not always.
Now, if multiple tables are present in the container file, each
one will appear as a new table in the tables list.
Other table file formats are not currently affected, since there
is no mechanism for storing multiple tables in, say, a CSV file.
Multiple Cone, SIA and SSA searches
- In previous versions, it was possible to use the Virtual Observatory
Cone Search, Simple Image Access and Simple Spectral Access services
to locate catalogue records, images and spectra respectively in a
single (cone-shaped) region of the sky, with position and radius
In this version it is possible to execute such a query for each
row of an input table, with position and radius obtained from table
data in appropriate columns. This effectively gives a join between a
local table and a remote one exposed by a cone-like searchable
VizieR load dialogue
- A new VizieR load dialogue
has been introduced to make queries directly to CDS's VizieR service.
Thanks to Thomas Boch for contributing code for this.
- A new menu labelled VO (for Virtual Observatory)
has been added to the Control Window.
This currently contains single and multiple Cone, SIA and SSA
queries and the service specific load dialogues, namely the
VizieR and Millennium ones.
All these features are also available elsewhere in the GUI,
but the new menu groups together VO-related functionality for
Positional search dialogue enhancements
- A number of improvements have been made to the Cone Search,
SIA and SSA dialogues; these applies both to the old single-region
search dialogues and the new multi-region searches.
- The service URL can now be entered (e.g. cut'n'pasted) directly
as an alternative to obtaining it from a registry search.
This allows use of unregistered services, as well as making it
easy to select the service URL for pasting elsewhere.
- The resource table returned from the registry search can now
be sorted by column contents, by clicking on the selected
- While searching the registry, some indication of the number
of services found so far is displayed.
- Searching the registry is less likely to result in an
out of memory error.
- The (not very useful, and potentially confusing) registry
Update button has been withdrawn; its function
is now available only from the Registry
- The metadata contained in tables returned from a successful
search is improved.
- The SIA and SSA dialogues now have a selector for choosing
the desired image/spectrum format.
- The SIA and SSA dialogues now longer require explicit entry
of a size parameter (these protocols define default behaviour
for when no non-zero size has been specified).
- The SIA and SSA now automatically query the registry for all
appropriate services when first displayed.
This is sensible behaviour
at the moment, since there is at time of writing
a reasonable number of them. A directed search may be given
instead at the user's option.
- The Cone Search window provides better instructions on use
when first displayed.
A new section Section 6 has been added to the manual
providing an introduction to the concepts of VO data access,
and a new apendix section Appendix A.9 describes the
various single- and multiple-query windows.
Storage Policy change
- The way that TOPCAT stores large tables has changed.
In previous versions, table data was held in memory
(the default Storage Policy was "
-disk flag was specified
(to use the "
disk" storage policy), in which case it was
stored in temporary disk files. If you didn't put
on the command line, it was common to run out of memory when working
with large tables.
Now, the default storage policy is "
This means that relatively small tables are held in memory,
and larger ones are stored in temporary files.
The effect should be that most of the time, you don't need to
specify any special options, and you can work with small or
large tables without running out of memory.
-disk is still permissible, and may help in
Running out of memory is still a possibility, but should be much
The old behaviour can be restored by using the new
-memory command-line flag.
The only differences you notice from this change should be good
ones, however it is slightly experimental. Please contact the author
if you suspect it has introduced any problems.
- Spectrum Display activation action now uses SAMP or PLASTIC to
display in a suitably compliant external spectrum viewer.
The old behaviour was to display the spectrum in an internal SPLAT
window, but it didn't work very well.
- The JSAMP library has been upgraded to v1.0, giving
some SAMP behaviour changes, enhancements and bugfixes.
Control of things like TOPCAT server port and server endpoint
hostname are now configurable using
-jsamp command-line flag has been added
for convenience so that the TOPCAT jar file can be used
easily as a JSAMP toolkit.
- Namespacing of VOTable documents made more intelligent, and
configurable using the
- VOTable 1.2 supported.
- The VOTable 1.2
xtype attribute is now used to
try to identify columns containing ISO-8601 format dates,
which allows them to be treated as numeric values for
- As described above, when loading a VOTable document which
contains multiple TABLE elements, all the contained TABLEs
are now separately loaded into TOPCAT rather than just the
first one, which is what used to happen.
- The Load Window now has toolbar buttons as well as items in the
DataSources menu for more convenient
access to the various load dialogues.
- The command-line flags corresponding to load dialogues
have been withdrawn from use; they were probably not widely used,
and are of minimal usefulness with the new load window toolbar
- While a table is loading an entry is now visible in the
Control Window table list. Previously it was not always
clear whether a slow load was in progress or not.
Bugfixes and minor enhancements
- There are improvements (and possibly new problems) in the loading
dialogue framework. One item is that a failed load less often
closes the dialogue.
- HTML table output is now HTML 4.01 by default
(includes THEAD and TBODY tags).
- There is a workaround for illegally truncated type declarations
in IPAC tables.
- XML, including VOTable, output is handled more carefully;
fix VOTable output encoding to be UTF-8,
and ensure no illegal XML characters are written.
- Fixed plotting bugs - caused intermittent GUI corruption
(e.g. missing toolbar buttons), especially on MacOS.
- Bug fixed in crossmatching output: entries which should have been
null were sometimes written as non-null (typically large negative
numbers) in FITS and in non-TABLEDATA VOTable output.
This affected cells in otherwise non-nullable columns
where the entire row was absent. The previous behaviour is not
likely to have been mistaken for genuine results.
parse* string->numeric conversion
functions now cope with leading or trailing whitespace.
- The list of example queries in the GAVO load dialogue has
been extended to match those in its web interface.
- Fixed an obscure bug which could under rare circumstances cause
truncation of strings with leading/trailing whitespace read
from text-format files.
Version 3.5-1 (21 December 2009)
- This version has one significant new feature:
Other than that, is is mostly performance and usability enhancements and
- Plot windows can now export to PDF as well as other formats.
- Fixed a bug which caused an error when attempting to load multiple
files from the command line.
- Improve documentation of 3D windows, including zoom options.
- Fixed a bug which caused an error when attempting to do cone/SIA/SSA
search from directly supplied service URL.
- Improve error reporting from multi-cone (etc) window.
- You can now cut and paste from the linear correlation coefficient
display in the 2-d plot style editor.
- Faster display of load window and VO menu options.
- Fixed internationalisation bug which could cause cone searches etc
to fail in locales that use "," for a decimal point.
- Registry searches are now faster and less likely to run out of memory.
Registry-search-based operations (cone search dialogues etc) now
run in topcat-lite configuration as well as topcat-full.
- Now warns about non-active resources returned from registry searches
(which shouldn't happen).
- Improved helpfulness of error messages in multi-cone etc windows.
- Performance improvements when loading from VOTable documents
which contain many small tables, both
in general and in the special case of SIA/SSA results.
This makes a big difference in some cases.
Version 3.5-2 (24 March 2010)
- Add memory monitor
indicator in control window.
- Considerable performance and scalability improvements to the
For several common regimes, using default settings,
memory use has been decreased by a
factor of about 5, and CPU time reduced by a factor of about 3.
- Add optional tuning controls
(Tuning Parameters and Full Profiling)
to the crossmatching windows.
Experimentation with these can lead to significant performance
improvements for given matches.
- Fixed a crossmatch bug; it was giving a possibility of
suboptimal "Best Match Only"
match assignments when pair matching in crowded fields.
Crossmatch results thus may differ between earlier versions
and this one. Both are reasonable, but the newer behaviour is
more correct. In non-crowded fields, there should be no change.
- Add new functions to
array functions for constructing arrays,
and new aggregating functions
- Added Verbosity selector in multi-cone window.
- Improved logging of registry searches.
- Adjusted the way that data types are read from JDBC databases.
Date, Time and Timestamp type columns will now be converted to Strings
which means they can be written to most output formats
(previously they were omitted from output tables).
- Match Window documentation extended and somewhat reorganised
(they now have their own
- MacOS icons improved: thanks to Simon Murphy (ANU)
for this contribution.
- Memory management adjusted further - default (Adaptive) storage policy
now uses direct allocation (=
for intermediate-sized buffers
to avoid running out of java heap space.
- Further performance improvement for VOTable documents with
very many TABLEs.
- Fix bug in code for handling very large mapped FITS files.
This was causing fatal read errors in some cases.
- Fix issue when sending some SAMP messages
(unhelpful reuse of message tags).
- Fixed minor error when a directory in the file browser got deleted
- Fix minor scrolling bug in table and column windows.
- Fix histogram save/export bug: the exported table now has the same
X bounds as the currently displayed histogram.
- Withdraw embedded SPLAT application.
SPLAT could previously be used in some circumstances for in-JVM
display of spectra, but this facility didn't work well and was
presumably little used. You can still view spectra by configuring
an Activation Action to talk to an external spectrum viewer
(SPLAT or some other choice) via SAMP or PLASTIC.
- Withdraw SOAP server functionality. This has been deprecated since
v2.1. External control is better handled using SAMP (or PLASTIC).
If anybody misses this functionality, get in touch and I will
consider a similar but less SOAPy alternative.
Version 3.6 (6 August 2010)
- This version contains some new features and usability enhancements,
and a number of bugfixes.
Load/Save Dialogue improvements:
- There is a new System Browser option when loading
and saving. This does essentially same job as the old
Filestore Browser (still available), selecting
a file to load or save, but it uses the system-default GUI to do it.
For Mac and Windows users, this may present a more familiar and
functional interface to the file system (for Linux users, it is
probably not an improvement). Both options are available,
so you can choose whichever you prefer.
- You can now save multiple tables at once.
The Save Window now offers
three ways of saving: Current Table,
Multiple Tables and Session.
Current Table saves the current Apparent Table as before.
Multiple Table saves some or all of the loaded Apparent Tables
to a container file
(typically Multi-Extension FITS or multi-TABLE VOTable).
Session saves some or all tables as well, but additionally
saves many aspects of the TOPCAT state, such as table subsets,
sort order, hidden columns etc.
Other significant enhancements:
- Finally - you can delete and rename row subsets in the
Apologies to those who've been asking that this has taken
so long to implement.
- There are new actions in the Control Window
File menu to change the order of
loaded tables in the table list (move them up and down).
You can use ALT-up/down keys to do the same thing.
This may be useful in conjunction with the new
session/multi-table save facility.
- Utype metadata items are now visible in the Parameter and Column
- The JSAMP library has been upgraded to version 1.1.
This means that the hub will appear in the "System Tray" where
possible (when using java 1.6+, and when using a suitable
display manager). It also recognises the SAMP_HUB environment
variable for non-standard hub locations.
- There are a couple of improvements in the
VizieR load dialogue:
it has options to display sub-tables within catalogues and
to include or exclude obsolete catalogues.
- The current table can now be discarded by hitting the
Delete key in the Control Window table list.
- SDSS image cutout downloads updated to DR7 (was DR4).
- The unofficial column type "
long" is recognised
in IPAC format tables.
- An efficiency warning is now issued for large
compressed FITS files.
- Format row counts are displayed with group separators
(e.g. thousands separated by commas) in some places
for better readability.
Fixes for bugs and misfeatures:
- Table parameter values in algebraic expressions now evaluate to
their current value, rather than the value when the expression
- Tables in TOPCAT now have private copies of column and table
This means that changing a column name or parameter in one table
will not affect other tables.
It should also prevent a related bug that allowed the
column headings in the table browser to get out of step with those
in the columns window and elsewhere.
- Receipt of a SAMP
table.highlight.row message will no
longer cause a similar message to be sent back
(and similarly for the PLASTIC
The previous behaviour was an unwanted implementation side effect
which could sometimes cause problems in interaction with other
- Fixed bug in FITS-plus metadata output
(table parameters were getting lost).
- Better behaviour (warn + failover) when attempting to read large
files on 32-bit OS or JVM.
- Corrected literature references in Fluxes conversion class
documentation (thanks to Mattia Vaccari).
- Fix memory usage issues (unnecessarily large output graphics
files, possible out of memory errors) for density plots
with large pixel sizes.
- Fixed bug in CSV file parsing that could ignore header row in
absence of non-numeric columns.
- Fix some minor bugs with Cancel operation during table save.
- Reinstate help buttons from Save Window toolbar
(erroneously removed since version 2.0).
- Make sure that failed load of table with no rows reports as such
rather than failing silently.
- Loading tables by typing their name directly in the Load Window
now loads multiple tables if present not just the first one,
in common with most of the other load dialogue types.
- Upgraded PixTools HEALPix library to 2010/02/09 version.
This fixes a bug that could theoretically cause deficient
crossmatch results, though I haven't managed to produce
- Fixed (I hope) "Table no longer loaded" error when sending tables
Finally, from this release TOPCAT requires version 1.5 (a.k.a. 5.0)
of the Java J2SE Runtime Environment; it will no longer run on
version 1.4, which is now very old. I don't expect this to cause
compatibility issues for anyone, but I'm interested to hear if that's
not the case.
Version 3.7 (23 December 2010)
- This version contains some significant enhancements and a number
of minor improvements and bugfixes.
- Table loading has had a major overhaul.
Load dialogues are no longer modal, that is you can now
interact with the rest of the application while they are open.
This has a number of benefits:
- A slow load doesn't prevent you from doing other things.
- You can be loading several different tables at once,
either from the same or from different places.
- You can use the Help system while a load dialogue is open
(load dialogues now have the usual Help button like other
It has also enabled some related changes:
- Progress is reported for each table load - you can see how many
rows have loaded and, if known, how many there are in total
- Cancelling a load in progress is more straightforward and
works more reliably than in earlier versions
A few related bugs and idiosyncracies have been corrected
at the same time.
- The registry search interface used in single and multiple VO
access windows has been improved:
- When specifying a keyword search for Cone, SIA or SSA services,
you can select which registry record fields to match
(ShortName, ID, Title, Publisher, Subjects etc).
This makes it much easier to get the records you're
- The Subjects field is now displayed for retrieved records.
- Lists of registry records (i.e. Cone, SIA or SSA services) can
now be sent to/received from other tools via SAMP
- Sky coordinates can be received from other tools via SAMP and
used to set Cone, SIA or SSA position
BaSTI Load Dialogue:
- A new load dialogue is available for accessing the INAF-OATS
(Bag of Stellar Tracks and Isochrones) service --
code contributed by Marco Molinaro.
- The Help browser now has a Search tab as well as the
Table of Contents tab, so you can do text searching on the
extensive help document.
- Storage management improvements; removed restriction on large
(>2Gb) non-FITS datasets in some circumstances.
- Fix so FITS tables >2Gb can be used in 32-bit mode
(though slower than 64-bit).
- All windows have a new Scrollable option
in their File menu. It is not generally recommended to use this
option, since in general the windows are arranged so that resizing
them will resize sensible parts of them, but it may be useful
if using some of the larger windows on an unusually
- FITS files now store table names in EXTNAME (and possibly EXTVAR)
- Window placement should now behave a bit more like platform norms,
rather than sitting in the top left corner.
- When a table is discarded, it is now deselected from any table
selector (for instance in a plot, match or
- HTML table output now writes cell contents which look like URLs
in HTML <A> tags.
- Basic authorization (
table URLs handled.
- Logs current version and whether it is up to date with latest
release on startup. This behaviour can be controlled by the
- Belatedly added STFC logo to About window.
- Add recommendation to use 64-bit java in large
table tips section.
- Fix bug in registry result table which displayed resource
identifier instead of publisher in the Publisher column.
- Fix SAMP table load bug which tripped over "+" characters
- Fix regression bug from v3.6 - loading jdbc tables from
command line or text entry now works again.
- Fixed file pointer
int overflow bug in FITS
- Fixed a couple of bugs relating to VOTable strict mode.
- Possibly fixed a not-well-characterised bug in
Version 3.8 (9 May 2011)
- A new TAP load dialogue
supporting data retrieval using
the Table Access Protocol (TAP) has been introduced.
This provides SQL-like free-form access to any remote databases
exposed with the TAP protocol.
- An internal SAMP hub is now by default started when
TOPCAT starts up if no existing hub is apparently running,
so under normal circumstances the SAMP panel at the bottom right
of the Control Window should be active all the time.
This means that you don't need to do any explicit preparation to
communicate with other SAMP-aware applications.
If you want to return to the previous behaviour (hub only started
by explicit user action), use the
-nohub flag on the
You can connect and disconnect with the hub by clicking the connection
logo at the right of the SAMP panel.
The JSAMP library is upgraded to JSAMP v1.2, which fixes one or
two bugs and supports the experimental Web Profile, though Web Profile
support is not switched on by default.
- Random Groups HDUs are now tolerated, though not interpreted,
within FITS files.
- Add quintuple match option to multi-table match window
(someone requested it!).
- You can now re-activate a row in the table viewer window by
deselecting and then re-selecting it.
- Expressions in column selectors are now left (and coloured grey)
rather than deleted in the case of a syntax error.
- Improve text rendering in Available Functions window.
- GAVO load dialogue now uses fixed-width font for SQL entry.
- Registry search now includes Publisher field by default.
Bug fixes and workarounds
- JDBC table input handler now effectively downcasts
BigInteger/BigDecimal types to Long/Double.
The PostgreSQL JDBC driver seems to use the Big* types routinely
for numeric values (which I don't think it used to do).
- Add workaround for J2SE bug
which could cause errors when reading compressed FITS files.
- Fix FITS character handling bug which could cause corrupted FITS
files on output in presence of non-ASCII characters.
- Fix (some) JDBC connection leaks.
- Attempt case-sensitive matching before case-insensitive for
Version 3.9 (27 October 2011)
- Additional asymmetric match options have been added to
the Pair Match window -
as well as the old symmetric Best Match option, you can now choose
to do a match which identifies the best match for each row of
one or the other input table
(see Output Rows Selector Box).
They correspond to finding the best match in table B for each row
in table A, and in crowded fields often provide more intuitive
semantics than the previous symmetric
(in non-crowded fields there is generally no difference).
This replicates the matching performed by some other tools,
- New Match Algorithms,
2-d Cartesian Ellipses and
have been introduced to permit matching of general
elliptical, rather than just circular, regions in both planar
and sky coordinates.
Another, N-d Cartesian with Errors,
has been added for dealing with per-object errors
in Cartesian coordinates (previously per-object errors
could only be handled in sky coords).
- Fixed a significant bug in sky crossmatching.
If all points in a table were on one side of the RA=0 line,
but the error radius extended across that line, matches on the
other side could be missed. Matches could also be missed if
different tables used different conventional ranges for RA
(e.g. -180..180 in one case and 0..360 in another).
This fix may in some, but not most, cases result in slower matching
- Semantics of the Sky With Errors match
algorithm have changed slightly.
Notable usability improvements:
- You can now change the column order of a table by dragging
the rows up and down in the
- Algebraic functions involving angles are now mostly available
using degrees as well as radians.
Coords class has been replaced by
providing sky coordinate functions,
and a new class
provides normal degree-based trigonometric functions
alongside the radian-based versions in
The functions in the various activation action classes now take
degrees and not radians.
Some of the old function names have changed to make clear that they
use radians and not degrees.
- The File|Discard Table action in the
Control Window can now remove multiple tables at once if
more than one is selected.
- ADQL parsing and syntax highligting has been added to the
TAP load dialogue,
thanks to Grégory Mantelet's
- TAP queries are now synchronous by default
(the Synchronous checkbox is now checked
- The SQL Query Dialogue
(finally) has a multi-line entry field for SQL query text.
- Add To Browser button to Help Window - this displays
the currently displayed help page in your normal web browser.
- New convenience button added to Available Functions window
which is a shortcut to display of the expression syntax in the
Other upgrades and enhancements:
- JSAMP has been upgraded to version 1.3-1.
The main change is that the Web Profile is now enabled by default
in the SAMP hub that TOPCAT launches.
There are also more options in the Hub menus,
and it will overwrite any moribund
.samp file at
startup, which should eliminate annoying persistent
"404 No handler for URL" warnings.
- Add Delete On Exit checkbox to
Running Jobs tab of TAP load dialogue.
Jobs are now created by default with Delete On Exit
set true (you can change the default with the Deletion menu).
- You can now run JyStilts from the
jar files in the same way as from
- Add experimental system properties
- Added the experimental
system property to allow
custom tools to be added to the main toolbar at runtime.
- Improve resilience of multi-cone operation in the presence of
unreliable or inconsistent DAL services.
- Added new constants to expression language
-running flag which loads tables specified on the
command line into a existing instance of TOPCAT if one is already
- Add new
join function to
to combine array elements into a string.
- TAP load dialogue uses modified upload ID as per most recent
TAPRegExt draft. This may cause some TAP services incorrectly
to appear not to support uploads if they have not made a
- Improved some issues (reporting wrong row subset counts
and membership) related to changing subset definitions.
- Fix cone search verbosity parameter so that VERB=3 is not
- Fix bug introduced at v3.7 related to labelling loaded files
(improper handling and propagation of
- A PARAMref element with no referent in a VOTable
no longer causes an uncaught NullPointerException.
- Fix a small bug related to enabledness of buttons in control
window and hub connection.
- Work round an obscure java misfeature which could cause
the wrong cell to be edited if a sort interrupts an edit.
Version 4.0b (28 March 2013)
- TOPCAT version 4 includes a complete rewrite of the plotting
(see below for details).
The new plotting functionality is however experimental
and changes may be made to the GUI following user feedback.
For this reason, the classic plot windows remain available
from their usual toolbar buttons and the new plot windows are
currently hidden away in the Graphics menu.
The "b" designation of this version acknowledges the experimental
nature of the visualisation changes, but other new features are
- I finally bid an affectionate farewell to the Top Cat
Hannah-Barbera cartoon graphic.
Never having had any legal right whatsoever to use this logo
my conscience has eventually got the better of me and TOPCAT
now has an excellent new logo kindly drawn by my friend Phil Hall.
It's still a yellow cat.
- All change.
Other new capabilities:
- Use MOC footprints to speed up multi-cone searches,
including footprint icon display in multicone window.
- Add IPAC output format.
- Add new class
to the expression language,
containing a method for calculating K-corrections
following the method of Chilingarian and Zolotukhin.
- VOTable input and output are now supported for version 1.3
of the VOTable standard.
- The version of the VOTable format used for VOTable output
can now be selected,
by using the system property
Output version is VOTable 1.2 by default.
VOTable output no longer includes
- You can now reference tables in multi-extension FITS files by name
(EXTNAME or EXTNAME-EXTVER) as an alternative to by HDU index.
- ADQL parsing in the TAP window can now highlight all unknown symbols
not just one of them. This is possible by upgrading to the
official v1.1 of Grégory Mantelet's ADQL library,
which improves some other aspects of ADQL parsing as well.
- Add new function
Maths class in expression language.
- Add new
split functions for string splitting
Strings class in expression language.
- Some changes to the
it now works on non-numeric values,
gives the right answer for
and character values,
and returns a blank value rather than the string "null" or "NaN"
for blank inputs.
- Sexagesimal to numeric angle conversion functions now permit the
seconds part of the sexagesimal string to be missing.
- Changes to the IPAC format definition are accommodated:
the "long"/"l" type, which is apparently now official,
no longer generates a warning, and headers may now use
minus signs instead of whitespace.
- Fixed SAMP table loads to honour "name" parameter.
- PNG graphics output no longer has transparent background.
- Upgrade JSAMP library to version 1.3-3.
- Work around change in VizieR output so that VizieR catalogue
searching works again. This may be a temporary change.
- Update URLs for GAVO Millennium database service at request of
- Add new class
to the expression language containing MOC-related functions
- Add explanatory section to manual on
-debug flag to manage logging messages better.
- Fix serious and long-standing bug
(bad TZERO header, causes subsequent reads to fail)
for FITS output of boolean array columns.
- Fix small but genuine sky matching bug.
The effect was that near the poles matches near the specified
threshold could be missed. The bug was in the PixTools library,
fixed at the 2012-07-28 release.
- Fix bug which failed when attempting to read FITS files with
complex array columns (
- Fix failure when loading very large sequential tables.
- Fixed table concatenation so that column datatype array size etc
is consistent with both input tables not just the first one.
- Adjust SQL writer to avoid type error for MySQL.
- Fix plotting bug that might have caused mysterious failures to
update the plot. Or it might not.
- Fix ADQL parsing in TAP window so that TAP_UPLOAD tables
are treated correctly.
- Fix bug which could cause truncation of strings in FITS and
possibly VOTable output when tables were hand-edited to add
strings longer than previously-declared length.
- Fixed bug in multi-table matches (>2 tables) which could
result in output rows with columns from only a single table,
i.e. not representing an inter-table match.
- Fix bug in HMS sexagesimal formatting: minus sign was omitted from
negative angles. Now the output is forced positive.
- Fix minor bug associated with deleting the current row subset
(this now causes All to become current).
- Cope with 1-column CSV files.
- Fix (some, though probably not all) possible bug(s)
related to running on Java 1.7 on Mac.
- Use the correct form "
rather than "
for TAP capability unit values.
- Infinite floating point values are now correctly encoded
in VOTable output ("
-Infinity" as in
- Fixed some layout problems which could lead to zero-width text
entry fields for RA/Dec.
- Fixed bug when attempting to explode a hidden array column.
- Fix error bar rendering bug which could result in diagonal lines
being offset near the edge of plots.
- Fix problem with GUI locking up when plotting
- Fixed bug in stacked line plot which caused scribbly
drawing in the presence of null X axis values.
- Fixed problem with row highlight messages bouncing for ever
between applications when the Transmit Row activation
action is in use.
- Improve behaviour when deleting a parameter in the
Next Previous Up Contents
Up: Release Notes
TOPCAT - Tool for OPerations on Catalogues And Tables
Starlink User Note253
TOPCAT web page: