The UA::HiRISE::libHiRISE software was developed at the Planetary Image Research Laboratory (PIRL) of the University of Arizona Lunar and Planetary Laboratory for the purpose of providing overarching control for the Observation ID, Error, and Instrument classes for data sets produced by the High Resolution Imaging Science Experiment (HiRISE) instrument, part of the Mars Reconnaissance Orbiter (MRO) mission.
UA::HiRISE::libHiRISE exists as a shared library from which utilities can be used by other modules. It does not do anything except provide the characterization that other modules share and thereby prevents specific functionality that is used mutually by more than one part of the sub-system from being written redundantly in multiple places. For this reason, libHiRISE can be considered the support base for the entire HiRISE system, though it in turn uses the standard template library for functionality that is not specific to the mission. The library software is composed of a set of C++ classes and utility functions:
The Exception class provides the base class for all of the commands that are HiRISE specific but do not fall under the realm of normal execution.
The implementations of the Error class are made to handle commands that are outside of normal execution and are decidely wrong.
There are two implementations of Error:
An argument is considered invalid if it is not an element of an enumerated list or if it cannot be recognized by libHiRISE. Standard errors in arguments will not be caught by UA::HiRISE::Invalid_Argument, rather the STL error handling mechanism will take care of that situation
A value is considered out of range if it is greater than the maximum value for that attribute or lower than the minimum value for that value. It should be noted that the use_defaults option being set to true will replace values that are out of range with the default values, thus preventing an Out_of_Range error from being reported.
The Instrument class carries constants that characterize the HiRISE instrument for the observation data components.
The Observation_ID class encapsulates the understanding of the 32-bit observation identification value and its various text representations. This value is the key to identifying exactly which observation data set is being used and with it relating to all of the metadata for the observation stored in the HiCat database. The Observation_ID is extended by its CCD_ID and Channel_ID subclasses which allow for detailed discrimination of each data set within the context of any identified observation. The fully qualified observation data set identification is contained in the EDR filename, PVL label, and in the Science Channel Header data component.
The libHiRISE software is included with the UA::HiRISE distribution.
Copyright (C) 2005 Arizona Board of Regents on behalf of the Planetary Image Research Laboratory, Lunar and Planetary Laboratory at the University of Arizona.
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License, version 2.1, as published by the Free Software Foundation.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.