/** @mainpage psModule Image Processing Library


@section intro Introduction
This library contains the Pan-STARRS Image Processing Pipeline (IPP) modules (psModule). These modules
use the functionality of the Pan-STARRS Library (psLib) to perform more complex tasks associated with image
processing. Modules were constructed to support each of the required processing stages and are listed according
to the particular processing stage for which they will primarily be used. To preserve namespace, globally-visible
structures and functions are prefixed with pm, an abbreviation for Pan-STARRS Modules.

Modules in this release include:

 - Subtract bias (pmSubtractBias)
 - Correct for non-linearity (pmNonLinear)
 - Flat-field (pmFlatField)
 - Mask bad pixels (pmMaskBadPixels)
 - Combine readouts (pmReadoutCombine)
 - Subtract sky (pmSubtractSky)


The installed code for psModule consists of header files and a static binary library (libpsmodule.a).

@section extinstall Required 3rd Party Libraries

Before building psLib from source, several 3rd party software libraries must
be installed. These include:
 - Pan-STARRS Library (psLib)
     - Available from the Maui High Performance Computiong Center (MHPCC) at https://mhpcc.pan-starrs.org/code/releases
     - Compatibility tested with rel3
 - GNU Scientific Library (GSL)
     - Available at http://www.gnu.org/software/gsl
     - Compatibility tested with version is 1.4
 - Fastest Fourier Transform in the West (FFTW), version 3
     - Available at http://www.fftw.org
     - Compatibility tested with version is 3.0.1
 - C Flexible Image Transport System Input output (CFITSIO), version 2.480 or later
     - Available at http://heasarc.gsfc.nasa.gov/docs/software/fitsio
     - Compatibility tested with version is 2.490
     - Versions earlier than 2.480 will not work as new functionality introduced in 2.480 is exercised
 - Doxygen Documentation System
     - Available at http://www.doxygen.org
     - Compatibility tested with version 1.3.6
     - The optional companion package, GraphViz (a.k.a., the 'dot' command), is recommended to enable header-file dependency diagrams
 - SLALIB
     - Available at http://star-www.rl.ac.uk/
     - Compatibility tested with package version number 2.4-12
 - Gnome XML C parser and toolkit (libxml2)
     - Available at http://www.xmlsoft.org
     - Compatibility tested with version 2-2.6.16-3

We recommend using the particular versions listed as compatibility tested, as
that is the only versions of the external libraries tested to work well with psLib
and psModule.  Though it is quite possible that later versions of the libraries
listed will also work, care must be taken when upgrading these libraries to verify
that its functionality is compatible with the tested version.

@section install How to Build from Source

Tested versions of psModule are put into a tar file and can be downloaded from:

https://mhpcc.pan-starrs.org/code/releases

Though MHPCC recommends using the released packaged tar files descibed above,
both daily development snapshots and direct CVS access is available.  The daily
snapshots are available at

https://mhpcc.pan-starrs.org/code/snapshots

These snapshots represents development code as found in CVS on the day
specified in the filename.  This code set may not be functional, vary in
testing, etc.  Reasonable efforts are made to ensure that the code does
actually compile, but given the nature of code development, even that is not
always the case.  Use snapshots with great caution.

If one has a login account on mhpcc.pan-starrs.org, direct CVS access is
possible.  Example of the commands required for direct CVS retrieval are
as follows:
<pre>
$ cvs -d:ext:USERNAME@mhpcc.pan-starrs.org:/data/panstarrs/cvsroot co -r RELEASEBRANCH psModule
</pre>
where:
  - USERNAME is your login name on the server
  - RELEASEBRANCH is the desired release branch, e.g. rel1.


@section build How to Build the psModule library.

The psModule library and associated tests are made via the GNU autoconf/automake system.

The source should build using the configure script in the psModule directory.  The
recommended steps are:
<pre>
$ cd psModule
$ configure --with-psLib=/home/kaiser/psLib (NB: Directory for psLib will vary)
$ make
</pre>
<i>This builds files in psModule/src and psModule/test.</i>

Other configuration options, such as location of other 3rd party libraries, are also available.
To get a list of options, type the following in the top psModule directory.
<pre>
$ configure --help
</pre>

@section run How to Build and Run Tests

To test the installation, users may execute the unit tests which was automatically built
when the user performs a make from the psModule directory.
<pre>
$ cd psModule/test
$ ./FullUnitTest
</pre>
<i>This executes all test drivers in psModule/test.</i>

@section doc How to Create Code Documentation

Both HTML and man page documentation may be generated from the inline
documentation embedded in the code using the following commands:
<pre>
$ cd psModule/src
$ doxygen
</pre>
<i>This places documentation in psModule/docs.</i>

Also, a prebuilt set of code documentation for both the releases and last
CVS snapshot can be found at:

https://mhpcc.pan-starrs.org/docs/

*/
