 Treeview
  Treeview  
 What is Treeview?
 What is Treeview?
Treeview is a viewer for hierarchical structures, and knows about
a number of astronomical file formats 
(including FITS, HDS/NDF, NDX, VOTable) amongst other things.  
As well as examining files in a directory tree, in most cases it can
work just as well on compressed files, data from a URL, and data in 
(optionally compressed) zip or tar archives.
Operation is very intuitive.
Briefly: a tree structure is shown in one panel of a window,
and its nodes can be expanded or collapsed by clicking with a mouse.
When a node is selected, additional information about it is made
available in the other panel of the window; different information 
about the same selected node can be seen by clicking tabs.
Since a picture is worth a thousand words, here is a screenshot:
Some more screen shots are available:
Treeview is written in Java, so can be run on a variety of platforms.
Treeview deals with the following generic forms of node:
 Arrays: Arrays:
- 
  These are found within FITS SIMPLE/IMAGE HDUs, Starlink HDS/NDF files
  and Starlink NDX structures, and represent an N-dimensional hypercube
  of numbers.  They have the following views:
  
  - 1-d arrays (e.g. spectra) can be displayed as a line plot
  
- 2-d arrays can be displayed as an image at 1x magnification;
      this does not require loading the whole image, so can be fast 
      even for large arrays
  
- The values of the pixels in even very large arrays can be viewed in 
      a scrollable 1-d or 2-d table.  Again, the whole array does not
      need to be loaded, so this is fast
  
- Higher-dimensional (>2d) arrays can be shown as image slices 
      through the array along any axis
  
- Three-dimensional arrays can be viewed collapsed 
      (by averaging over some or all planes) along any given axis 
      to give an image
  
- Statistics (mean, variance etc) of an array can be calculated.
  
- An external program 
      SPLAT
      can be launched for detailed analysis of 1-d spectral data
  
- An external program
      SoG 
      can be launched for detailed analysis of 2-d image data
  
 
 Tables: Tables:
- These are found in TABLE/BINTABLE FITS extensions, or in VOTable files.
    They have the following views:
  
  - Table data is shown in a compact scrollable table.
  
- Table has full JTable functionality - columns can be moved around, 
      width altered etc.
  
- All available column and table metadata can be displayed in a 
      tabular format
  
- An external program
      TOPCAT
      can be launched for detailed examination of the table
  
 
Treeview understands the structure of the following kinds of nodes and
can display them hierarchically:
 FITS files: FITS files:
- 
  
  - Each Header+Data Unit (HDU) in the FITS file is displayed
  
- FITS header cards are displayed
  
- BLANK values and BSCALE/BZERO scaling are handled properly
  
- Simple FITS files and IMAGE, TABLE and BINTABLE extensions are recognised
  
- All array views described above are supported for SIMPLE/IMAGE HDUs
  
- All table views described above are supported for TABLE/BINTABLE HDUs
  
- WCS information can be read from headers using a variety of encodings
  
- WCS information can be plotted over image pixels or showing array extent
      for 2-d images
  
- WCS information can be displayed in different FITS/non-FITS encodings
  
 
 Starlink NDF files: Starlink NDF files:
- 
  
  - All array views described above are supported.
  
- Magic bad values are treated properly.
  
- The co-ordinate Frames can be viewed in several formats 
      (native, XML and a variety of FITS encodings)
  
- The extent of a 2-d array in any of its WCS co-ordinate Frames 
      can be displayed, with a grid plotted.
  
- NDF HISTORY components are shown
  
 
 Starlink HDS container files: Starlink HDS container files:
- 
  
  - The structure of arbitrarily complicated HDS files can be seen.
  
- All array views described above are supported for array components.
  
 
 VOTable files: VOTable files:
- 
  
  - Compact display of complicated VOTable structures
  
- Most aspects of VOTable hierarchical structure are understood
  
- All FIELD and PARAM metadata can be viewed in a tabular form
  
- TABLEDATA, FITS and (so far untested) BINARY table data support
  
- Relative or absolute, local or network URLs for FITS files
  
- XML content of any VOTable element can be seen
  
- VOTable DTD stored locally for standalone operation
  
 Some VOTable screenshots are available.
 XML documents: XML documents:
- 
  
  - Hierarchical view of XML documents
  
- Summary or full display of each node can be seen
  
- Known structures (NDX, VOTable) embedded in larger documents 
      are recognised
  
- Many standard XML encodings supported
  
 
 Zip files: Zip files:
- 
  
  - Zip (PKZIP-like) and Jar archives displayed like directory structures
  
- Many node types within archive can be viewed as if they were normal files
  
 
 Tar files: Tar files:
