STIL is a pure Java library for generic input, output and processing of tabular data. It presents to the application programmer a view of a table which looks the same regardless of whether it came from a FITS file, a VOTable, an ASCII text file, a query on a relational database, or whatever. Thus the application doesn't have to worry about the storage format of tables either when reading or writing them, it can concentrate on doing processing. STIL's idea of a table is rich enough to include table and column metadata, and table cells which contain scalar or single- or multi-dimensional array data of numerical, string or other types. This is well suited to astronomical data, though it can be of use in other fields as well.
STIL comes with a large range of supported input and output formats (including VOTable, FITS, SQL, ASCII, CSV) and can be extended to cope with still others.
The generic table I/O has the following features:
STIL includes sophisticated facilities for VOTable I/O which can, if desired, be used largely independently of the rest of the package. As well as the general features listed above this has the following features:
STIL development is ongoing. The following features are present in the library but not fully documented and subject to major changes:
tablecopy
tool is provided for simple table format conversion.tpipe
which
can do row selection, sorting, column rearrangement,
algebraic manipulations, and many other things.
More command-line tools, including a table-matching one,
are planned but not yet present.
uk.ac.starlink.table.join
package
provide efficient facilities for table joins based on
exact or fuzzy coordinate matches, suitable for medium-sized
tables (<= 106 rows or so). These are not
well documented, but work, and are used in TOPCAT.
Other features, such as more I/O handlers and better handling for errors and astronomical co-ordinates, are planned but not yet included.
If you have requests, or would like to see specific features in STIL sooner rather than later, please get in touch and I may be able to oblige.
The following formats are currently supported for table input:
There are two main sources of documentation for STIL:
You can download the full documentation set (SUN/252 in various forms plus javadocs) in the documentation zip file.
The current version of STIL is 2.2 , released February 2005.
STIL is released under the GPL. The main components are available here:
There are alternative ways of obtaining the compiled classes:
Note that while the source code archive above contains all the original code in STIL, it may not suffice to build it. If you need build files etc, contact me.
Previous versions can be found at ftp://andromeda.star.bris.ac.uk/pub/star/stil/. You can see the version history in the user document.
STIL has been developed using the Java 2 Standard Edition 1.4.1, but is expected to work with any 1.4 or 1.5/5.0 version of the J2SE.
If you like STIL, you'll love TOPCAT, a graphical tool for table browsing / plotting / analysis / editing which benefits from all STIL's features.
If you have any comments, questions, requests, bugs etc, please contact me: