IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 529


Ignore:
Timestamp:
Apr 27, 2004, 8:38:31 AM (22 years ago)
Author:
eugene
Message:

clarified 'shall', 'will', 'should'. 'shall' -> 'must'

File:
1 edited

Legend:

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

    r514 r529  
    1 %%% $Id: specs.tex,v 1.6 2004-04-23 21:57:43 eugene Exp $
     1%%% $Id: specs.tex,v 1.7 2004-04-27 18:38:31 eugene Exp $
    22\documentclass[panstarrs]{panstarrs}
    33
     
    6363limited by network bandwidth.
    6464
     65\subsubsection{Definitions}
     66
     67\paragraph{``Must''}  When used in this specification, the word
     68``must'' refers to an explicit requirement of a system component or
     69the complete system.
     70
     71\paragraph{``Should''}  When used in this specification, the word
     72``should'' refers to a desired chracteristic of a system component or
     73the complete system.
     74
     75\paragraph{``Will''}  When used in this specification, the word
     76``will'' provides information about a characteristic of a related
     77system component or a complete related system.
    6578
    6679%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    7992\section{Requirements}
    8093
    81 \subsection{Required States and Modes}
    82 
    83 The IPP has 3 states: active, paused, and interactive.
    84 
    85 \begin{itemize}
    86 
    87 \item {\bf active state} In active state, the IPP shall accept images
    88   and metadata from OATS and automatically perform the complete set of
    89   image processing tasks, including both calibration and science image
    90   processing.  The IPP will respond to requests for data from the
    91   client science pipelines \tbd{and IPP monitoring team}.
    92 
    93 \item {\bf paused state}  In paused state, the IPP shall refuse data and
    94   metadata from OATS and data requests from the client science
    95   pipelines.
    96 
    97 \item {\bf interactive state}  In interactive state, the IPP shall
    98   accept data and metadata from OATS, but will not automatically
    99   process the data.  The IPP shall respond to user commands to
    100   initiate portions of the data analysis.
    101 \end{itemize}
    102 
    103 \tbd{what is a mode?}
     94\subsection{Required States}
     95
     96The IPP must have 3 states: active, paused, and interactive.
     97
     98\subsubsection{Active State}
     99\label{req:active-state}
     100
     101In active state, the IPP must accept images and metadata from OATS and
     102automatically perform the complete set of image processing tasks,
     103including both calibration and science image processing.  The IPP must
     104respond to requests for data from the client science pipelines
     105\tbd{and IPP monitoring team}.
     106
     107\subsubsection{Paused State}
     108\label{req:paused-state}
     109
     110In paused state, the IPP must refuse data and metadata from OATS and
     111data requests from the client science pipelines.
     112
     113\subsubsection{Interactive State}
     114\label{req:interactive-state}
     115
     116In interactive state, the IPP must accept data and metadata from OATS,
     117but must not automatically process the data.  The IPP must respond to
     118user commands to initiate portions of the data analysis.
    104119
    105120\subsection{System Capability Requirements}
    106 
    107 The IPP shall:
    108 
    109 \begin{itemize}
     121\label{req:system-capabilities}
     122
     123The IPP must perform the following tasks:
     124
     125\begin{enumerate}
    110126
    111127\item Accept raw images from OATS at a sustained rate of 1 exposure
     
    115131
    116132\item Produce high-quality calibration images from the raw calibration
    117   images.  The calibration images shall not introduce systematic
     133  images.  The calibration images must not introduce systematic
    118134  uncertainties greater than \tbd{0.2\%}.  \tbd{Requirements on the
    119135  speed of processing the calibration images.}
     
    131147\item Excise the significant transients and outliers from the
    132148  pre-processed science images and merge the cleaned images into the
    133   static sky image
     149  static sky image.
    134150
    135151\item Detect objects on the four types of images: pre-processed
    136   images, the merged image, the difference image, and the static sky
     152  images, the stacked image, the difference image, and the static sky
    137153  image.
    138154
     
    147163\item Produce a high-quality astrometric reference catalog from the
    148164  extracted objects on a time-scale of 6 months.  The astrometric
    149   reference shall have an absolute accuracy of \tbd{30 mas} and a
    150   local relative accuracy of \tbd{10 mas}.  Proper motions of all
    151   nearly stationary objects shall be determined with an accuracy of
    152   \tbd{XXX mas / year}.
     165  reference must have an absolute accuracy of \tbd{30 mas} and a local
     166  relative accuracy of \tbd{10 mas}.  Proper motions of all nearly
     167  stationary objects must be determined with an accuracy of \tbd{XXX
     168  mas / year}.
    153169
    154170\item Produce a high-quality photometric reference catalog from the
    155171  extracted objects on a time-scale of 6 months.  The photometric
    156   reference shall have an consistency across the sky of \tbd{5
     172  reference must have an consistency across the sky of \tbd{5
    157173  millimag} and an absolute calibration to the external system defined
    158174  by \tbd{SDSS} of \tbd{10 millimag}.
    159175
    160176\item Publish the static sky images to the Pan-STARRS published static
    161 sky server on a time-scale of \tbd{1 month}.
     177  sky server on a time-scale of \tbd{1 month}.
    162178
    163179\item Publish the detected objects to the Pan-STARRS published object
     
    168184  processed. 
    169185
    170 \end{itemize}
     186\end{enumerate}
    171187
    172188\subsubsection{Software Coding Requirements}
    173189
    174190\paragraph{Languages}
    175 
    176 Source code shall be in C.  All source code shall be compiled with
    177 `gcc' version v2.95 or higher.
    178 
    179 Scripting language shall be in \tbd{Python, version TBD}.
     191\label{req:languages}
     192
     193Source code must be in C.  All source code must be compiled with `gcc'
     194version v2.95 or higher.
     195
     196Scripting language must be \tbd{Python, version TBD}.
    180197
    181198\paragraph{Interfaces}
    182 
    183 Access to low-level Library functions shall be provided via C APIs
     199\label{req:interfaces}
     200
     201Access to low-level Library functions must be provided via C APIs
    184202consisting of the function calls and the defined data structures and
    185 other data types.  Access to high-level functions shall be provided
     203other data types.  Access to high-level functions must be provided
    186204via C APIs as well as SWIG interfaces, where specified.  Access to
    187 processing jobs shall be available via the UNIX shell.
     205processing jobs must be available via the UNIX shell.
    188206
    189207\paragraph{Coding Standards}
    190208
    191 The C code shall comply with ANSI Standard C99.  Because the delivered
    192 code is required to run on UNIX machines, the delivered code shall be
     209The C code must comply with ANSI Standard C99.  Because the delivered
     210code is required to run on UNIX machines, the delivered code must be
    193211in compliance with the language-independent UNIX operating system
    194212standard POSIX (Open Group Based Specifications Issue 6, IEEE Std
    195 1003.1, 2003).  Source code files shall use the UNIX line-break
    196 convention (line-feed only).  C coding style shall adhere to the
     2131003.1, 2003).  Source code files must use the UNIX line-break
     214convention (line-feed only).  C coding style must adhere to the
    197215standard defined in the document 'Pan-STARRS C-coding standard'
    198 (PSDC-430-004).  \tbd{Python coding shall follow the Python standard
     216(PSDC-430-004).  \tbd{Python coding must follow the Python standard
    199217defined in the document TBD}.
    200218
     
    229247
    230248When defining a function to convert from one type to another, the name
    231 should be of the form \code{psOldToAlloc}, e.g.\hfil\break
     249must be of the form \code{psOldToAlloc}, e.g.\hfil\break
    232250\code{psEquatorialToEcliptic} (\emph{not}
    233251\code{psEquatorial2Ecliptic}).
     
    235253\paragraph{C Programming Guidelines}
    236254
    237 Functions that assign to a variable should list that argument
     255Functions that assign to a variable must list that argument
    238256\textit{first}, following the pattern of \code{strcpy}; e.g.
    239257\begin{verbatim}
     
    264282
    265283\item The destructor must handle being passed \code{NULL} by simply
    266 returning immediately. This should not be treated as an error
     284returning immediately. This must not be treated as an error
    267285condition.
    268286
     
    274292\paragraph{Commenting and Documentation}
    275293
    276 Commenting of delivered C and Python code shall follow the C and
    277 Python coding standards and shall provide tags for Doxygen
     294Commenting of delivered C and Python code must follow the C and
     295Python coding standards and must provide tags for Doxygen
    278296interpretation of the comments and program structures.
    279297
    280298Documentation for the IPP consists of source code documentation and
    281 user documentation.  Source code documentation shall be generated with
    282 Doxygen from the in-line comments and shall be provided as HTML,
     299user documentation.  Source code documentation must be generated with
     300Doxygen from the in-line comments and must be provided as HTML,
    283301Latex, and man pages.  User documentation includes the API usage for
    284302the modules and library functions as well as user interface
    285303description for the higher-level architectural systems.  User
    286 documentation shall be delivered as PDF documents.
     304documentation must be delivered as PDF documents.
    287305
    288306\paragraph{Version Control}
    289307
    290 Source code version control shall be implemented with CVS. 
     308Source code version control must be implemented with CVS. 
    291309
    292310\paragraph{CSCI Deliverable}
    293311
    294312All final source code generated for the IPP is to be delivered via
    295 CVS, including the test code.  CVS revision history shall be included
     313CVS, including the test code.  CVS revision history must be included
    296314and made available via CVS.
    297315
    298316\paragraph{Platform architectures and operating systems}
    299317
    300 Makefiles shall be provided with appropriate flags set so that all
     318Makefiles must be provided with appropriate flags set so that all
    301319code compiles without warnings under 'gcc -Wall' for the following
    302320platform architectures and operating systems:
     
    346364  as needed to perform the analysis specified above.
    347365
    348 \item {\bf Analysis Stages:}  Specific programs are required to
    349   perform the processing steps listed above.  These can be divided
    350   into well-defined analysis stages, each of which operates on a
    351   particular unit of data, such as a single OTA image or a colletion
    352   of astronomical objets.
     366\item {\bf Analysis Stages:} Specific programs are required to perform
     367  the processing steps listed above.  These can be divided into
     368  well-defined analysis stages, each of which operates on a particular
     369  unit of data, such as a single OTA image or a collection of
     370  astronomical objets.
    353371
    354372\item {\bf Controller:} In order to perform the analysis stages
     
    384402store all of the images needed by the IPP for the length of time they
    385403are required; total data volume is specified in detail in the hardware
    386 summary, but is in the vicinity of \tbd{700 GB}.
     404summary, but is in the vicinity of \tbd{700 TB}.
    387405
    388406The IPP Pixel Server must maintain a record of all images currently
    389407available in the repository \tbd{and all no longer available}.  This
    390 record shall include the image name, location (which machine), the
     408record must include the image name, location (which machine), the
    391409state of the image (available, deleted), the image size, the image
    392 type, and the existence and location of secondary copies of the
    393 image.  This information need not include other metadata such as the
    394 image summary statistics or the state of the image processing for the
    395 image.
    396 
    397 The IPP Pixel Server shall store images as FITS files on disk.  Raw
    398 images from the telescope shall be stored as individual OTA images for
     410type, and the existence and location of secondary copies of the image.
     411This information need not include other metadata such as the image
     412summary statistics or the state of the image processing for the image,
     413as these aspects are included in the Metadata DB.
     414
     415The IPP Pixel Server must store images as FITS files on disk.  Raw
     416images from the telescope must be stored as individual OTA images for
    399417each file, with multiple Cell images per file as well as video
    400 sequences from the guide stars.  Images of the Static Sky shall be
     418sequences from the guide stars.  Images of the Static Sky must be
    401419stored in the form of \tbd{triangular segments} to minimize the total
    402420data volume and pixel overlap.
    403421
    404 The IPP Pixel Server shall distribute images across a cluster of
    405 machines.  The IPP Pixel Server shall be capable of honoring requests
     422The IPP Pixel Server must distribute images across a cluster of
     423machines.  The IPP Pixel Server must be capable of honoring requests
    406424to store an image on a specific machine.  If such a request cannot be
    407 honored, the IPP Pixel Server shall select an appropriate machine and
     425honored, the IPP Pixel Server must select an appropriate machine and
    408426notify the requesting agent of the new locations.  The IPP Pixel
    409 Server shall provide a mechanism to maintain multiple (at least two)
    410 copies of a single known image.
     427Server must provide a mechanism to maintain multiple (at least two)
     428copies of each image.
    411429
    412430The IPP Pixel Server must interface with other subsystems of the IPP.
     
    417435Pixel Server.  It must have a mechanism to accept or retrieve an image
    418436from another Pan-STARRS subsystem, in particular OATS.  Communication
    419 of messages between the IPP Pixel Server and other subsystem shall be
     437of messages between the IPP Pixel Server and other subsystem must be
    420438via \tbd{XML messages} passed via \tbd{some transport}.
    421439
    422440The IPP Pixel Server must accept images at the telescope maximum rate
    423441of 1 full-camera image every 30 seconds.  The IPP Pixel Server must
    424 accept notifications and process retrievals at a rate of 128 raw OTAs
    425 per 60 seconds.
     442therefore accept notifications and process retrievals at a rate of 64
     443raw OTAs in 30 seconds.
    426444
    427445\tbd{O/S, language, SQL, ODBC requirements?}
     
    445463derived from specific images from any of the analysis stages.  It must
    446464be possible to determine and locate (perhaps via interactions with the
    447 pixel server) the image from which a specific detection was derved.
     465pixel server) the image from which a specific detection was derived.
    448466It must also be possible to extract all detections derived from a
    449 specific images.  These associations must include descriptive
     467specific image.  These associations must include descriptive
    450468information including the coordinates of the detection on the image.
    451469
     
    454472objects will be present, each of which must be handled correctly.
    455473
    456 First, the distant stars will have nearly fixed locations relative to
    457 other nearby stars, with only small deviations for individual
    458 measurements.  The association between multiple detections of such
    459 objects must be made on the basis of their coincident positions.  The
    460 PnA Database must be able to determine the average position of the
    461 object and the deviations of the individual detections from that
    462 average. 
     474First, the most distant stars, compact galaxies, and QSOs will have
     475nearly fixed locations relative to other nearby stars, with only small
     476deviations for individual measurements.  The association between
     477multiple detections of such objects must be made on the basis of their
     478coincident positions.  The PnA Database must be able to determine the
     479average position of the object and the deviations of the individual
     480detections from that average.
    463481
    464482Second, solar system objects do not have a fixed location and
     
    468486determination of this association is the responsibility of the MOPS
    469487and must be communicated to the IPP PnA Database on \tbd{some
    470   timescale}.  The PnD Database must be able to retrieve the
    471 detections associated with the object and to provide the object
    472 associated with the specific detections.  This association must
    473 include descriptive information such as the offset of the detection
    474 from the predicted location of the detection based on the orbit.
     488timescale}.  The PnD Database must be able to retrieve the detections
     489associated with the object and to provide the object associated with
     490the specific detections.  This association must include descriptive
     491information such as the offset of the detection from the predicted
     492location of the detection based on the orbit.  This functionality is
     493required to allow the PnA Database to ignore known moving object
     494detections from other types of queries.
    475495
    476496Third, stars in the general vicinity of the solar system fall in
     
    545565
    546566If analysis results are exchanged via the metadata database, it must
    547 provide access to the queried data on timescales of $<2 sec$ to avoid
    548 slowing down the analysis systems.
     567provide access to the queried data on timescales of $<2$ seconds to
     568avoid slowing down the analysis systems.
    549569
    550570\tbd{volume requirements}
     
    587607responds to commands from the controller and may be used for tasks
    588608subject to other constraints.  If it is {\tt dead}, the computer is
    589 not responsive and should not be used for executing tasks.  The
     609not responsive and must not be used for executing tasks.  The
    590610controller must identify computers which have died and occasionally
    591611test them to see if they are {\tt alive} again.  Computers which are
    592 {\tt off} are not available for tests and should not be tested.
     612{\tt off} are not available for tests and must not be tested.
    593613Computers may be set to the {\tt off} or {\tt dead} states by external
    594 subsystems; it is the responsibility of the Controller to move a
    595 computer to the {\tt alive} state if possible. 
     614subsystems; it is the responsibility of the Controller to return a
     615computer to the {\tt alive} state if possible.
    596616
    597617Computers which are in the {\tt alive} state may be in one of two
    598618modes: {\tt busy} and {\tt free}.  A computer which is {\tt busy}
    599619currently has a task assigned to it.  The controller may only assign
    600 one task to one computer at a time\footnote{a physical piece of
     620one task to one computer at a time\footnote{A physical piece of
    601621hardware may be defined to the Controller as multiple computers to
    602622allow multi-processor nodes to execute more than one simultaneous
     
    606626may have a list of allowed tasks which may include {\tt all} tasks,
    607627{\tt none} of the tasks, or specified task names.  The controller must
    608 only execute the allowed tasks on a machine. 
     628only execute the allowed tasks on a machine.
    609629
    610630The Controller must accept tasks from other IPP subsystems.  The task
     
    615635node on which the task is executed.  Input and output data resources
    616636must be unique where necessary to avoid conflicts.  Tasks must be
    617 given an identified, which must be returned to the requesting agent,
     637given an identifier, which must be returned to the requesting agent,
    618638to be used to control the specific task.
    619639
     
    650670and also change its priority.
    651671
    652 The controller must honor requests to change the mode of any computing
    653 node on demand between {\tt off} and {\tt dead}.  It must also be able
    654 to change the list of allowed tasks as requested by external
    655 commands. 
     672The controller must honor requests (normally from the users) to change
     673the mode of any computing node on demand between {\tt off} and {\tt
     674dead}.  It must also be able to change the list of allowed tasks as
     675requested by external commands.
    656676
    657677The controller must respond to informational requests regarding the
     
    661681the controller must respond to three top-level commands: {\tt finish},
    662682{\tt stop} and {\tt abort}.  When {\tt finish} is requested, no more
    663 new tasks are accepted, and when all tasks have completed, the
    664 controller must exti.  When {\tt stop} is requested, the currently
    665 executing tasks must be completed at which point the controller must
    666 exti.  When {\tt abort} is issued, the controller immediately kills
    667 all executing tasks and exits.
     683new tasks are accepted on the stack of task, and when all tasks in the
     684stack have completed, the controller must exit.  When {\tt stop} is
     685requested, the currently executing tasks must be completed at which
     686point the controller must exit, but tasks remaining in the stack which
     687have not been started are flushed.  When {\tt abort} is issued, the
     688controller immediately kills all executing tasks and exits.
    668689
    669690\paragraph{Scheduler}
     
    687708The Scheduler must send commands to the Controller for execution.  It
    688709is the Controller's responsibility to manage the specific analysis
    689 jobs executing on a given processing node.  These analysis may include
     710jobs executing on a given processing node.  These analyses may include
    690711the process of copying of moving data from OATS to the pixel server
    691712nodes, or it may involve image processing stages performed on the
    692 science images by the apporpriate processing nodes, or it may involve
     713science images by the appropriate processing nodes, or it may involve
    693714analysis of the data in the PnA object database.  In order to isolate
    694715and encapsulate the responsibilities of the Scheduler and the
     
    725746different time-scales.  The time-scale range from 2 times per minute
    726747to once or twice a year, as noted in the list above.  The Scheduler
    727 must make use of the human input to manage such choices. 
     748must also make use of the human input in managing such choices.  The
     749human users must be able to specify that a particular task or set of
     750tasks is of higher or lower priority than the norm.
    728751
    729752The Scheduler must maintain a set of rules defining the dependency of
     
    733756dependency and initiate the required analysis needed to perform other
    734757analysis tasks.  The Scheduler must have the ability to decide between
    735 postponing an analysis task until the depending data are available or
    736 to initial the task using a lower-quality or less appropriate
    737 substitute.  For example, a science image should not be processed
    738 until the corresponding detrend frame has been produced.  However, it
    739 such a frame is unlikely to appear and the pressure to process the
    740 science image it too high, then the frame could be processed with an
    741 older detrend frame of known lower quality.  The Scheduler must have
    742 the ability to choose the best, if not ideal, reference data for a
    743 particular circumstance.
     758postponing an analysis task until the required data are available or
     759to initiate the task using a lower-quality or less appropriate
     760substitute.  For example, in normal circumstances, a science image
     761must not be processed until the corresponding detrend frame has been
     762produced.  However, if such a frame is unlikely to appear soon, and
     763the pressure to process the science image is sufficiently high, then
     764the frame could be processed with an older detrend frame of known
     765lower quality.  The Scheduler must have the ability to choose the
     766best, if not ideal, reference data for a particular circumstance.
    744767
    745768The Scheduler is responsible for setting the operating mode of the
     
    751774the requested actions and not attempt to perform the other
    752775normally-required actions.  The only exception to this exclusion is
    753 that, in the interactive mode, data must still be copyed from the
     776that, in the interactive mode, data must still be copied from the
    754777summit system.  A human-sent command must be able to change the
    755 Scheduler priorities from the automatic to the interactive modes.  An
    756 additional IPP mode is the {\em paused mode}, in which case the
    757 Scheulder does not perform even the data copy tasks.  Every task is
    758 performed on demand by the user.
     778Scheduler priorities from the automatic to the interactive modes
     779\tbd{with a CLI or GUI}.  An additional IPP mode is the {\em paused
     780mode}, intended for tests or maintenance, in which case the Scheduler
     781does not perform even the data copy tasks.  Every task is performed on
     782demand by the user.
    759783
    760784\subsubsection{Analysis Stages}
     
    769793
    770794Depending on the task, the basic data unit may be individual images,
    771 collections of images, or derived data products such as collection of
     795collections of images, or derived data products such as a collection of
    772796detections of astronomical objects.  Because of the granularity of
    773797these data units, many of the analysis tasks can be performed in
    774798parallel because, for example, the intial analysis of an OTA in one
    775799image does not depend on the results from another OTA.  We define the
    776 term 'analysis stage' to refer to the largest complete analysis task
     800term `analysis stage' to refer to the largest complete analysis task
    777801which may be performed on a single data item.  The analysis stages are
    778802divided into three categories, and further subdivided as follows:
     
    785809 \begin{itemize}
    786810  \item {\bf Phase 1:} The image processing preparation phase, in
    787   which a basic analysis of the complete FPA image is performed.
     811  which basic astrometric analysis of the complete FPA image is
     812  performed.
    788813
    789814  \item {\bf Phase 2:} The image reduction phase, in which the
     
    797822
    798823  \item {\bf Phase 4:} The image combination phase, in which several
    799   difference exposures of the same part of the sky are combined to
     824  different exposures of the same part of the sky are combined to
    800825  produce high-quality difference and summed images.
    801826 \end{itemize}
     
    803828 \item {\bf Calibration Image Analysis} is required to generate the
    804829 calibration images used in the science image analysis.  There are
    805  three types of calibration images which are produced.
     830 three types of calibration images which are produced. \tbd{make this
     831 consistent with other sections which use the basic / other
     832 calibration distinction}
    806833
    807834 \begin{enumerate}
     
    904931distortion model and table of nominal OTA positions and rotations,
    905932combined with the guide star pixel and celestial coordinates, to
    906 determine the correct telescope bore-site, field rotation and
    907 magnification.  The astrometric accurate required from this analysis
     933determine the correct telescope bore-sight, field rotation and
     934magnification.  The astrometric accuracy required from this analysis
    908935stage is \tbd{2 arcsec} across the field, sufficient to match the vast
    909936majority of reference stars with their detections.
     
    911938In some circumstances, science images may have no guide stars.  This
    912939may occur if the detectors are not run in OTA mode, especially for
    913 short snapshot images.  In such a circumstance, the Phase 1 stage must
    914 perform extremely basic object detection, determining the detector
    915 coordinates for stars which are not excessively saturated and which
    916 are significantly above the background level.  The threshold levels
    917 for this object detection stage must be configurable.  The object
    918 extraction must be performed in less than \tbd{3 seconds}.
     940short snapshot images of if IPP is being run on non-Pan-STARRS data.
     941In such a circumstance, the Phase 1 stage must perform extremely basic
     942object detection, determining the detector coordinates for stars which
     943are not excessively saturated and which are significantly above the
     944background level.  The threshold levels for this object detection
     945stage must be configurable.  The object extraction must be performed
     946in less than \tbd{3 seconds}.
    919947
    920948In order for astrometry of an image to succeed, it is necessary that
     
    932960because of the astrometric error at this phase.  It is acceptable for
    933961a small number of invalid overlaps to be identified as these will be
    934 excluded in Phase 4.
     962excluded in Phase 4.  Sky cells which do not have sufficient science
     963image overlap \tbd{$< 10\%$} need not be processed.
    935964
    936965It is not unusual that an image be obtained with invalid coordinates
    937966or without any valid stars.  For example, the telescope control system
    938 may make an error an report the wrong time or coordinates.  Or, the
     967may make an error and report the wrong time or coordinates.  Or, the
    939968image may be obtained in exceptionally poor conditions with no
    940969detected stars.  Phase 1 must fail gracefully in these conditions,
     
    9851014bad.  Note that bad pixels which are charge traps need to be grown by
    9861015the extent of the OT convolution kernel, while those pixels above a
    987 charge trap (i.e.\ bad colums) should not be grown, since they were
    988 not affected by pixel shifting, but only became bad at read-out.
    989 
    990 Pixels saturated in the A/D converter should also be masked, and this
    991 area should be grown by an additional pixel to mask excess charge
    992 spillover. 
     1016charge trap (i.e.\ bad colums) must not be grown, since they were not
     1017affected by pixel shifting, but only became bad at read-out.
     1018
     1019Pixels saturated in the A/D converter must also be masked, and this
     1020area must be grown by an additional pixel to mask excess charge
     1021spillover.
    9931022
    9941023The bad pixel mask must be carried with the science images.  Different
     
    10101039single constant, all of the overscan pixel values are used in the
    10111040calculation of this statistic.  In the case of the 1D functional
    1012 representation, the input values to the fit should represent the
     1041representation, the input values to the fit must represent the
    10131042coordinate along the overscan, with the statistic derived from the
    1014 pixel in the perpedicular direction at each location.  Sigma-clipping
     1043pixels in the perpedicular direction at each location.  Sigma-clipping
    10151044on the input data values must be an option.  \tbd{accuracy of the bias
    10161045subtraction?}
     
    10211050the overscan and any pre-scan pixels, along with those pixels near the
    10221051edges that have been compromised due to OT operation.  The definition
    1023 of the imaging area of the detector must optionally be determined from
    1024 the camera configuration data or from the metadata associated with the
    1025 image.
     1052of the imaging area of the detector must be determined from the camera
     1053configuration data or from the metadata associated with the image,
     1054with the choice a user-configurable option. 
    10261055
    10271056\subparagraph{Correct for non-linearity}
    10281057
    1029 The object image (after bias correction) must be optionally corrected
    1030 for the effects of non-linearity through a provided polynomial fit to
    1031 the pixel data values.  \tbd{what IPP component produces the
    1032 non-linear correction function?}
     1058If required, the object image (after bias correction) must be
     1059corrected for the effects of non-linearity through a provided
     1060polynomial fit to the pixel data values.  The choice to apply the
     1061correction must be set by the user.
    10331062
    10341063\subparagraph{Flat-field correction}
     
    10481077(technically, foreground) variations which are not celestial but
    10491078generated in the atmosphere or by more localized scattering.  This
    1050 background subtraction does not address the artefacts generated by
     1079background subtraction does not address the artifacts generated by
    10511080bright stars: bleeding columns, ghosts, or other localized reflection
    10521081effects.  The background subtraction must remove the variations with
    1053 an accuracy such that the residual variations do not introduce on
    1054 average more than \tbd{0.2\%} photometric scatter or more than
     1082an accuracy such that the residual variations do not introduce, on
     1083average, more than \tbd{0.2\%} photometric scatter or more than
    10551084\tbd{1\%} extremely deviant outlier stars (stars for which the
    1056 photometry is in error by more than 3\%.  \tbd{what is the requirement
    1057 on galaxy photometry? morphology determinations?}  \tbd{What is
    1058 allowed power-spectrum of background variations?}
    1059 
    1060 \subparagraph{Identify 'cosmic rays'}
     1085photometry is in error by more than 3\%).  \tbd{what is the
     1086requirement on galaxy photometry? morphology determinations?}
     1087\tbd{What is allowed power-spectrum of background variations?}
     1088
     1089\subparagraph{Identify `cosmic rays'}
    10611090
    10621091Charged particles in the detector frequently cause features which do
    10631092not have the morphology of astronomical objects.  In a well-sampled
    10641093image, these may be easily identified by the sharpness of the image.
    1065 In a near critically-sampled image, these 'cosmic rays' may be
     1094In a near critically-sampled image, these `cosmic rays' may be
    10661095indistinguishable from stellar objects.  The IPP must have the
    10671096capability of making the morphological identification of cosmic rays
     
    10831112which are inconsistent, and objects which are saturated.  The
    10841113resulting collection of detected objects must be saved along with the
    1085 relevant image metadata (\ie, filter, exposure time, etc).
    1086 
    1087 \subparagraph{astrometry}
     1114relevant image metadata (\ie filter, exposure time, etc).
     1115
     1116\subparagraph{Astrometry}
    10881117
    10891118Objects detected in Phase~2 must be matched with known astrometric
     
    10931122stage, a user-defined collection of OTA astrometry parameters must be
    10941123fitted on the basis of the matched stars.  The Cell astrometric
    1095 parameters must not be allowed to flow at this stage.  The fit must be
    1096 robust, rejecting outlier matches, either stars with poorly determined
    1097 proper motion or spurious matches.  The resulting astrometric solution
    1098 must be consistent across the OTA field to within \tbd{0.2 arcsec}. 
     1124parameters must not be allowed to vary at this stage.  The fit must be
     1125robust, rejecting outlier matches (either stars with poorly determined
     1126proper motion or spurious matches).  The resulting astrometric
     1127solution must be consistent across the OTA field to within \tbd{0.2
     1128arcsec}.
    10991129
    11001130\subparagraph{Postage Stamps}
     
    11131143
    11141144Phase 3 must use the objects detected in Phase 2, matched with an
    1115 appropriate reference catalog, to determine the image zero point and
    1116 zero-point variations across the field.  If zero-point variations are
    1117 significant \tbd{level TBD}, the zero-point variations must be modeled
    1118 with an up-to 3rd order chebychev polynomial correction.  The complete
    1119 FPA image must be categorized as photometric or not \tbd{numerical
    1120 scale?} on the basis of the zero-point consistency, the transparency
    1121 compared with recent long-term measurements in the filter, and the
    1122 external indicators of photometricity.
     1145appropriate reference catalog, to determine the image photometric zero
     1146point and zero-point variations across the field.  If zero-point
     1147variations are significant \tbd{level TBD}, the zero-point variations
     1148must be modeled with a chebychev polynomial correction of order 3 or
     1149less.  The complete FPA image must be categorized as photometric or
     1150not \tbd{numerical scale?} on the basis of the zero-point consistency,
     1151the transparency compared with recent long-term measurements in the
     1152filter, and the external indicators of photometricity.
    11231153
    11241154Phase 3 must use the objects detected in Phase 2, matched with an
     
    11341164sky image.  Phase 4 operates on the smallest data unit of the static
    11351165sky, the sky cell, along with the associated pixels from a collection
    1136 of image which have been processed through phases 1 - 3.  For each sky
     1166of images which have been processed through phases 1--3.  For each sky
    11371167cell, the corresponding pixels are extracted from the exposures being
    11381168processed and mapped to the projection of the sky cell. The pixels
     
    11421172difference image, above a threshold are detected and excised from the
    11431173original cleaned image.  The remaining pixels are added to the
    1144 existing static sky image.  Object detection must be performed of the
     1174existing static sky image.  Object detection must be performed on the
    11451175difference and cleaned images.  \tbd{when is static sky object
    11461176detection \& classification performed?}  Phase 4 naturally divides
     
    11521182determined and extracted from the input images.  This process must use
    11531183the astrometric information for each OTA and Cell to determine the
    1154 overlaps.  It must not miss any pixels, and it must read no more than
    1155 20\% more pixels than necessary from the input images.
     1184exact overlaps.  It must not miss any pixels, and it must read no more
     1185than 20\% more pixels than necessary from the input images.
    11561186
    11571187\subparagraph{Transform pixel coordinates}
     
    11661196\tbd{interpolation method?}
    11671197
    1168 \subparagraph{PSF matching}
    1169 
    1170 The multiple input images must have their PSF mutually matched to
    1171 allow for proper image subtraction.
    1172 
    11731198\subparagraph{Flux matching}
    11741199
    1175 The multiple input images must have their object fluxes mutually
    1176 matched by intercomparison of the stars measured in Phase 2 in order
    1177 to properly combine them photometrically.
     1200The multiple input images must have their object fluxes intercompared
     1201using the stars measured in Phase 2 in order to determine the
     1202appropriate photometry scaling factors needed to properly combine them
     1203photometrically.
    11781204
    11791205\subparagraph{Image outlier pixel rejection}
     
    11861212obtained over a wide range of times.
    11871213
     1214\subparagraph{PSF matching}
     1215
     1216The multiple input images must have their PSF mutually matched to
     1217allow for proper image subtraction.
     1218
    11881219\subparagraph{Image Subtraction}
    11891220
    1190 The static sky image must be subtracted from the merged, cleaned
     1221The static sky image must be subtracted from the stacked, cleaned
    11911222image.  All objects in the difference image must be detected and the
    1192 pixels flagged in the input image.  Object detection at this stage is
    1193 the same as that used for Phase 2. 
     1223pixels belonging to variable sources flagged in the input image.
     1224Object detection at this stage is the same as that used for Phase 2.
    11941225
    11951226\subparagraph{Cleaned Input Image}
     
    12141245telescopes, with the (old) static sky added;
    12151246\item Metadata about the quality of each of these images; and
    1216 \item A catalogue of variable sources.
     1247\item A catalog of variable sources.
     1248\item A catalog of sources from the combined image.
    12171249\end{enumerate}
    12181250
     
    12371269photometric and astrometric accuracies:
    12381270\begin{itemize}
    1239 \item Relative photometric accuracy better than 0.005 mag {\bf [???]}.
    1240 \item Absolute photometric accuracy better than 0.02 mag {\bf [???]}.
    1241 \item Relative astrometric accuracy better than 0.02 arcsec {\bf [???]}.
    1242 \item Absolute astrometric accuracy better than 0.2 arcsec {\bf [???]}.
     1271\item Relative photometric accuracy better than \tbd{0.005 mag}
     1272\item Absolute photometric accuracy better than \tbd{0.02 mag}
     1273\item Relative astrometric accuracy better than \tbd{0.01 arcsec}
     1274\item Absolute astrometric accuracy better than \tbd{0.2 arcsec}
    12431275\end{itemize}
    12441276
     
    12511283
    12521284\paragraph{Calibration Stages}
     1285\label{mkcal}
    12531286
    12541287The Calibration analysis stages may be performed on whatever
     
    12631296\paragraph{Basic Calibration Stages}
    12641297
    1265 The IPP must generate basic calibration images using the raw
    1266 flat-field, bias and dark images obtained by the telescope as the
    1267 input.  The analysis of these images requires relatively simple
    1268 stacking of the input set of images.  Outlier rejection, both of
    1269 complete input images as well as pixels within the input stack, must
    1270 be performed.  In addition, each type of image requires an appropriate
    1271 normalization which may depend on the data levels in other detectors
    1272 in the input set.  Each of these calibration stages must be able to
    1273 determine from the input stack if the relevant calibration image needs
    1274 to be updated and perform an initial test to see which input images
    1275 are consistent and valid.
     1298The IPP must generate basic calibration images using the raw bias,
     1299dark, and flat-field (dome or twilight) images obtained by the
     1300telescope as the input.  The analysis of these images requires
     1301relatively simple stacking of the input set of images.  Outlier
     1302rejection, both of complete input images as well as pixels within the
     1303input stack, must be performed.  In addition, each type of image
     1304requires an appropriate normalization which may depend on the data
     1305levels in other detectors in the input set.  Each of these calibration
     1306stages must be able to determine from the input stack if the relevant
     1307calibration image needs to be updated and perform an initial test to
     1308see which input images are consistent and valid.
    12761309
    12771310\subparagraph{bias images}
     
    13321365flat-field images and identify pixels which are repeatedly
    13331366inconsistent from image to image.  If too many pixels are
    1334 inconsistent, an error should be raised.
     1367inconsistent, an error must be raised.
    13351368
    13361369\subparagraph{fringe frames}
     
    13671400which are placed at a variety of locations on the detector in a
    13681401sequence of images.
     1402
     1403\subparagraph{Non-linearity correction frames}
     1404
     1405The IPP must have the capability of constructing non-linear correction
     1406frames.  These frames are constructed from exposures of a uniform
     1407source with a range of exposure times.  The non-linearity correction
     1408frames provide polynomial correction coefficients as a function of
     1409pixel to convert the observed pixel counts to the expected pixel count
     1410from a linear detector. 
    13691411
    13701412\paragraph{Reference Catalog Creation}
     
    20322074\section{Test Verification}
    20332075
    2034 A testing regime shall be implemented to demonstrate the working state
    2035 of the provided software.  Certain tests as specified shall be
     2076A testing regime must be implemented to demonstrate the working state
     2077of the provided software.  Certain tests as specified must be
    20362078performed by MHPCC, with code release contingent on success.  Other
    20372079specified tests will be performed by IfA to verify the validity of the
     
    20422084\subsection{Software Configuration Tests}
    20432085
    2044 MHPCC shall test the validity of the software configuration,
     2086MHPCC must test the validity of the software configuration,
    20452087specifically to check that the code can be compiled on the specified
    20462088platforms and that the compilation produces no errors or warnings,
     
    20492091\subsection{Software Integrity Tests}
    20502092
    2051 MHPCC shall test the integrity of the software, specifically to check
     2093MHPCC must test the integrity of the software, specifically to check
    20522094that the code does not produce memory leaks, segmentation faults.
    20532095
    20542096\subsection{Basic Unit Tests}
    20552097
    2056 MHPCC shall perform basic unit tests with sample input data and known
     2098MHPCC must perform basic unit tests with sample input data and known
    20572099output results, including invalid input data to test error handling.
    2058 These tests should exercise the complete range of module options.
     2100These tests must exercise the complete range of module options.
    20592101
    20602102\subsection{Detailed Functional Analysis}
    20612103
    2062 IfA shall perform detailed tests with a wide range of input data and
     2104IfA must perform detailed tests with a wide range of input data and
    20632105compare the results with existing software system.
    20642106
     
    20782120\end{document}
    20792121
     2122Requirements Trace Matrix
     2123
     2124active state \ref{req:active-state}
     2125paused state \ref{req:paused-state}
     2126interactive state \ref{req:interactive-state}
     2127
     2128system capabilities
     2129
     2130C for source code \ref{req:languages}
     2131Python for scripts \ref{req:languages}
     2132
     2133SWIG interfaces
     2134C APIs
     2135
     2136POSIX
     2137Pan-STARRS Coding Standard
     2138
     2139Naming Conventions
     2140
Note: See TracChangeset for help on using the changeset viewer.