MSA / MAS / AMAS HyperDimensional Data File

About libhmsa

libhmsa is a reference implementation for loading, saving, and manipulating HMSA/XML files for the MSA / MAS / AMAS HyperDimensional Data File.

libhmsa includes:

  • A set of re-usable Windows libraries (DLLs) that automate certain tedious aspects of loading or saving HMSA files, such as XML reading/writing, generation and validation of checksums and unique identifiers, and so on. Libraries are provided in both 32- and 64-bit versions.
  • A set of C header files for the libraries.
  • A set of C++ wrapper classes for the libraries, to permit efficient object-oriented programming. The wrapper classes include classes for HMSA condition and dataset templates, such as 'hmsaProbeEM' for a <Probe Class="EM"> condition, 'hmsaImageRaster2DSpectral' for a <ImageRaster Class="2D/Spectral">, etc.
  • A set of example Windows utilities, with full C++ source code, that demonstrate how to use libhmsa to perform common HMSA processing tasks, such as generating a region of interest map from a hyperspectral dataset (hmsaROI), extracting a sum spectrum from an area of a hyperspectral dataset (hmsaSpecExtractor), and so on. Please see the downloads section for installers and source code.

libhmsa is provided under a permissive MIT-style open-source license (see license, copyright and disclaimer.)

Please address any questions, suggestions or comments about libhmsa to Aaron Torpy.

Current version

The current version of libhmsa is 14.10, released 3rd of October, 2014.

This software should be considered 'beta' status, and users should verify the behaviour and output prior to inclusion in release software.

Downloads

libhmsa API and libraries

Libraries and API code libhmsa API-v14.10.zip 8.51MB
Version14.10, 2014 Oct 03

Library source code

The source code for the libhmsa set of libraries is available below to allow porting to other operating systems. This code is not required to link your application to libhmsa.

libhmsa libhmsa-src-v14.10.zip 36kB
hmsaXML hmsaXML-src-v14.10.zip 26kB
hmsaUID hmsaUID-src-v13.09.zip 33kB
hmsaChecksum hmsaChecksum-src-v13.07.zip 30kB
hmsaFinder hmsaFinder-src-v13.07.zip 26kB

Example applications

hmsaROI

32-bit Windows application for extracting region of interest images (as Windows bitmaps) from HMSA datasets. Supports multi-dataset HMSA files.

Installer hmsaROI 14.03.0.1.exe 3.9MB
Source code hmsaROI-src-v14.03.zip 148kB
Version14.03, 2014 Mar 11

hmsaSpecExtractor

32-bit Windows application for extracting spectra (as EMSA/MAS files) from spectral HMSA datasets. Supports multi-dataset HMSA files.

Installer hmsaSpecExtractor 14.03.0.1.exe 3.29MB
Source code hmsaSpecExtractor-src-v14.03.zip 147kB
Version14.03, 2014 Mar 12

hmsaValidator

32-bit Windows application for validating the contents of a HMSA/XML file.

Installer hmsaValidator 14.10.0.1.exe 3.90Mb
Source code hmsaValidator-src-v14.10.zip 146kB
Version14.10, 2014 Oct 03

hmsaSplitter

32-bit Windows application for splitting multi-dataset HMSA/XML files into a set of single-dataset HMSA/XML files.

Installer hmsaSplitter 14.03.0.1.exe 3.88Mb
Source code hmsaSplitter-src-v14.03.zip 136kB
Version14.03, 2014 Mar 12

hmsaUIDGen

32-bit Windows command line utility for generating 64-bit unique identifiers for HMSA files (uses hmsaUID.dll).

Installer hmsaUIDGen 13.08.0.0.exe 1.34Mb
Source code hmsaUIDGen-src-v13.08.zip 10kB
Version13.08, 2013 Aug 1

hmsaChecksumGen

32-bit Windows command line utility for generating checksums of HMSA files (uses hmsaChecksum.dll).

Installer hmsaChecksumGen 13.07.0.0.exe 1.34Mb
Source code hmsaChecksumGen-src-v13.07.zip 10kB
Version13.08, 2013 Aug 1

License, copyright and disclaimer

Copyright (C) 2011-2014 CSIRO

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Neither the name of the CSIRO nor the names of its officers may be used to endorse or promote products derived from this Software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Documentation

The API is currently undocumented, but example applications with extensive code comments are available in the downloads section. If you have any questions about using the libhmsa API, please contact Aaron Torpy.