SDSS@JHU HTM Implementation
HTM Implementation
Background
Tested Platforms
Documentation
Download
Previous version (2.0).
Related developments - HTM users.
The HTM Implementation has evolved a lot over the past few years. Initially, Alex Szalay put together the first C code that generated the complete HTM index and was able to perform most of the querying. Robert Brunner wrote the first C++ version, calling it AstroMap. When we first started to receive 'real' data in 1998, we gathered enough experience to know where the bottlenecks lie. The code was completely redesigned and rewritten in C++ by Peter Kunszt in 1999, based on the initial C implementation, improving the performance by factors up to 00. In 2000/2003 George Fekete proprosed a redesign which would have changed the numbering sequence of the ids. This was not considered a good option but a few modifications were made to simplify the code. Another factor 4 speedup was achieved by this. In the current version partial and full lists have been droped and a set of ranges of ids are returned from an intersection. The current version is 2.1.
The code should work on every computer with a C/C++ compiler or with JDK1.2 installed for the java version. It has been successfully tested on these platforms.
There are 3 APIs currently forseen:
C++ set of classes and a cc_aux c file with c functions
a Java2 package
a C# package (tbd) Some online documentations is available:
Programmers Quick Guide
C++ classes and methods
Java class documentation (JavaDoc)
Detailed description
The HTM code that can be downloaded here has the following functionality:
The documentation is included with each package. If you are interested in very detailed descriptions of the HTM, please read one of the publications or see the online details.
NOTE: To download - depending on your browser settings - you might have to hold the shift key while clicking on the link you're interested in.
C++ classes (2.1), in .tar.gz with makefile also contins visuall c++ project (136K)
C++ class documentation only (HTML), in .tar.gz (20K)
C++ class documentation only (HTML), in .zip (27K)
Java htm package htmIndex.jar with examples (68K)
Java HTML documentation javadocs in a jar file (276K)
Java HTM source includes build.xml for bulding with ant and jbx Jbuilder project. (276K)
SQL Server DLL and Strored Procedures allows calling of HTM functions inside SQL Server. Includes htmdll_2_0.doc which explains how to use this.
At STScI HTM is used for partitioning the multi terabyte GSC2 catalogue . ShowSky a java tool for plotting images and objects contains HTM plotting features.
The ESA cornerstone mission GAIA is currently studying HTM to partition similations and data. Prototypes have been built on HTM using Java.