IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 13846


Ignore:
Timestamp:
Jun 15, 2007, 5:33:38 AM (19 years ago)
Author:
eugene
Message:

update text

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/doc/manual/manual.tex

    r11757 r13846  
    1  %%% $Id: manual.tex,v 1.5 2007-02-13 01:28:42 jhoblitt Exp $
     1 %%% $Id: manual.tex,v 1.6 2007-06-15 15:33:38 eugene Exp $
    22\documentclass[panstarrs,spec]{panstarrs}
    33
     
    4242\section{Overview}
    4343
    44 The Pan-STARSS Image Processing Pipeline (IPP) provides a software
    45 suite used for the reduction of astronomical images.  Although
    46 designed principally for the Pan-STARRS project, it is highly
    47 configurable and extensible, and hence highly applicable for other
    48 projects.
    49 
    50 The IPP consists of several software products, built on top of a
    51 number of extenal libraries and Perl packages (see
    52 \S\ref{sec:dependencies} for a list).
     44The Pan-STARRS Image Processing Pipeline (IPP) is a software suite for
     45the reduction of astronomical images.  Although designed principally
     46for the Pan-STARRS project, it is highly configurable and extensible,
     47and hence highly applicable for other projects.
     48
     49The IPP consists of a number of elements: programs which perform
     50specific image analysis steps; a parallel processing environment in
     51which the image processes steps are automatically sequenced and
     52tracked; a databasing system for associating and calibrating the
     53detections of astronomical objects.  These programs use a number of
     54internal and external libraries (see \S\ref{sec:dependencies}),
     55simplifying the process of adding additional elements as needed.
     56
     57The core functionality of the IPP is implemented by NN principal
     58programs: \code{psphot} is used for the detection and analysis of
     59objects in astronomical images; \code{psastro} performs the
     60astrometric calibration of the images; \code{ppImage} is used for a
     61wide range of single image analysis step, include image detrending and
     62the generation of Q/A images and plots; \code{ppMerge} combines
     63collections of input detrend images into high-quality masters;
     64\code{pswarp} transforms images between different pixel projections
     65and coordinate systems; \code{ppStack} is used to combine multiple
     66science images, including outlier rejection which is sensitive to
     67varying image quality; \code{ppSub} performs image differencing
     68incorporating the variations in seeing with multiple optional
     69convolution kernels.
     70
     71In addition to the image-level analysis, the IPP provides DVO, the
     72Desktop Virtual Observatory, a database system for tracking
     73astronomical objects and detections.  DVO includes tools for querying
     74and manipulating the contents of the object database. It also provides
     75a number of tools for performing the analysis of quantities at the
     76database level.  These include: \code{relphot}, which performs relative
     77photometry and calculates robust ensemble photometry for objects;
     78\code{relastro}, which calculates average astrometry quatities for
     79objects, including proper motion and parallax, as well as iterative
     80improvements to the astrometric calibrations of images injested by the
     81database; \code{uniphot}, which is used to calculate consistent
     82photometric calibrations and transformations. 
     83
     84The IPP provides a system for bulk automation of all stages of the
     85image analysis process within a parallel processing environment.  The
     86parallelization scheme is very light-weight, and makes use of
     87distributed UNIX jobs operating on multiple machines within a cluster.
     88Process scheduling and distribution of the resulting jobs to the
     89parallel cluster is performed by \code{pantasks}.  A set of
     90\code{pantasks} scripts, \code{ippTasks}, is used to define the
     91processing stages. 
     92
     93Data flow within the IPP is managed via interaction with a collection
     94of database tables, representing the steps of the analysis pipeline.
     95The IPP examines the state of these database tables to determine which
     96jobs should be performed next.  A set of simple text files
     97(\code{dbconfig}) defines the database scheme and are also used to
     98automatically generate C code used to query the database tables.
     99Higher level command-line programs (\code{ippTools}), built on these
     100APIs, are available to both the end user and to \code{pantasks)} to
     101examine the state of the pipeline database.  A set of Perl scripts
     102(\code{ippScripts}) provide the glue between the individual IPP
     103analysis programs and the parallel processing environment.  A
     104web-based tool, \code{ippMonitor} provides the user interface for
     105monitoring the pipeline and the current status of the data analysis
     106process.
     107
     108\note{this is not needed here: move elsewhere}
    53109
    54110\code{psLib} is the Pan-STARRS library, containing a range of
     
    59115manipulation.
    60116
    61 Built on these libraries are several programs that provide the data
    62 reduction functionality: \code{psphot} for photometry, \code{psastro}
    63 for astrometry, \code{ppStats} for image statistics, \code{ppImage}
    64 for image detrending, \code{ppMerge} for merging detrends and
    65 \code{ppNorm} for normalising detrends.
    66 
    67 We have also built prototype programs for image manipulation
    68 (combination and subtraction).  \code{pois} and \code{stac} are the
    69 original prototypes, built directly on \code{psLib}.  We are currently
    70 (January 2007) moving most of the code into \code{psModules} and
    71 finalising algorithms.  The result is that these programs work, but do
    72 not currently have the entire range of functionality that we envision
    73 for the final product.  \code{pswarp} and \code{ppStac} are the first
    74 steps toward the final product; they have limited capability and have
    75 not been tested as thoroughly as other products.
    76 
    77 Data flow through the pipeline is achieved through a state-based
    78 system using a mysql database.  \code{ippdb} provides a library to
    79 interact with the database, and \code{ippTools} uses this to determine
    80 pending operations and register completed operations.
    81 
    82117We have some Perl modules which are used to facilitate the data flow
    83118in processing: \code{PS::IPP::Metadata::Config} reads ``metadata
     
    86121interprets output lists from the \code{ippTools}; and
    87122\code{PS::IPP::Config} reads the configuration files.
    88 
    89 The data processing operations are performed by the \code{ippScripts},
    90 written in Perl.  Process scheduling and controlling is achieved using
    91 \code{panTasks} within the \code{Ohana} project; configurations
    92 particular for the IPP are in \code{ippTasks}.  Finally, the
    93 \code{ippMonitor} provides a means of monitoring the pipeline through
    94 a web server.
    95123
    96124%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    286314\end{itemize}
    287315
    288 
    289316\subsubsection{psconfig}
    290317
    291 \tbd{EAM to document psconfig.}
    292 
     318* pscheckperl : search for and install, if needed, external Perl modules
     319* pschecklibs : search for and install, if needed, external C libraries
     320* psconfig : set up the UNIX shell environment
     321* psbuild : build and install the software
     322* psdist : build IPP distributions (requires CVS access)
     323* tagsets : tables defining the C and Perl components to be built
     324
     325The IPP is a large and complex software system.  A major goal of the
     326IPP build system is to be user-friendly for those end users which do
     327not have root access on their machines.  Using the IPP build tools, it
     328is possible to install the complete system as a non-priviledged user.
     329The build system also makes it possible to maintain multiple
     330simultaneous installations with different versions of the
     331software. This latter feature is particularly important for developers
     332who need to be able to make tests and comparisons of different
     333versions.
     334
     335\subsubsubsection{UNIX environment}
     336
     337With the psconfig system, the complete collection of libraries and
     338
     339When building software
    293340
    294341\subsubsection{jhbuild}
Note: See TracChangeset for help on using the changeset viewer.