- 
  
  - Tar archives displayed like directory structures
  
- Many node types within archive can be viewed as if they were normal files
  
 
 Starlink NDX structures: Starlink NDX structures:
- 
  
  - NDFs, FITS files and suitable XML files can be viewed as NDXs or as 
      their native type
  
- All array views described above are supported
  
- WCS information can be plotted over image pixels or showing array extent
      for 2-d images
  
- WCS information can be displayed in various formats (XML, FITS, AST)
  
 
 Starlink HDX containers: Starlink HDX containers:
- 
  
  - Hierarchical view of contained resources
  
- XML view can be seen
  
 
 Directories: Directories:
- 
  
  - Hierarchical view of file systems
  
 
 Files: Files:
- 
  
  - Hex dump or text content of file can be shown.
  
- File system information is displayed.
  
 
 Compressed data: Compressed data:
- 
  
  - Files compressed in gzip or bzip2 format can be viewed.
  
- Hex dump or text of uncompressed content can be shown.
  
 
Other features:
- Basic on-line help system
- Popup "alter-ego" menus allow nodes to be seen in different aspects
    (e.g. view a VOTable as an XML document)
    or reloaded to reflect change of underlying data
- Demonstration data is integral to the tool and can be viewed at any time
    to investigate Treeview capabilities
The items in this list refer to the latest version.
If you are at a Starlink site, a not-very-recent version of 
Treeview should be installed as part 
of the standard Starlink distribution; it can probably be invoked
by typing
   /star/bin/treeview name
or just 
   treeview name
at the shell prompt.
If you are not at a Starlink site, or if you are but want to use some 
of the newer features you can 
download the latest copy from the
anonymous ftp 
site, which contains source code and javadocs as well as the
runtime jar files etc.
Full installation instructions are given in the:
Installation guide.
 Available versions
 Available versions
Treeview is still undergoing development, 
as are some aspects of the way that Starlink distributes software, 
so there is an interesting range of versions available.
- Version 1.1 appeared on the Starlink Spring 2002 CD-ROM.
    This is the most recently published Starlink distribution, 
    and so is the version likely to be installed at Starlink sites.
- Version 1.4 apppeared on the Winter 2002 Starlink CD-ROM.
- Version 2.1-3 appears on the Summer 2003 Starlink CD-ROM.
- Version 2.2-1 appears on the Spring 2004 Starlink release.
- More up to date versions are available from 
    this web page (see installation guide); 
    the idea is that updates can be made frequently 
    and downloaded without having to wait for the next CD to be released.
Details of Starlink releases can be found on the 
Starlink Download page.For details of which features appear in which versions, see
the version history.
There is a long list of new features and enhancements I would like to
make to Treeview.  The following is a list in very roughly the order 
in which they might get done.  Some are small additions, some are 
major projects.  Items get added about as fast as
they get taken off, so ones near the bottom of the list may well 
never reach the top.
- Viewing of FTP/GridFTP directories
- Allow SPLAT/SoG invocation for all arrays (not just NDX/NDF nodes)
- Tooltip balloons for tabs in detail panel
- Improved spectrum coordinate display (using AST V2)
- WCS 'grid' panel for 1-d arrays
- Zoom in/out for image display
- GSD (Global Section Datafile) file support (pure java or JNI?)
- Splash screen on startup
- Improve the on-line help
- Specify XML elements on command line using XPath expressions
- Histogram view for arrays
- Linear plot display for each point in a data cube
- HTML file support
- Graphics file support (gif jpeg etc)
- Proper handling of NDF AXIS information
- FITS-like display of NDF MORE.FITS extension
- Support for Astrores tables
- Use of WCS in >2-d arrays
- Allow detaching of tabbed detail panel
- Glob data node
- Restructure for user extensibility, so custom node types can be 
    added dynamically
- AIPS++ table support (pure java or JNI or CORBA?)
- Better memory management (there are leaks)
- One-click demo mode
- Invocation of non-Java/web-services programs (GAIA)
- Pure java version of WCS support
- Pure java version of HDS support
Suggestions for things not on this list,
or for changes of priority of things that are on it, are very welcome.
If there is anything you would like to see Treeview doing, please
contact me at 
m.b.taylor@bristol.ac.uk
and I will factor in such requests to my schedule.
The interested reader may wish to consult some javadoc API documentation:
for the latest bleeding-edge version of Treeview.  This is not however
required or intended reading for users of the package.
There is not currently a formal mailing list, but if you want to
be kept abreast of new features as they become available let me
know and I may set one up.
Any comments, questions, requests, bugs etc, please contact me: