IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 553


Ignore:
Timestamp:
Apr 29, 2004, 5:41:45 PM (22 years ago)
Author:
Paul Price
Message:

Reorganised several sections. Trying for consistency. Changed
several things --- IPS, Controller, Scheduler --- which need to be
signed off.

File:
1 edited

Legend:

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

    r548 r553  
    1 %%% $Id: design.tex,v 1.9 2004-04-29 21:30:37 price Exp $
     1%%% $Id: design.tex,v 1.10 2004-04-30 03:41:45 price Exp $
    22\documentclass[panstarrs]{panstarrs}
    33
     
    2222\RevisionsStart
    2323% version     Date         Description
    24 DR.01     & 2003.01.01 & First draft  \\ \hline
    25 DR.02     & 2003.03.05 & Second draft \\ \hline
    26 DR.03     & 2003.03.25 & Section reorganization \\
    27 DR.04     & 2003.04.13 & Most sections fleshed out \\
     24DR.01     & 2004.01.01 & First draft  \\ \hline
     25DR.02     & 2004.03.05 & Second draft \\ \hline
     26DR.03     & 2004.03.25 & Section reorganization \\ \hline
     27DR.04     & 2004.04.13 & Most sections fleshed out \\ \hline
     28DR.05     & 2004.04.29 & Reorganisation for consistency --- PAP. \\ \hline
    2829\RevisionsEnd
    2930
     
    8889%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8990%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    90 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    91 
    92 \section{Referenced Documents}
    93 
    94 This section lists documents referred to by this specification.\\
    95 
    9691%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9792
     
    235230%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    236231
    237 \subsubsubsection{OATS}
     232\paragraph{OATS}
    238233
    239234The Observatory And Telescope System (OATS) is not a part of the IPP,
     
    245240%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    246241
    247 \subsubsubsection{Pollster}
     242\paragraph{Pollster}
    248243
    249244The Pollster is a program that polls OATS at regular intervals for the
     
    263258%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    264259
    265 \subsubsubsection{Metadata DB}
     260\paragraph{Metadata DB}
    266261
    267262The Metadata DB stores and maintains the metadata\footnote{Note that
     
    277272%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    278273
    279 \subsubsubsection{Scheduler}
     274\paragraph{Scheduler}
    280275
    281276The Scheduler is responsible for determining the processing stages
     
    297292%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    298293
    299 \subsubsubsection{Localiser}
     294\paragraph{Localiser}
     295\label{sec:localiser}
    300296
    301297It is the duty of the Localiser to assign processing stages to
     
    316312%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    317313
    318 \subsubsubsection{Controller}
     314\paragraph{Controller}
    319315
    320316The Controller's job is to control the execution of the processing
     
    328324%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    329325
    330 \subsubsubsection{Pixel DB}
     326\paragraph{Pixel DB}
     327\label{sec:pixeldb}
    331328
    332329The Pixel DB is responsible for storing and maintaining the location
     
    345342%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    346343
    347 \subsubsubsection{Nodes}
     344\paragraph{Nodes}
    348345
    349346The Nodes perform the grunt work of executing the processing stages as
     
    367364%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    368365
    369 \subsubsubsection{Object DB}
     366\paragraph{Object DB}
    370367
    371368The Object DB is a facility to store all of the information about
     
    387384%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    388385
    389 \subsubsubsection{CSPs and MOPS}
     386\paragraph{CSPs and MOPS}
    390387
    391388The Client Science Programs (CSPs) and the Moving Object Processing
     
    418415%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    419416
    420 \subsubsubsection{Related/Connected components}
     417\paragraph{Related/Connected components}
    421418
    422419The Pollster may be contained within the Scheduler (i.e., the
     
    431428%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    432429
    433 \subsubsubsection{Responsibility}
     430\paragraph{Responsibility}
    434431
    435432The IPP team will develop and have responsibility for maintaining
     
    440437
    441438\subsubsection{Processing Stages}
     439\label{sec:processingStages}
    442440
    443441We now consider the collection of IPP processing stages which are
     
    472470\item Calibration Image Processing Stages
    473471  \begin{enumerate}
    474   \item Calibration 1: Basic master-detrend creation --- combination
    475     of simple detrend images (e.g., bias, dome flat etc).
    476   \item Calibration 2: Sky-model/fringe-mode generation ---
    477     combination of more-complicated detrend images (e.g., fringe,
    478     scattered light etc).
    479   \item Calibration 3: Flat-field correction image creation ---
    480     analysis of photometry from multiple dithered FPAs.
     472  \item Cal 1: Basic master-detrend creation --- combination of simple
     473    detrend images (e.g., bias, dome flat etc).
     474  \item Cal 2: Sky-model/fringe-mode generation --- combination of
     475    more-complicated detrend images (e.g., fringe, scattered light
     476    etc).
     477  \item Cal 3: Flat-field correction image creation --- analysis of
     478    photometry from multiple dithered FPAs.
    481479  \end{enumerate}
    482 \item Calibration Test Processing Stage --- tests whether new
    483   calibration data are required.
     480\item Calibration Test Processing Stage
     481  \begin{enumerate}
     482    \item CalTest 1: Detrend frame testing --- tests whether new
     483      calibration frames are required.
     484    \item CalTest 2: Photometric float correction testing --- tests
     485      whether a new photometric flat correction is required.
     486  \end{enumerate}
    484487\item Reference Catalog Processing Stages
    485488  \begin{enumerate}
     
    582585\subsubsection{Stages}
    583586
    584 The major IPP tasks are organized into stages, which consist of
    585 multiple modules.  Each stage represents a collection of complex
    586 operations performed on a single data entity.  Each stage therefore
    587 represents the maximum amount of effort which can be performed in
    588 serial without interaction between parallel threads.  The stages will
    589 be written in \tbd{Python}, linking the modules together.  Examples of
    590 stages are Phase 2 (detrend images) and Phase 4 (combine images from
    591 multiple telescopes and search for transients).
    592 
    593 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    594 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    595 
    596 \subsubsection{Controllers}
    597 
    598 The stages are parallelized by a controller, which initiates the
    599 stages on separate machines and monitors their progress.  An example
    600 of the controller functionality is ``Run the phase 2 processing on
    601 exposure number 1234 using machines 1,3,5,7,9''.
    602 
    603 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    604 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    605 
    606 \subsubsection{Scheduler}
    607 
    608 The scheduler is responsible for interacting with \PS{} systems
    609 external to the IPP, and for initiating the reduction appropriate for
    610 images as they are received.  An example of the scheduler
    611 functionality is ``Retrieve exposure number 1234; run phase 1--4
    612 controllers on exposure 1234''.
     587The major IPP processing tasks are organized into stages, which
     588consist of multiple modules.  Each stage represents a collection of
     589complex operations performed on a single data entity.  Each stage
     590therefore represents the maximum amount of effort which can be
     591performed in serial without interaction between parallel threads.  The
     592stages will be written in \tbd{Python}, linking the modules together.
     593Examples of stages are Phase 2 (detrend images) and Phase 4 (combine
     594images from multiple telescopes and search for transients).
     595
     596%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     597%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     598
     599\subsubsection{Orchestration}
     600
     601High-level components such as the Scheduler, the Controller and the
     602Localiser are for process control.  As such, they shall be written in
     603\tbd{Python} in order to maintain flexibility.
    613604
    614605%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    634625%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    635626
     627\subsubsection{Pollster}
     628
     629The Pollster simply polls OATS on a regular basis for metadata
     630(including telescope exposures) which is not known by the IPP (i.e.,
     631already written in the Metadata DB).  On the discovery of such metadata,
     632it is written to the Metadata DB.
     633
     634%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     635%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     636
    636637\subsubsection{Pixel Server}
    637638
    638639The IPP Pixel Server (IPS) is a repository for all image pixel data
    639 required by the IPP.  Images may reside in the IPS for different
    640 periods depending on their use and type.  Data stored by the IPS
    641 include the raw images, the calibration images, intermediate
    642 processing stage images as needed, final processed images, difference
    643 images, and image subsections, \tbd{along with the associated
    644 metadata}.  The IPS must retain images as long as they are needed, up
    645 to the lifetime of the project.  In order to achieve the I/O
    646 requirements, the IPS may maintain the pixel data distributed across
    647 the processor nodes in an organized fashion, i.e.\ associating
    648 specific machines with specific detectors.  The IPS interacts with the
    649 IPP Metadata Database to allow other systems or subsystems to identify
    650 the available images meeting specified criteria.  IPS specifications
    651 are described in the IPS subsystem specification.
     640required by the IPP, and fulfills the roles of the Pixel DB
     641(\S\ref{sec:pixeldb}) and the Localiser (\S\ref{sec:localiser}).  In
     642addition, it also provides components for managing the distribution of
     643data, and accessing the data.
     644
     645Images may reside in the IPS for different periods depending on their
     646use and type.  Data stored by the IPS include the raw images, the
     647calibration images, intermediate processing stage images as needed,
     648final processed images, difference images, and image subsections,
     649\tbd{along with the associated metadata}.  The IPS must retain images
     650as long as they are needed, up to the lifetime of the project.  In
     651order to achieve the I/O requirements, the IPS may maintain the pixel
     652data distributed across the processor nodes in an organized fashion,
     653i.e.\ associating specific machines with specific detectors.  The IPS
     654interacts with the IPP Metadata Database to allow other systems or
     655subsystems to identify the available images meeting specified
     656criteria.  IPS specifications are described in the IPS subsystem
     657specification.
    652658
    653659In addition to storing the pixel data, the IPS is responsible for
     
    657663%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    658664
    659 \paragraph{Pixel Server Components}
    660 
    661 The IPP Pixel Server consists of the following components:
     665\paragraph{IPP Pixel Server Components}
     666
     667The IPP Pixel Server (IPS) fulfills the roles of the Pixel DB
     668(\S\ref{sec:pixeldb}) and the Localiser (\S\ref{sec:localiser}), and
     669consists of the following components:
    662670
    663671\begin{enumerate}
    664 \item IPP Pixel Server Scheduler (IPSS)
    665672\item IPP Pixel Server Data Locality Optimizer (IPSDLO)
    666673\item IPP Pixel Server Database (IPSD)
    667 \item IPP Pixel Server Node Agent (IPSNA)
     674\item IPP Pixel Server Maintainance (IPSM)
    668675\item IPP Pixel Server I/O Library (IPSIOL)
    669676\end{enumerate}
    670677
     678This assumes that the pixel data will be stored on the nodes.  Each
     679image shall have a unique Universal Resource Identifier (URI) which
     680specifies the location of the pixel data.  As an example, consider a
     681cluster with cross-mounted disks --- in this case, the filename
     682incorporating the full path would serve as the URI.
     683
     684The components of the IPS and their relation to other components (both
     685within the IPS and without) are showin in Figure~\ref{fig:ips}.
     686
     687\begin{figure}
     688\psfig{file=pics/IPS,width=15cm,angle=0}
     689\caption{The components of the IPS.  In addition to the IPSDLO, IPSD
     690and IPSM, the IPSIOL is also a component of the IPS; use of the IPSIOL
     691is shown as dotted arrows in the interactions.  Note that the nodes use
     692the IPSIOL to pass pixel data between each other.}
     693\label{fig:ips}
     694\end{figure}
     695
    671696%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    672697
    673 \subparagraph{IPP Pixel Server Scheduler (IPSS)}
    674 
    675 The IPSS coordinates the movement of image data and executes batch
    676 image data management tasks.  The IPSS has four basic modes of
    677 operation:
    678 
     698\subparagraph{IPP Pixel Server Data Locality Optimizer (IPPDLO)}
     699
     700Processing stages generated by the Scheduler are passed through the
     701IPSDLO which does the following:
     702\begin{enumerate}
     703\item assigns tasks to specific nodes;
     704\item identifies the URI of the required input data; and
     705\item identifies the URI the output data should be written to.
     706\end{enumerate}
     707
     708This allows the choice of processing node to be optimized so that it
     709resides on the node which will process it, as well as allowing the
     710output to be written to the node which requires it for the next
     711processing stage.
     712
     713%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     714
     715\subparagraph{IPP Pixel Server Database (IPSD)}
     716\label{sec:ipsd}
     717
     718The IPSD maintains a database of URIs for the pixel data on the nodes.
     719It should be able to return the URI of the pixel data given one of:
     720\begin{enumerate}
     721\item an exposure identifier and a chip identifier (raw and processed
     722  pixel data from the telescope);
     723\item a calibration identifier (detrend pixel data); and
     724\item a sky cell identifier (summed static sky, reduced and difference
     725  pixel data).
     726\end{enumerate}
     727
     728The IPSD will also contain a history of data management commands and
     729actions.
     730
     731\tbd{Is there a reason why this is not a part of the Metadata DB?}
     732
     733%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     734
     735\subparagraph{IPP Pixel Server Maintenance (IPSM)}
     736
     737The IPSM initiates the execution of bulk data management processing
     738stages.  It may have an automated component which, e.g., monitors the
     739disk space on each of the nodes and redistributes them if they become
     740unbalanced.  However, the main intent is that it is used by a human
     741operator to reorgainise the data, e.g., after a new data optimisation
     742plan has been formulated, or to delete old data.
     743
     744The IPSM passes processing stages to the Controller which executes
     745them on the specified nodes.
     746
     747The IPSM allows four types of operation:
    679748\begin{itemize}
    680 \item Retrieve external data: The IPSS generates {\em retrieve data}
    681   tasks which are executed by the IPSNAs on nodes specified by the
    682   IPSDLO.  This mode will be used frequently to copy data from the
    683   Summit Pixel Server to the IPP nodes for processing.
    684 \item Delete data: The IPSS looks up the location of the data in the
    685   IPP Pixel Data Database and generates {\em delete data} tasks which
    686   are executed by the IPSNAs on the appropriate nodes.  This mode will
    687   be used on a regular basis to clean old data that is no longer
    688   required.
    689 \item Replicate data: The IPSS generates {\em copy data} tasks which
    690   are executed by the IPSNAs on nodes specified either by the
    691   ``replicate data'' command, or by the IPPDLO.  This mode differs
    692   from the ``copy external data'' mode in that it copies data already
    693   within the IPSS.  This mode will be used to backup and rearrange
    694   data.
    695 \item Move data: the IPSS executes a replication followed by a
    696   deletion.  This mode will be used to reorganise the storage.
     749\item Retrieve external data --- to manually trigger the copying of
     750  external data (routine copying of the pixel data from OATS is
     751  handled by the Scheduler).  The IPSM generates {\em retrieve data}
     752  stages which are passed to the Controller for execution.
     753\item Delete data --- to delete old data.  The IPSM looks up the
     754  location of the data in the IPSD and generates {\em delete data}
     755  stages which are passed to the Controller for execution.
     756\item Replicate data --- to backup and rearrange data.  The IPSM
     757  generates {\em copy data} stages which are passed to the Controller
     758  for execution.  Note that this mode differs from the ``copy external
     759  data'' mode in that it copies data already within the IPS.
     760\item Move data --- to reorganise storage.  The IPSM executes a
     761  replication followed by a deletion.
    697762\end{itemize}
    698763
    699 It is not intended that the IPSS will be used by the nodes in the
    700 course of processing --- it is only for bulk data management.  ``Copy
    701 external data'' mode will be used frequently to retrieve data from the
    702 Summit Pixel Server.  ``Delete data'' mode will be used on a regular
    703 basis to flush the system of stale files.  It is expected that the
    704 other modes will be used only occassionally, and initiated by a human
    705 operator.
    706 
    707764%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    708765
    709 \subparagraph{IPP Pixel Server Data Locality Optimizer (IPPDLO)}
    710 
    711 Data tasks generated by the IPSS are passed through the IPSDLO which
    712 assigns write tasks to specific nodes.  This allows the location of
    713 the data to be optimized so that it resides on the node which will
    714 process it.
    715 
    716 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    717 
    718 \subparagraph{IPP Pixel Server Database (IPSD)}
    719 
    720 The IPSD contains image data locations \tbd{and the associated
    721 metadata}.  The IPSD will contain at least:
     766\subparagraph{IPP Pixel Server I/O Library (IPSIOL)}
     767
     768The IPSIOL provides a mechanism for reading and writing pixel data to
     769the IPS.  The existence of the IPSIOL insulates the processing stages
     770from the details of how the pixel data are stored (i.e., the
     771processing stages need not worry whether the data is stored locally or
     772remotely).  It will generally be used on the nodes and the IPSDLO,
     773although other components will also make use of it.
     774
     775The IPSIOL will be able to:
    722776\begin{itemize}
    723 \item The location of image data and its associated metadata that is
    724   available for retrieval from the Summit Pixel Server.
    725 \item The location of image data and its associated metadata that is
    726   yet to be processed by the IPP System.
    727 \item The location of calibration data and its associated metadata for
    728   processing within the IPP System.
    729 \item The location of reduced image data and its associated metadata as
    730   generated by the IPP System.
    731 \item The location of difference image data and its associated metadata as
    732   generated by the IPP System.
    733 \item The location of stacked image data and its associated metadata as
    734   generated by the IPP System.
    735 \item A history of data management commands and actions.
     777\item Open a file specified by a URI --- it may simply open the file
     778  if it exists on the particular node, or it may retrieve the file
     779  over the network.
     780\item Write a file specified by a URI --- it may simply write the file
     781  if it exists on the particular node, or it may copy the file over
     782  the network.  It should also register with the IPSD that a file
     783  specified by a URI has been written.
     784\item Delete a file specified by a URI --- it may simply delete the
     785  file if it exists on the particular node, or it may delete the file
     786  over the network.
     787\item Interface with the IPSD to return a URI given one of the
     788  identifiers in \S\ref{sec:ipsd}.
    736789\end{itemize}
    737790
    738 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    739 
    740 \subparagraph{IPP Pixel Server Node Agent (IPSNA)}
    741 
    742 The IPSNA runs on a node to perform the operations required by the IPSS
    743 and IPSIOL.  This includes:
    744 \begin{itemize}
    745 \item Retrieve data from an external source (e.g.\ the Summit Pixel
    746   Server) to a local disk as requested by the IPSS.
    747 \item Copy data from one of the other nodes to a local disk as
    748 requested by the IPPS.
    749 \item Delete data from a local disk as requested by the IPSS or
    750   through the IPSIOL.
    751 \item Respond to requests for data made by nodes through the IPSIOL.
    752 \end{itemize}
    753 
    754 \tbd{The Agent does not wear a suit, nor does it know kung fu.}
    755 
    756 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    757 
    758 \subparagraph{IPP Pixel Server I/O Library (IPSIOL)}
    759 
    760 The IPSIOL is the workhorse of the IPP Pixel Server system.  It is a
    761 library for reading and writing pixel data to the IPP Pixel Server.
    762 It will generally be used on the nodes, although the IPSS will also
    763 make use of it.  The IPSIOL will be able to:
    764 \begin{itemize}
    765 \item Lookup the location of new and reduced data for an exposure.
    766 \item Lookup the location of the appropriate calibration data for an
    767   exposure.
    768 \item Open a file at the location returned by a lookup.
    769 \item Write new data and metadata to a specified location.
    770 \item Update the storage location and/or metadata of any data.
    771 \item Remove the storage location of data and metadata that has been
    772 deleted.
    773 \end{itemize}
    774 
    775 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    776 
    777 \paragraph{Pixel Data Flow}
    778 
    779 Below we sketch out the intended sequence of events for common
    780 operations.
    781 
    782 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    783 
    784 \subparagraph{Acquisition of data from the Summit Pixel Server}
    785 
     791%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     792
     793\paragraph{Pixel Data Flow Examples}
     794
     795For examples of the operation of the IPS, below we sketch out the
     796intended sequence of events for common operations.
     797
     798Reads during processing:
    786799\begin{enumerate}
    787 \item The Summit Pixel Server sends a ``new data notification'' to the
    788 IPSS.
    789 \item The IPSS generates the {\em retrieve data} tasks which are to be
    790 executed on specific nodes (i.e.\ those which will reduce the raw
    791 data).
    792 \item Each specified node spawn IPSDRAs which downloads the image data
    793 from the Summit Pixel Server to the disk physically mounted on the
    794 node.
    795 \item The node reports the finished task to the IPSS.
    796 \item The IPSS updates the IPSD to the new storage location.
    797 \item The IPSS notifies the IPP Scheduler that new
    798 data is available.
     800\item A processing stage has been passed (from the Scheduler) the URI
     801  for an image that it needs to load into memory.
     802\item The processing stage uses the IPSIOL to open the image.
     803\item The processing stage reads the image into local memory in the
     804  usual manner.
     805\item The processing stage closes the image using the IPSIOL.
    799806\end{enumerate}
    800807
    801 \begin{figure}
    802 \begin{center}
    803 %\resizebox{!}{20cm}{\includegraphics{data_stack8.epsi}}
    804 \caption{ \label{acquisition} Pixel Data Flow: Acquisition}
    805 \end{center}
    806 \end{figure}
    807 
    808 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    809 
    810 \subparagraph{Processing Reads}
    811 
     808Writes during processing:
    812809\begin{enumerate}
    813 \item A processing stage needs pixel data, e.g.\ the appropriate
    814 flat-field for an image being processed.
    815 \item The processing stage uses the IPSIOL to look up the location of
    816 the appropriate image.
    817 \item The processing stage retrieves the required pixel data using the
    818 IPSIOL and loads it into local memory.
     810\item A processing stage has been passed (from the Scheduler) the URI
     811  for an image that needs to be saved, e.g., a subtracted image.
     812\item The processing stage uses the IPSIOL to open the image.
     813\item The processing stage writes the image in the usual manner.
     814\item The processing stage closes the image using the IPSIOL.
    819815\end{enumerate}
    820816
    821 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    822 
    823 \subparagraph{Processing Writes}
    824 
     817Note how the IPSIOL has insulated the processing stage from the details
     818of the reading and writing.
     819
     820Maintenance:
    825821\begin{enumerate}
    826 \item A processing stage has produced pixel data which should be saved, e.g.\ the
    827 subtracted image.
    828 \item The processing stage uses the IPSIOL to look up the location the
    829 image should be written to.
    830 \item The processing stage uses the IPSIOL to write the image.
     822\item A human operator decides that all the pixel data for chip 12
     823  should be stored on node 3.
     824\item Operator plugs this into the IPSM.
     825\item The IPSM queries the IPSD using the IPSIOL.
     826\item The IPSD returns the URIs for all the pixel data for chip 12.
     827\item The IPSM generates processing tasks to be executed on the nodes
     828  that will copy the data from the old URIs to a new URI which
     829  specifies node 3.
     830\item The IPSM generates processing tasks to be executed on the nodes
     831  that deletes the data pointed to by the old URIs.
     832\item The IPSM reports success to the operator.
    831833\end{enumerate}
    832834
    833 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    834 
    835 \subparagraph{Processing Updates}
    836 
     835Client Science Pipelines:
    837836\begin{enumerate}
    838 \item A processing stage needs to update pixel data, e.g.\ the
    839 static sky image.
    840 \item The processing stage uses the IPSIOL to look up the location of
    841 the appropriate image.
    842 \item The processing stage retrieves the required pixel data using the
    843 IPSIOL and loads it into local memory.
    844 \item The processing stage modifies the pixel data in local memory.
    845 \item The processing stage uses the IPSIOL to write the image to the
    846 previous location with an overwrite flag.
     837\item A CSP wants some pixel data.
     838\item The CSP queries the IPSD using the IPSIOL (e.g., asking for a
     839  particular exposure or sky cell).
     840\item The IPSD returns the URI for the pixel data.
     841\item The CSP opens the image using the IPSIOL and the URI.
     842\item The CSP reads the pixel data into memory in the usual manner.
     843\item The CSP closes the image using the IPSIOL.
    847844\end{enumerate}
    848 
    849 \begin{figure}
    850 \begin{center}
    851 %\resizebox{!}{20cm}{\includegraphics{data_processing1.epsi}}
    852 \caption{ \label{processing} Pixel Data Flow: Processing}
    853 \end{center}
    854 \end{figure}
    855845
    856846%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    921911\multicolumn{2}{l}{\bf Weather} \\
    922912Time & The time the weather information was measured. \\
    923 Temperature & The temperature at \tbd{some place.  Will likely want temperatures for a range of locations: external, dome, secondary, primary for starters.} \\
     913Temperature & The temperature at \tbd{some place.  Will likely want temperatures for a range of locations:
     914external, dome, secondary, primary for starters.} \\
    924915Humidity & The relative humidity. \\
    925916Pressure & The (external) atmospheric pressure. \\
     
    12691260\paragraph{Metadata Queries}
    12701261
     1262\tbd{How is the Metadata DB queried?}
     1263
    12711264%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    12721265%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    12791272associated with specific input images, moving objects associated with
    12801273specific chips.  Detailed requirements for the IOD are described in
    1281 the IOD subsystem specification document xxx-xxx-xxxx.
    1282 
    1283 Reference Astrometry Catalogs:
    1284 USNO-B
    1285 2MASS
    1286 HST-GSC
    1287 Tycho
    1288 etc?
     1274\tbd{the IOD subsystem specification document xxx-xxx-xxxx}.
    12891275
    12901276%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    13131299\paragraph{Object DB Table Contents}
    13141300
     1301\tbd{Dunno yet}
     1302
    13151303%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    13161304
    13171305\paragraph{Object DB Queries}
    13181306
     1307\tbd{Dunno yet}
     1308
    13191309%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    13201310%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    13221312\subsubsection{Controller}
    13231313
    1324 The IPP Controller is responsible for connecting the low-level modules
    1325 together to define the various processing subsystems.  The Controller
    1326 manages the parallel processing of these subsystems in the IPP
    1327 computer hardware environment and reports the processing status to the
    1328 IMD.  The Controller must be able to manage more than a single
     1314The IPP Controller is responsible for managing the processing stages.
     1315The Controller manages the parallel processing of these stages in the
     1316IPP computer hardware environment and reports the completion to the
     1317Scheduler.  The Controller must be able to manage more than a single
    13291318processing thread to make maximum use of available processor
    1330 resources.  Some analysis jobs, such as operations on the chips, must
    1331 be allocated preferentially to specified processors, while others must
    1332 be distributed to the available machines in the cluster.
    1333 
    1334 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1335 
    1336 \paragraph{Components}
    1337 
    1338 The Controller consists of the following components: the Controller
    1339 daemon, the remote clients, and the user clients.
    1340 
    1341 The Controller daemon maintains a table of processing nodes available
    1342 to it and the status of those nodes.  When the controller daemon
    1343 starts, it attempts to launch a remote client on each of the available
    1344 processing nodes.  Processing nodes which are not responsive are
    1345 placed into an inactive state and retried occasionally. 
    1346 
    1347 The Controller daemon also maintains three tables of processing jobs:
    1348 pending jobs, active jobs, and completed jobs.  The pending jobs are
    1349 those which have not yet been performed.  The active jobs are those
     1319resources.
     1320
     1321The Controller must honour demands that a processing stage run on a
     1322particular Node.  Requests that a processing stage run on a particular
     1323node should be honoured if possible.  Where no restriction is placed
     1324on the choice of Node choice by the Scheduler, the processing stage
     1325may be run on any available Node.
     1326
     1327The Controller maintains a table of processing nodes available to it
     1328and the status of these Nodes.  When the Controller starts, it
     1329attempts to launch a Node Agent on each of the available processing
     1330nodes.  Modes which are not responsive are placed into an inactive
     1331state and retried occasionally.
     1332
     1333The Controller also maintains three tables of processing jobs: pending
     1334stages, active stages, and completed stages.  The pending stages are
     1335those which have not yet been performed.  The active stages are those
    13501336currently being performed on one of the remote nodes.  The completed
    1351 jobs are those which have finished, either successfully or with an
     1337stages are those which have finished, either successfully or with an
    13521338error state.  The Controller daemon monitors the collection of remote
    1353 clients and sends them new pending jobs when they become free.
    1354 
    1355 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1356 
    1357 \paragraph{Remote Clients}
    1358 
    1359 The remote clients communicate with the Controller daemon via a socket
    1360 connection.  They execute jobs upon request by the controller.  A job
    1361 is executed in the UNIX user space, and is run as a fork by the remote
    1362 client.  The remote client must monitor the standard error and
    1363 standard output of the job and save them in separate buffers.  If the
    1364 process dies, the remote client must detect the crash.  The remote
    1365 client must respond to various commands from the controller daemon.
    1366 The commands include:
    1367 
    1368 {\bf \em report status}: Return the state of the client (idle, busy,
    1369 done), the state of the current job\footnote{Note that a job is
    1370 considered ``current'' until it is cleared with {\em clear job} ---
    1371 even if it has crashed or completed.} (`none', `busy', `crash',
    1372 `done'), and the exit status of the current job (`none', 0--256).  The
    1373 three states of the client indicate that the client has no current job
    1374 (`idle'), that it has a job which is still running (`busy'), and that
    1375 it has a job which has completed.  The job states indicate the there
    1376 is no current job (`none'), that the current job is running (`busy'),
    1377 that the current job has crashed (`crash'), and that the current job
    1378 has exited gracefully (`done').  The exit state is the exit state
    1379 reported by the job (0--256 with 0 indicating a successful completion)
    1380 or is an indication that there is no current job (`none').
    1381 
    1382 {\bf \em report stdout}: Send and flush the current stdout buffer.  The
    1383 remote client will return the complete contents of the stdout buffer
    1384 via a buffered write and flush the buffer when it is finished.  The
    1385 remote client will not accept more data on the stdout buffer from the
    1386 current job until the send is complete and the buffer is flushed.  The
    1387 daemon must accept all of the buffer output.
    1388 
    1389 {\bf \em report stderr}: Identical to `report stdout' for stderr. 
    1390 
    1391 {\bf \em kill job}: remote client should send a kill signal to the
    1392 current job.  When the job has exited, the remote client should set
    1393 the job status to `crash' and the client status to `done'.
    1394 
    1395 {\bf \em clear job}: The remote client should set the current job state
    1396 to `none' and the client state to `idle'.  If a job is currently
    1397 running, it should be killed before the job is cleared.
    1398 
    1399 {\bf \em start job [command]}: execute the given command.  The command
    1400 should be a standard unix command without command line redirection or
    1401 backgrounding.
    1402 
    1403 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1404 
    1405 \paragraph{User Clients}
    1406 
    1407 The user clients send commands and jobs to the controller.  The user
    1408 clients interact with the Controller daemon via a socket.  The user
    1409 clients, which may be subsystems external to the Controller, interact
    1410 with the Controller daemon via the socket connection using a defined
    1411 set of commands.  The user clients can send new jobs to the controller
    1412 daemon, monitor the current job tables, obtain status information on
    1413 the completed jobs, change the list of available processing nodes, and
    1414 send kill commands for specific jobs to the remote clients.
    1415 
    1416 {\bf \em new job} The new jobs are sent to the controller in the form
    1417 of UNIX commands, along with optional specified processing nodes.  If
    1418 the processing node is not specified, then the controller will select
    1419 a node as one becomes available. 
    1420 
    1421 {\bf \em kill job} The user client may kill an existing
    1422 job. \tbd{allow clients to kill jobs sent by other clients? how does
    1423 the client specify the job to be killed?  is this a necessary
    1424 function?}
    1425 
    1426 {\bf \em get status} The user client may request the current status of
    1427 the controller, including the list of pending, active, and completed
    1428 jobs and the status of the individual jobs.
     1339clients and sends them new pending stages when they become free.
     1340
     1341%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1342%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1343
     1344\subsubsection{Node Agents}
     1345
     1346A Node Agent runs on each of the individual nodes to perform the
     1347processing stages as directed by the Controller.  The Node Agents
     1348communicate with the Controller via a socket connection.
     1349
     1350A processing stage is executed in the UNIX user space, and is run as a fork by the
     1351Node Agent.  The Node Agent must monitor the standard error and
     1352standard output of the processing stage and save them in separate buffers.  If the
     1353process dies, the Node Agent must detect the crash.  The Node Agent
     1354must respond to various commands from the Controller.
     1355
     1356%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1357
     1358\paragraph{Report status}
     1359
     1360The Node Agent returns the state of the Node (idle, busy, done), the
     1361state of the current processing stage\footnote{Note that a processing
     1362stage is considered ``current'' until it is cleared with {\em clear
     1363processing stage} --- even if it has crashed or completed.} (`none',
     1364`busy', `crash', `done'), and the exit status of the current
     1365processing stage (`none', 0--256).
     1366
     1367The three states of the Node indicate that the client has no current
     1368processing stage (`idle'), that it has a processing stage which is
     1369still running (`busy'), or that it has a processing stage which has
     1370completed.
     1371
     1372The processing stage states indicate the there is no current
     1373processing stage (`none'), that the current processing stage is
     1374running (`busy'), that the current processing stage has crashed
     1375(`crash'), or that the current processing stage has exited gracefully
     1376(`done').  The exit state is the exit state reported by the processing
     1377stage (0--256 with 0 indicating a successful completion) or is an
     1378indication that there is no current processing stage (`none').
     1379
     1380%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1381
     1382\paragraph{Report stdout}
     1383
     1384Send and flush the current stdout buffer.  The Node Agent will return
     1385the complete contents of the stdout buffer via a buffered write and
     1386flush the buffer when it is finished.  The Node Agent will not accept
     1387more data on the stdout buffer from the current processing stage until
     1388the send is complete and the buffer is flushed.  The daemon must
     1389accept all of the buffer output.
     1390
     1391%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1392
     1393\paragraph{Report stderr}
     1394
     1395Identical to `report stdout', but for stderr.
     1396
     1397%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1398
     1399\paragraph{Kill processing stage}
     1400
     1401The Node Agent should send a kill signal to the current processing
     1402stage.  When the processing stage has exited, the Node Agent should
     1403set the processing stage status to `crash' and the Node status to
     1404`done'.
     1405
     1406%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1407
     1408\paragraph{Clear processing stage}
     1409
     1410The Node Agent should set the current processing stage state to `none'
     1411and the Node state to `idle'.  If a processing stage is currently
     1412running, it should be killed before the processing stage is cleared.
     1413
     1414%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1415
     1416\paragraph{Start processing stage}
     1417
     1418The Node Agent forks a specified command.  The command should be a
     1419standard UNIX command without command line redirection or
     1420backgrounding.  For this reason, the Node Agent must provide a layer
     1421of security, for example, by employing SSL authentication.
     1422
     1423%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1424
     1425\paragraph{Matrix}
     1426
     1427\tbd{The Node Agent does not wear a suit, nor does it know kung fu.}
    14291428
    14301429%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    14331432\subsubsection{Scheduler}
    14341433
    1435 The IPP Scheduler is responsible for coordinating the IPP subsystems
    1436 and for initiating the various processing systems, executed by the IPP
    1437 Controller, based on the state of the survey as reflected by the IPP
    1438 Metadata Database (IMD).  The Scheduler must send calibration data
    1439 requests to the PTS, including required flat-field images, flat-field
    1440 correction observations, or other specialized observations needed to
    1441 improve the calibrations.  The Scheduler must balance the need for
    1442 improved calibrations with the need to process the science images in a
    1443 timely manner given the capabilities of the science pipelines.
    1444 
    1445 \tbd{how are the schedules defined? how are dependencies between jobs
    1446 defined? scheduler must communicate with the controller (as a user
    1447 client) to send new jobs}.
    1448 
    1449 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1450 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1451 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1452 
    1453 \subsection{Analysis Stages}
     1434The IPP Scheduler is responsible for initiating the various processing
     1435stages (which are executed by the IPP Controller), based on the state
     1436of the survey as reflected by the IPP Metadata Database (IMD).
     1437
     1438The Scheduler shall maintain a list of processing stages, as well as
     1439the required input and dependencies for each of the processing stagesFor example, the
     1440dependencies for copying pixel data from OATS may be:
     1441\begin{itemize}
     1442\item OATS has new pixel data available;
     1443\item The new pixel data has not been copied.
     1444\end{itemize}
     1445Similarly, the dependencies for executing Phase 2 processing on a chip
     1446may be:
     1447\begin{itemize}
     1448\item The chip pixel data has been copied.
     1449\item Phase 1 has run successfully on the metadata for the FPA to which
     1450  the chip belongs.
     1451\item A reduced image (i.e., output from Phase 2) does not already
     1452  exist.
     1453\end{itemize}
     1454
     1455When the dependencies are satisfied, the Scheduler shall prepare for
     1456execution the particular processing stage on the appropriate data.
     1457The Scheduler must query the Metdata DB for the most appropriate
     1458calibration data, if required.  The processing stage should be
     1459filtered through the IPSDLO in order to assign the processing stage to
     1460a particular Node (if desired) and to determine the URIs for the
     1461required inputs.  The processing stage is then passed to the
     1462Controller.
     1463
     1464The Scheduler must also be able to send requests for new calibration
     1465data to OATS, including required flat-fields, flat-field correction
     1466observations, or other specialized observations needed to improve the
     1467calibrations.  The Scheduler must balance the need for improved
     1468calibrations with the need to process the science images in a timely
     1469manner given the capabilities of the science pipelines.
     1470
     1471%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1472%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1473
     1474\subsubsection{System UI}
     1475
     1476A user interface allows a human operator to monitor the Controller and
     1477Scheduler through some user interface (UI).  The System UI may
     1478interact with the Controller and Scheduler via a socket connection
     1479using a defined set of commands.
     1480
     1481%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1482
     1483\paragraph{Execute processing stage}
     1484
     1485A new processing stages is sent to the Scheduler.  The Scheduler may
     1486filter the processing stages through the IPSDLO, or it may be
     1487prevented from doing so by the user.  The Scheduler then passes the
     1488processing stages to the Controller for execution.
     1489
     1490%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1491
     1492\paragraph{Kill processing stage}
     1493
     1494The user may kill an existing processing stage.  The Controller is
     1495commanded to kill the particular processing stage.
     1496
     1497\tbd{Should we allow a System UI to kill processing stages sent by
     1498other System UIs?}
     1499
     1500%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1501
     1502\paragraph{Get status}
     1503
     1504The System UI may request the current status of the Controller,
     1505including the list of pending, active, and completed processing stages
     1506and the status of the individual processing stages.
     1507
     1508%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1509
     1510\paragraph{Available Nodes}
     1511
     1512The System UI may view and configure the list of Nodes available to
     1513the Controller (e.g., to remove a Node temporarily for maintenance).
     1514
     1515%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1516%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1517%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1518
     1519\subsection{Processing Stages}
     1520
     1521In this section, we review the processing stages which are executed on
     1522the Nodes.
    14541523
    14551524%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    14581527\subsubsection{Overview}
    14591528
    1460 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1461 
    1462 \paragraph{Science Image Pipelines}
    1463 
    1464 The IPP science image pipelines perform analyses on the night-sky
    1465 science images to extract the science data from these images.  These
    1466 consist of: Phase 1, the image processing preparation stage; Phase 2,
    1467 the image reduction stage; Phase 3, the exposure analysis stage; and
    1468 Phase 4, the image combination stage.  These pipelines must process
    1469 the images in a timely manner so that the incoming data stream will
    1470 not overload the IPS.  The decision to execute a specific pipeline for
    1471 a specific dataset is made by the Scheduler, which sends the
    1472 infomation to the Controller.  The Controller executes the pipeline
    1473 for the data on an appropriate machine and monitors the success or
    1474 failure of the job.
    1475 
    1476 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1477 
    1478 \paragraph{Calibration Image Pipelines}
    1479 
    1480 The IPP Calibration Image Pipelines perform the tasks needed to
    1481 generate high-quality calibration images from the input image
    1482 dataset.  These operations may be performed on whatever timescales are
    1483 appropriate and necessary to maintain the quality and relevance of the
    1484 calibration images.  There are four distinct types of calibration
    1485 image pipelines:  the basic detrend creation pipeline, the photometric
    1486 correction image creation pipeline, the fringe pattern generation
    1487 pipeline, and the sky foreground pattern generation pipeline.
    1488 
    1489 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1490 
    1491 \paragraph{Reference Catalog Pipelines}
    1492 
    1493 The IPP reference catalog pipelines use the data in the IPP Metadata
    1494 Database and the IPP Object Database to determined improved
    1495 astrometric and photometric calibration references.
    1496 
    1497 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1498 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1499 
    1500 \subsubsection{Phase 1 : image processing preparation}
    1501 
    1502 Phase 1 : image processing preparation
     1529The processing stages are the software that process data.  These
     1530processing stages are divided into five categories which are
     1531summarised in \S\ref{sec:processingStages}.  Each of the processing
     1532stages are described below.
     1533
     1534The processing stages are initiated by the Scheduler, parallized and
     1535managed by the Controller, and executed through the Node Agents on the
     1536nodes.  Processing stages are purely serial, and so they may be run on
     1537a single node at once without the need for interprocess communication.
     1538
     1539%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1540%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1541
     1542\subsubsection{Retrieval}
     1543
     1544The retrieval stages simply retrieve pixel data from an external
     1545source (ordinarily OATS at the Summit, but it could conceivably be
     1546some other external source) and store it on the nodes.
     1547
     1548%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1549%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1550
     1551\subsubsection{Science Image Processing}
     1552
     1553The IPP science image processing stages perform analyses on the
     1554night-sky science images to extract the science data from these
     1555images.  These consist of: Phase 1, the image processing preparation
     1556stage; Phase 2, the image reduction stage; Phase 3, the exposure
     1557analysis stage; and Phase 4, the image combination stage.  These
     1558pipelines must process the images in a timely manner so that the
     1559incoming data stream will not overload the IPS.  The decision to
     1560execute a specific pipeline for a specific dataset is made by the
     1561Scheduler, which sends the infomation to the Controller.  The
     1562Controller executes the pipeline for the data on an appropriate
     1563machine and monitors the success or failure of the processing stage.
     1564
     1565%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1566
     1567\paragraph{Phase 1: image processing preparation}
    15031568
    15041569The Phase 1 system operates on data from each FPA to calculate basic
     
    15361601
    15371602%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1538 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1539 
    1540 \subsubsection{Phase 2 : image reduction : new version}
     1603
     1604\paragraph{Phase 2 : image reduction : new version}
    15411605
    15421606\tbd{how long are processed images kept?}
     
    15481612\tbd{what is the absolute astrometry accuracy at phase 2? 0.1 arcsec
    15491613== 0.33 pix?}
     1614
     1615%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1616
     1617\subparagraph{Concept}
     1618
     1619Phase~2 processing within the \PS{} image processing pipeline is
     1620the de-trend stage, where the images from the detector are processed
     1621to remove instrumental signatures.
    15501622
    15511623\begin{figure}
     
    15551627\end{center}
    15561628\end{figure}
    1557 
    1558 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1559 
    1560 \paragraph{Phase 2 Concept}
    1561 
    1562 Phase~2 processing within the \PS{} image processing pipeline is
    1563 the de-trend stage, where the images from the detector are processed
    1564 to remove instrumental signatures.  Phase~2 processing is purely serial,
    1565 and so each can be run on a single node from start to finish.
    15661629
    15671630Prior to Phase~2, the Phase~1 process operates on an entire telescope
     
    15881651These modules are each explained below.
    15891652
    1590 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1591 
    1592 \paragraph{Form OT Kernel}
     1653%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1654
     1655\subparagraph{Form OT Kernel}
    15931656
    15941657The first module for Phase~2 is to form the OT kernel from the image
     
    15971660used to convolve by.  The output is the OT convolution kernel.
    15981661
    1599 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1600 
    1601 \paragraph{Convolve de-trend images}
     1662%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1663
     1664\subparagraph{Convolve de-trend images}
    16021665
    16031666This module convolves the de-trend images with the OT convolution kernel
     
    16231686Each of these will be used for a later module.
    16241687
    1625 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1626 
    1627 \paragraph{Overscan Subtraction}
     1688%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1689
     1690\subparagraph{Overscan Subtraction}
    16281691
    16291692This module corrects the object exposures for the electronic pedestal
     
    16511714These will be used for a subsequent module.
    16521715
    1653 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1654 
    1655 \paragraph{Trim}
     1716%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1717
     1718\subparagraph{Trim}
    16561719
    16571720This module trims the object image and each of the calibration frames to
     
    16721735modules.
    16731736
    1674 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1675 
    1676 \paragraph{Non-Linearity Correction}
     1737%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1738
     1739\subparagraph{Non-Linearity Correction}
    16771740
    16781741This module corrects images for non-linearity in the detector.  The
     
    16881751is the corrected object image, which is used for a later module.
    16891752
    1690 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1691 
    1692 \paragraph{Flat field}
     1753%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1754
     1755\subparagraph{Flat field}
    16931756
    16941757This module corrects the object image for variations in sensitivity over
     
    17091772Both of these will be used in later modules.
    17101773
    1711 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1712 
    1713 \paragraph{Subtract sky}
     1774%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1775
     1776\subparagraph{Subtract sky}
    17141777
    17151778This module subtracts the sky background from the object image.  The
     
    17311794which is used for the next module.
    17321795
    1733 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1734 
    1735 \paragraph{Identify CRs by morphology}
     1796%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1797
     1798\subparagraph{Identify CRs by morphology}
    17361799
    17371800This module identifies cosmic rays (or other hot pixels missed in the
     
    17511814which is sent to the IPP Pixel Server.
    17521815
    1753 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1754 
    1755 \paragraph{Find objects}
     1816%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1817
     1818\subparagraph{Find objects}
    17561819
    17571820This module finds objects on the object image.  The inputs are:
     
    17681831object image.
    17691832
    1770 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1771 
    1772 \paragraph{Bright object postage stamps}
     1833%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1834
     1835\subparagraph{Bright object postage stamps}
    17731836
    17741837This module saves postage stamps of bright objects, so that extra care
     
    17861849the IPP Pixel Server.
    17871850
    1788 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1789 
    1790 \paragraph{Metadata}
     1851%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1852
     1853\subparagraph{Metadata Required}
    17911854
    17921855The following metadata associated with the images are required for
     
    18061869\end{itemize}
    18071870
    1808 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1809 
    1810 \paragraph{Pixel Masks}
     1871%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1872
     1873\subparagraph{Pixel Masks}
    18111874\label{ap:masks}
    18121875
     
    18291892affect the flux in neighbouring pixels
    18301893
    1831 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1832 
    1833 \paragraph{Object Catalogs}
     1894%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1895
     1896\subparagraph{Object Catalogs}
    18341897\label{ap:catalogs}
    18351898
     
    18541917
    18551918%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1856 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1857 
    1858 \subsubsection{Phase 3 : exposure analysis}
    1859 
    1860 \begin{figure}
    1861 \begin{center}
    1862 \resizebox{8cm}{!}{\includegraphics{pics/phase3}}
    1863 \caption{ \label{phase3} Phase 3 dataflow}
    1864 \end{center}
    1865 \end{figure}
     1919
     1920\paragraph{Phase 3 : exposure analysis}
    18661921
    18671922The Phase 3 system operates on the combined Phase 2 results from an
     
    18811936\end{itemize}
    18821937
     1938\begin{figure}
     1939\begin{center}
     1940\resizebox{8cm}{!}{\includegraphics{pics/phase3}}
     1941\caption{ \label{phase3} Phase 3 dataflow}
     1942\end{center}
     1943\end{figure}
     1944
    18831945In the Phase 2 analysis, the astrometric solutions were determined
    18841946independently for each chip.  These solutions are limited by the
     
    19141976
    19151977%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1916 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1917 
    1918 \subsubsection{Phase 4 : image combination}
     1978
     1979\paragraph{Phase 4 : image combination}
     1980
     1981%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1982
     1983\subparagraph{Phase 4 Concept}
     1984
     1985Phase 4 processing within the \PS{} image processing pipeline is
     1986the final stage of processing for a science image.  It operates on
     1987each sky cell that has overlapping imaging data from the exposure(s)
     1988being processed, and produces the main output image data products of
     1989the pipeline --- the difference images and a deep static sky image ---
     1990along with the associated catalogs of static and variable sources.
    19191991
    19201992\begin{figure}
     
    19241996\end{center}
    19251997\end{figure}
    1926 
    1927 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1928 
    1929 \paragraph{Phase 4 Concept}
    1930 
    1931 Phase 4 processing within the \PS{} image processing pipeline is
    1932 the final stage of processing for a science image.  It operates on
    1933 each sky cell that has overlapping imaging data from the exposure(s)
    1934 being processed, and produces the main output image data products of
    1935 the pipeline --- the difference images and a deep static sky image ---
    1936 along with the associated catalogs of static and variable sources.
    19371998
    19381999Prior to Phase 4, the Phase 3 process produces the following products:
     
    19512012These modules are each explained below.
    19522013
    1953 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1954 
    1955 \paragraph{Combine Images}
     2014%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     2015
     2016\subparagraph{Combine Images}
    19562017
    19572018The first module for Phase 4 is to combine the images from each
     
    19952056\end{enumerate}
    19962057
    1997 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1998 
    1999 \paragraph{Identify Sources}
     2058%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     2059
     2060\subparagraph{Identify Sources}
    20002061
    20012062This module identifies sources in the combined sky cell image.  The
     
    20082069the IPP Object Database.
    20092070 
    2010 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2011 
    2012 \paragraph{Transient Identification}
     2071%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     2072
     2073\subparagraph{Transient Identification}
    20132074
    20142075This module identifies variable/moving sources.  The inputs are:
     
    20572118\end{enumerate}
    20582119
    2059 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2060 
    2061 \paragraph{Add to Static Sky}
     2120%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     2121
     2122\subparagraph{Add to Static Sky}
    20622123
    20632124This module adds the combined sky cell image into the static sky, so
     
    20902151\end{enumerate}
    20912152
    2092 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2093 
    2094 \paragraph{Notes}
     2153%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     2154
     2155\subparagraph{Notes}
    20952156
    20962157\begin{itemize}
     
    21082169%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    21092170
    2110 \subsubsection{Basic detrend image creation}
     2171\paragraph{Calibration Image Processing}
     2172
     2173The IPP Calibration Image Pipelines perform the tasks needed to
     2174generate high-quality calibration images from the input image
     2175dataset.  These operations may be performed on whatever timescales are
     2176appropriate and necessary to maintain the quality and relevance of the
     2177calibration images.  There are four distinct types of calibration
     2178image pipelines:  the basic detrend creation pipeline, the photometric
     2179correction image creation pipeline, the fringe pattern generation
     2180pipeline, and the sky foreground pattern generation pipeline.
     2181
     2182%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     2183
     2184\subparagraph{Cal 1: Basic detrend image creation}
    21112185
    21122186The basic detrend image creation pipeline collects the appropriate
    2113 input detrend images (bias, dark, flat, etc?) and generates a master
    2114 image by combining the input images in some optimal way
     2187input detrend images (bias, dark, dome flat, etc) and generates a
     2188master image by combining the input images in some optimal way
    21152189\tbd{median/sigma-clipping/etc}.  The master image is used to
    21162190determine input image residuals so that poor input images can be
    21172191iteratively rejected.
    21182192
    2119 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2120 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2121 
    2122 \subsubsection{Fringe pattern and sky foreground model creation}
     2193%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     2194
     2195\subparagraph{Cal 2: Fringe pattern and sky foreground model creation}
    21232196
    21242197The fringe model creation and sky foreground model creation pipelines
     
    21292202structure: both require processing of the input images, both determine
    21302203a set of principal components as a function of specific input
    2131 parameters. 
    2132 
    2133 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2134 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    2135 
    2136 \subsubsection{Photometric flat correction image creation}
     2204parameters.
     2205
     2206%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     2207
     2208\subparagraph{Cal 3: Photometric flat correction image creation}
    21372209
    21382210The photometric flat-field correction uses images which have been
     
    21462218%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    21472219
     2220\paragraph{Calibration Test Processing}
     2221
     2222The calibration test processing tests observations to determine if the
     2223calibrations need updating.
     2224
     2225%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     2226
     2227\subparagraph{CalTest 1: Detrend frame testing}
     2228
     2229A newly-acquired master detrend frame, having been combined (using Cal
     22301 or Cal 2) are simply differenced from the old detrend frames.  If
     2231there exist significant residuals, the newly-acquired detrend frame
     2232is adopted as the detrend frame of choice.
     2233
     2234%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     2235
     2236\subparagraph{CalTest 2: Photometric flat correction testing}
     2237
     2238Newly-acquired photometry of many objects (initially, this may be
     2239standard star fields, but once the PS1 catalog is available, it should
     2240be possible to use all photometry acquired over a given time period)
     2241are compared with previously-acquired photometry.  If there exist
     2242significant residuals, a new photometric flat correction should be
     2243produced from the newly-acquired photometry.
     2244
     2245%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     2246%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     2247
     2248\paragraph{Reference Catalog Processing}
     2249
     2250The IPP reference catalog pipelines use the data in the IPP Metadata
     2251Database and the IPP Object Database to determined improved
     2252astrometric and photometric calibration references.
     2253
     2254%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     2255
     2256\subparagraph{AstroRef: Astrometric Reference Catalog creation}
     2257
     2258This processing stage shall use many observations over a given time
     2259period to fit a consistent global astrometric solution, resulting in a
     2260high quality and internally-consistent astrometric catalog that may be
     2261published.
     2262
     2263%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     2264
     2265\subparagraph{PhotoRef: Photometric Reference Catalog creation}
     2266
     2267This processing stage shall use many observations over a given time
     2268period to fit a consistent global photometric solution, resulting in a
     2269high quality and internally-consistent photometric catalog that may be
     2270published.
     2271
     2272%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     2273%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     2274%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     2275
     2276\subsection{Reference Catalogs}
     2277
     2278The IPP will employ reference catalogs in order to calibrate the
     2279photometry and astrometry.
     2280
     2281%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     2282%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     2283
    21482284\subsubsection{Astrometric Reference Catalog}
    21492285
     
    21622298sufficient.
    21632299
    2164 For PS4, the PS1 catalogue shall be used.
     2300For PS4, the PS1 catalog shall be used.
    21652301
    21662302%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    21702306\subsection{Modules}
    21712307
     2308\tbd{What goes here?  There will be modules?}
     2309
    21722310%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    21732311%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    21762314\subsection{\PS{} Library}
    21772315
     2316See PSDC-430-007 for the design of the \PS{} Library, PSLib.
     2317
    21782318%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    21792319%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    21812321
    21822322\subsection{Internal Interfaces}
     2323
     2324\tbd{To be updated and expanded.}
    21832325
    21842326Internal interfaces consist of queries to the IMD or IPS, insertion of
     
    22082350\subsection{External Interfaces}
    22092351
     2352\tbd{This whole section to be updated.}
     2353
    22102354This subsection describes the interfaces between the IPP and other
    22112355\PS{} systems and the external clients.  The interfaces are
    2212 illustrated in Figure \tbd{NN}.  Incoming data is received by either
    2213 the IPS (pixels), the IMD (metadata), or the IOD (objects).  Requests
    2214 for data by external clients are also made to these three databases.
    2215 Requests for data made by the IPP are generated by the IPP Scheduler
    2216 or the science processing pipelines.
     2356illustrated in Figure~\ref{fig:functionalities}.  Incoming data is
     2357received by either the IPS (pixels), the IMD (metadata), or the IOD
     2358(objects).  Requests for data by external clients are also made to
     2359these three databases.  Requests for data made by the IPP are
     2360generated by the IPP Scheduler or the science processing pipelines.
    22172361
    22182362%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Note: See TracChangeset for help on using the changeset viewer.