IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Nov 29, 2012, 2:15:01 PM (14 years ago)
Author:
eugene
Message:

merge changes from trunk

Location:
branches/eam_branches/ipp-20120905
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20120905

  • branches/eam_branches/ipp-20120905/ppTranslate/documentation/ICD/PSDC-940-005.tex

    r34566 r34735  
    22\documentclass[panstarrs,spec]{panstarrs}
    33\usepackage{nonfloat}
    4 
    5 \newcommand{\sccomment}[1]{%
    6   \textcolor{green}{SC: #1}}
     4\usepackage{caption}
     5
     6\usepackage{etoolbox}
     7\patchcmd{\thebibliography}{\chapter*}{\subsection*}{}{}
     8
    79\newcommand{\outformatversion}{%
    810  \texttt{PS1\_DV3}}
     11
     12\newcommand{\commentFrom}[4]{%
     13  \mbox{ }\\\null\hfill\begin{tabular}{|p{4in}}
     14    \hline
     15    \emph{Comment from {#1} (#2)}: {#3}\\
     16    \hline
     17    Answer: {#4}\\
     18    \hline
     19  \end{tabular}}
     20
     21\newcommand{\commentFromSC}[3]{%
     22  \commentFrom{SC}{#1}{#2}{#3}}
    923
    1024% basic document variables
     
    1226\subtitle{Pan-STARRS IPP-MOPS ICD for PS-1}
    1327\shorttitle{IPP-MOPS ICD}
    14 \author{Eugene Magnier, Larry Denneau, Jr., Robert Jedicke}
     28\author{\parbox{3in}{Serge Chastel; Larry Denneau, Jr.; Denver Green; Robert Jedicke; Eugene Magnier}}
    1529\audience{Pan-STARRS PMO}
    1630\group{Pan-STARRS IPP \& MOPS}
     
    2640\RevisionsStart
    2741% version  Date            Description
    28 03 & 2012 Oct 04 & \texttt{PS1\_DV3}: Fitted trails, new parameters\\
    29 \hline
    30 02 & 2011 Apr 19 & Synchronization with "ICD Lite" wiki page \\
    31 \hline
    32 01 & 2010 Oct 27 & New CMF Parameters \\
    33 \hline
    34 00 & 2006 Mar 01 & Initial version \\ \hline
     4204 & 2012 Nov 20  & Modifications integrating DG comments/questions \\
     43\hline
     4403 & 2012 Oct 04  & \texttt{PS1\_DV3}: Fitted trails, new parameters\\
     45\hline
     4602 & 2011 Apr 19  & Synchronization with "ICD Lite" wiki page \\
     47\hline
     4801 & 2010 Oct 27  & New CMF Parameters \\
     49\hline
     5000 & 2006 Mar 01  & Initial version \\
     51\hline
    3552\RevisionsEnd
    3653
    3754%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     55
     56\bibliographystyle{amsplain}
     57\bibliography{icd}
    3858
    3959\DocumentsInternal
     
    116136\DocumentsEnd
    117137
     138\subsection{Acronyms}
     139
     140\begin{table}
     141  \small
     142  \caption{Acronyms used in this document\label{table-acronyms}}
     143  \begin{tabular}{ll}
     144    \hline
     145    {\bf Acronym}            & {\bf Definition} \\
     146    \hline
     147    ADU & Analog to Digital Units (counts in an image) \\
     148    ICRS  & International Celestial Reference System \\
     149    IPP   & Pan-STARRS Image Processing Pipeline \\
     150    FPA   & Focal Plane Array \\
     151    MOPS  & Pan-STARRS Moving Object Processing System \\
     152    MPC   & Center for Astrophysics Minor Planet Center \\
     153    TTI   & Transient-Time Interval (about 60 minutes) \\
     154    \hline
     155  \end{tabular}
     156\end{table}
     157
    118158\section{Interface Overview}
    119159
     
    144184
    145185This document discusses the software interface between IPP and MOPS.
    146 IPP must send transient detection descriptions to the MOPS; MOPS
    147 must be able to query the IPP regarding whether a particular (RA,
    148 Dec) pair could have been detected in a particular focal plane array (FPA).  This document
    149 defines the data to be transferred between IPP and MOPS and the
    150 mechanisms to be used for that interchange.  These interfaces are
    151 identified as \#005 in Figure~\ref{fig:overview}.  The Interfaces
     186IPP must send transient detection descriptions to the MOPS; MOPS must
     187be able to query the IPP regarding whether a particular (RA, Dec) pair
     188could have been detected in a particular focal plane array (FPA).
     189This document defines the data to be transferred between IPP and MOPS
     190and the mechanisms to be used for that interchange.  These interfaces
     191are identified as \#005 in Figure~\ref{fig:overview}.  The Interfaces
    152192addressed by this document are marked in the table.
    153193
     
    235275Though efforts have been made to avoid this from occurring, where
    236276header keyword names are longer than the usual 8 character maximum,
    237 the HIERARCH convention will be used.
     277the HIERARCH convention will be used (see the NASA webpages:
     278\htmladdnormallink{Registered FITS
     279  Convention}{http://fits.gsfc.nasa.gov/registry/hierarch_keyword.html}
     280and \htmladdnormallink{4.12.4 HIERARCH Convention for Extended Keyword
     281  Names}{http://heasarc.nasa.gov/docs/software/fitsio/c/f_user/node28.html}).
    238282
    239283\subsection{IPP-MOPS Exchange}
     
    241285MOPS requires from the IPP a stream of transient detections and their
    242286FPA metadata obtained from processing of difference images acquired by
    243 the PS-1 camera.  IPP is additionally required by MOPS to be able to
    244 indicate whether a set of detections (with RA, Dec, flux, length,
    245 orientation, etc.) on a previously acquired FPA was detectable by the
    246 PS-1 telescope.
     287the PS-1 camera.
     288
     289IPP is additionally required by MOPS to be able to indicate whether a
     290set of detections (with RA, Dec, flux, length, orientation, etc.) on a
     291previously acquired FPA was detectable by the PS-1 telescope. This
     292functionality is provided through the detectability server.
    247293
    248294\subsubsection{Conventions}
     
    305351
    306352\begin{itemize}
    307 \item{EXTNAME} - Giving a unique name for the metadata table. Such a
    308   name shall contain only the characters a-z, and ``\_''.
    309 \item{CMFVERSION} - A string specifying the version of the table
    310   description file for this table.
     353\item{EXTNAME} - A \emph{string} giving a unique name for the metadata
     354  table. Such a name shall contain only the characters a-z, A-Z, and
     355  ``\_''.
     356\item{CMFVERSION} - A \emph{string} specifying the version of the
     357  table description file for this table.
    311358\end{itemize}
    312359
     
    389436exposure.
    390437
    391 In addition to the required BINTABLE extension header keywords
    392 described above, the FITS header shall include the keywords shown in
    393 table \ref{trans-keywords}.  The subsequent FITS table, with EXTNAME
    394 of \code{MOPS_TRANSIENT_DETECTIONS}, shall include columns whose
    395 definitions are listed in table \ref{trans-table}.
    396 
    397438{\centering%
    398   \tabcaption{IPP-MOPS Transient Detection Keywords\label{trans-keywords}}
    399   \begin{longtable}{|lcp{0.5in}p{3in}|}
    400     \hline \hline {\bf FITS Keyword}
    401     & \parbox{0.5in}{\textbf{Version}}
    402     & {\bf Precision} & {\bf Description}\\
    403     \hline \hline
    404     \multicolumn{4}{|l|}{\null\hspace{10mm}\textbf{Version Information}}\\
    405     \hline
    406     SWSOURCE & 1+ & string & source of software (e.g., "60eb6cdc-a59c-4636-a4e0-dba66a9721fd")\\
    407     \hline
    408     SWVERSN & 1+ & string & version of software (e.g., "trunk/ppMops@24658")\\
    409     \hline
    410     HIERARCH\_CMFVERSION & 2+ & char(7) & PS1\_DV1 or PS1\_DV2 or PS1\_DV3 \\
    411     \hline
    412     \multicolumn{4}{|l|}{\null\hspace{10mm}\textbf{Provenance Information}}\\
    413     \hline
    414     EXP\_NAME & 1+ & string & Exposure name (e.g., "o1234g5678")\\
    415     \hline
    416     EXP\_ID & 1+ & S64 & Exposure identifier \\
    417     \hline
    418     CHIP\_ID & 1+ & S64 & Chip stage identifier \\
    419     \hline
    420     CAM\_ID & 1+ & S64 & Camera stage identifier \\
    421     \hline
    422     FAKE\_ID & 1+ & S64 & Fake stage identifier \\
    423     \hline
    424     WARP\_ID  & 1+ & S64 & Warp stage identifier \\
    425     \hline
    426     DIFF\_ID & 1+ & S64 & Diff stage \\
    427     \hline
    428     DIFF\_POS & 1+ & boolean & Sense of subtraction; T for forward, F for backward\\
    429     \hline
    430     \multicolumn{4}{|l|}{\null\hspace{10mm}\textbf{Exposure Details}}\\
    431     \hline MJD-OBS & 0+
    432     & F64 & midpoint time of the exposure as a MJD and day fraction \\
    433     \hline
    434     RA & 0+
    435     & {\tiny HH:MM:SS.SSS} & field center RA at exposure midpoint, string \\
    436     \hline
    437     DEC & 0+ &
    438     {\tiny sDD:MM:SS}& (s is + or -) field center declination at exposure midpoint, string \\
    439     \hline
    440     EXPTIME & 0+
    441     & F64 & exposure time in seconds \\
    442     \hline
    443     ROTANGLE & 0+
    444     & F64 & image rotation of the y-axis in degrees, from local N toward E \\
    445     \hline
    446     FILTER & 0+ & char(3) & effective filter used for the exposure,
    447     one of g, r, i, z, y, B, V, w
    448     appended with '.00000'\\
    449     \hline
    450     AIRMASS & 0+ & F64
    451     & airmass at exposure midpoint \\
    452     \hline
    453     OBSCODE & 0+ & char(5) & MPC three-character observatory code \\
    454     \hline
    455     TEL\_ALT & 0+ & F64 & telescope altitude at exposure midpoint, in degrees \\
    456     \hline
    457     TEL\_AZ & 0+ & F64 & telescope azimuth at exposure midpoint, in degrees \\
    458     \hline
    459     SEEING & 1+ & F32 & Measured seeing at diff stage, arcsec \\
    460     \hline
    461     MAGZP & 1+ & F32 & Magnitude zero point \\
    462     \hline
    463     MAGZPERR & 1+ & F32 & Error in magnitude zero point \\
    464     \hline
    465     ASTRORMS & 1+ & F32 & RMS of astrometric fit, arcsec \\
    466     \hline
    467     COMMENT & 3+ & String & Comment associated to the exposure\\
    468     \hline
    469     OBS\_MODE & 3+ & String & Observation mode (e.g. MD, 3PI...)\\
    470     \hline
    471     DIFFTYPE & 3+ & String & Difference type: WW (Warp-Warp Difference), WS (Warp-Stack Difference)\\
    472     \hline
    473     SKY  & 3+ & F64 & Exposure average sky background \\
    474     \hline
    475     SHUTOUTC & 3+ & String & Camera exposure shutter open (UTC) \\
    476     \hline
     439  \tabcaption{IPP-MOPS Data Types Definition\label{table-datatypes}}
     440  \begin{longtable}{|cp{5in}|}
     441    \hline
     442    \textbf{Alias} & \textbf{Description} \\
     443    \texttt{bool} & (Not a FITS type) An enumerated type defining a Boolean
     444    value, either \texttt{true} or \texttt{false}\\
     445    \texttt{char($n$)} & (Not a FITS type) A sequence of exactly $n$ bytes that
     446    can be interpreted
     447    as a sequence of ASCII characters\\
     448    \texttt{HH:MM:SS.sss} & (Not a FITS type) a \texttt{char(12)} encoding
     449    a time or an angle: (1) the hours \texttt{HH} are encoded with two
     450    decimal figures; (2) a separator \texttt{:} between the hours and
     451    the minutes; (3) the minutes \texttt{MM} are encoded with two
     452    decimal figures; (4) a separator \texttt{:} between the minutes
     453    and the seconds; (5) the seconds \texttt{SS} are encoded with two
     454    decimal figures; (6) a separator \texttt{.} between the seconds
     455    and the milli(arc)seconds; (7)
     456    the milli(arc)seconds \texttt{ss} are encoded with three decimal figures; \\
     457    \texttt{sDD:MM:SS} & (Not a FITS type) a \texttt{char(9)} encoding an
     458    angle. (1) \texttt{s} is either the \texttt{+} or \texttt{-} sign;
     459    (2) \texttt{DD} is the number of degrees encoded with two decimal
     460    figures; (3) a separator \texttt{:} between the degrees and the
     461    minutes; (4) the minutes \texttt{MM} are encoded with two decimal
     462    figures; (5) a separator \texttt{:} between the minutes and the
     463    seconds; (6) the
     464    seconds \texttt{SS} are encoded with two decimal figures;\\
     465    \texttt{enum} & (Not a FITS type) a \texttt{string} having a fixed number of
     466    different values. The explicit set of values shall be expressed in
     467    this ICD.\\
     468    \texttt{F32} & (FITS type) IEEE 32-bit single precision floating point real numbers \\
     469    \texttt{F64} & (FITS type) IEEE 64-bit double precision floating point real numbers \\
     470    \texttt{S16} & (FITS type) 16-bit signed integer \\
     471    \texttt{S32} & (FITS type) 32-bit signed integer \\
     472    \texttt{S64} & (FITS type) 64-bit signed integer \\
     473    \texttt{string} & (Not a FITS type) Sequence of bytes of arbitrary length
     474    usually interpreted as a sequence of ASCII characters \\
     475    \texttt{U16} & (FITS type) 16-bit unsigned integer \\
     476    \texttt{U32} & (FITS type) 32-bit unsigned integer \\
    477477    \hline
    478478  \end{longtable}
    479479}
    480480
    481 {\centering
    482   \tabcaption{IPP-MOPS Transient Detection Table Columns\label{trans-table}}
    483   \begin{longtable}{|lclp{3.5in}|}
     481In addition to the required BINTABLE extension header keywords
     482described above (TODO: Where? What?), the FITS header shall include the
     483keywords shown in tables relative to versioning
     484\ref{table-keywords-versioning}, data provenance
     485\ref{table-keywords-provenance}, and exposure
     486\ref{table-keywords-exposure}. The subsequent FITS table, with EXTNAME
     487of \code{MOPS_TRANSIENT_DETECTIONS}, shall include columns whose
     488definitions are listed in table \ref{table-detections} and, when trail
     489fitting has been succesfully performed, \ref{table-detections-ext}.
     490
     491\begin{center}
     492  \begin{longtable}{|lcp{0.5in}p{3in}|}
     493    \caption{IPP-MOPS Transient Detection Keywords:\\ Version Information}\label{table-keywords-versioning}\\
     494    \hline\hline
     495    \multicolumn{4}{|l|}{\null\hspace*{1in}\textbf{Version Information}}\\
     496    \hline\hline
     497    {\bf FITS Keyword}
     498    & \parbox{0.5in}{\textbf{Version}}
     499    & {\bf Precision}
     500    & {\bf Description} \\
     501    \hline
     502    SWSOURCE & 1+ & \texttt{string} & source of software (e.g., "60eb6cdc-a59c-4636-a4e0-dba66a9721fd") \\
     503    \hline
     504    SWVERSN & 1+ & \texttt{string} & version of software (e.g., "trunk/ppMops@24658") \\
     505    \hline
     506    HIERARCH CMFVERSION & 2+ & \texttt{enum} & \texttt{PS1\_DV3} \\
     507    \hline\hline
     508  \end{longtable}
     509\end{center}
     510
     511\begin{center}
     512  \begin{longtable}{|lcp{0.5in}p{3in}|}
     513    \caption{IPP-MOPS Transient Detection Keywords:\\ Provenance Information}\label{table-keywords-provenance}\\
     514    \hline\hline
     515    \multicolumn{4}{|l|}{\null\hspace{10mm}\textbf{Provenance Information}}\\
    484516    \hline \hline
    485     {\bf Column} & \textbf{Version} & {\bf Precision} & {\bf Description} \\
    486     \hline
    487     RA & 1+ & F64 & detection center coordinates in degrees\\
    488     \hline
    489     RA\_ERR & 1+ & F64 & error in the detection center, in degrees \\
    490     \hline
    491     DEC & 1+  & F64 & detection center coordinates in degrees \\
    492     \hline
    493     DEC\_ERR & 1+ & F64 & error in the detection center, in degrees \\
    494     \hline
    495     MAG & 1+ & F32 & Magnitude \\
    496     \hline
    497     MAG\_ERR & 1+ & F32 & Magnitude error \\
    498     \hline
    499     PSF\_CHI2 & 1+ & F32 & $\chi^2$ of PSF fit \\
    500     \hline
    501     PSF\_DOF & 1+ & S32 & Degrees of freedom of PSF fit \\
    502     \hline
    503     CR\_SIGNIFICANCE & 1+ & F32 & Significance of Cosmic Ray \\
    504     \hline
    505     EXT\_SIGNIFICANCE & 1+ & F32 & Significance of extendedness \\
    506     \hline
    507     PSF\_MAJOR & 1+ & F32 & PSF major axis (pixels) \\
    508     \hline
    509     PSF\_MINOR & 1+ & F32 & PSF minor axis (pixels) \\
    510     \hline
    511     PSF\_THETA & 1+ & F32 & PSF position angle (deg on chip) \\
    512     \hline
    513     PSF\_QUALITY & 1+ & F32 & PSF quality factor \\
    514     \hline
    515     PSF\_NPIX & 1+ & S32 & Number of pixels in PSF \\
    516     \hline
    517     MOMENTS\_XX & 1+ & F32 & xx moment \\
    518     \hline
    519     MOMENTS\_XY & 1+ & F32 & xy moment \\
    520     \hline
    521     MOMENTS\_YY & 1+ & F32 & yy moment \\
    522     \hline
    523     N\_POS & 1+ & S32 & Number of positive pixels \\
    524     \hline
    525     F\_POS & 1+ & F32 & Fraction of positive pixels \\
    526     \hline
    527     RATIO\_BAD & 1+ & F32 & Ratio of positive pixels to negative \\
    528     \hline
    529     RATIO\_MASK & 1+ & F32 & Ratio of positive pixels to masked \\
    530     \hline
    531     RATIO\_ALL & 1+ & F32 & Ratio of positive pixels to all \\
    532     \hline
    533     FLAGS & 1+ & U32 & Detection bit flags\footnote{See \htmladdnormallink{http://svn.pan-starrs.ifa.hawaii.edu/trac/ipp/wiki/PSPSFlags\#StackDetectionFull.infoFlagsFLAGS232FLAGS}{http://svn.pan-starrs.ifa.hawaii.edu/trac/ipp/wiki/PSPSFlags\#StackDetectionFull.infoFlagsFLAGS232FLAGS} for the meaning of each bit}\\
    534     \hline
    535     DIFF\_SKYFILE\_ID & 1+ & S64 & Identifier for diff skyfile. A
    536     diff\_id (for Warp-Warp difference) or a stack\_id
    537     (for Warp-Stack difference) \\
    538     \hline
    539     IPP\_IDET & 2+ & U32 & IPP detection identifier index \\
    540     \hline
    541     PSF\_INST\_FLUX & 2+ & F32 & PSF fit instrumental magnitude \\
    542     \hline
    543     PSF\_INST\_FLUX\_SIG & 2+ & F32 & Sigma of PSF instrumental magnitude \\
    544     \hline
    545     AP\_MAG & 2+ & F32 & magnitude in standard aperture \\
    546     \hline
    547     AP\_MAG\_RAW & 2+ & F32 & magnitude in real aperture \\
    548     \hline
    549     AP\_MAG\_RADIUS & 2+ & F32 & radius used for aperture mags \\
    550     \hline
    551     AP\_FLUX & 2+ & F32 & instrumental flux in standard aperture \\
    552     \hline
    553     AP\_FLUX\_SIG & 2+ & F32 & aperture flux error \\
    554     \hline
    555     PEAK\_FLUX\_AS\_MAG & 2+ & F32 & Peak flux expressed as magnitude \\
    556     \hline
    557     CAL\_PSF\_MAG & 2+ & F32 & PSF Magnitude using supplied calibration \\
    558     \hline
    559     CAL\_PSF\_MAG\_SIG & 2+ & F32 & measured scatter of zero point calibration \\
    560     \hline
    561     SKY & 2+ & F32 & Sky level \\
    562     \hline
    563     SKY\_SIGMA & 2+ & F32 & Sigma of sky level \\
    564     \hline
    565     PSF\_QF\_PERFECT & 2+ & F32 & PSF coverage/quality factor (poor) \\
    566     \hline
    567     MOMENTS\_R1 & 2+ & F32 & first radial moment \\
    568     \hline
    569     MOMENTS\_RH & 2+ & F32 & half radial moment \\
    570     \hline
    571     KRON\_FLUX & 2+ & F32 & Kron Flux (in 2.5 R1) \\
    572     \hline
    573     KRON\_FLUX\_ERR & 2+ & F32 & Kron Flux Error \\
    574     \hline
    575     KRON\_FLUX\_INNER & 2+ & F32 & Kron Flux (in 1.0 R1) \\
    576     \hline
    577     KRON\_FLUX\_OUTER & 2+ & F32 & Kron Flux (in 4.0 R1) \\
    578     \hline
    579     DIFF\_R\_P & 2+ & F32 & distance to positive match source \\
    580     \hline
    581     DIFF\_SN\_P & 2+ & F32 & signal-to-noise of pos match src \\
    582     \hline
    583     DIFF\_R\_M & 2+ & F32 & distance to negative match source \\
    584     \hline
    585     DIFF\_SN\_M & 2+ & F32 & signal-to-noise of neg match src \\
     517    {\bf FITS Keyword}
     518    & \parbox{0.5in}{\textbf{Version}}
     519    & {\bf Precision}
     520    & {\bf Description} \\
     521    \hline
     522    EXP\_NAME & 1+ & \texttt{string} & Exposure name (e.g., "o1234g5678")\\
     523    \hline
     524    EXP\_ID & 1+ & \texttt{S64} & Exposure identifier \\
     525    \hline
     526    CHIP\_ID & 1+ & \texttt{S64} & Chip stage identifier \\
     527    \hline
     528    CAM\_ID & 1+ & \texttt{S64} & Camera stage identifier \\
     529    \hline
     530    FAKE\_ID & 1+ & \texttt{S64} & Fake stage identifier \\
     531    \hline
     532    WARP\_ID  & 1+ & \texttt{S64} & Warp stage identifier \\
     533    \hline
     534    DIFF\_ID & 1+ & \texttt{S64} & Diff stage \\
     535    \hline
     536    DIFF\_POS & 1+ & \texttt{bool} & Sense of subtraction; \texttt{true} for forward,
     537    \texttt{false} for backward\\
     538    \hline
     539  \end{longtable}
     540\end{center}
     541 
     542\begin{center}
     543  \begin{longtable}{|lcp{0.5in}p{3in}c|}
     544    \caption{IPP-MOPS Transient Detection Keywords:\\ Exposure Details}\label{table-keywords-exposure}\\
     545    \hline \hline
     546    \multicolumn{5}{|l|}{\null\hspace{10mm}\textbf{Exposure Details}}\\
     547    \hline \hline {\bf FITS Keyword}
     548    & \parbox{0.5in}{\textbf{Version}} & {\bf Precision} & {\bf
     549      Description}
     550    & \textbf{Units}\\
     551    \hline MJD-OBS & 0+ & \texttt{F64} & midpoint time of the exposure
     552    as a MJD and day fraction
     553    & N/A\\
     554    \hline RA & 0+ & {\tiny \texttt{HH:MM:SS.SSS}}
     555    & Field center RA at exposure midpoint & N/A \\
     556    \hline DEC & 0+ & {\tiny \texttt{sDD:MM:SS}} &
     557    (s is + or -) Field center declination at exposure midpoint & N/A \\
     558    \hline EXPTIME & 0+ & \texttt{F64}
     559    & Exposure time & seconds \\
     560    \hline ROTANGLE & 0+ & \texttt{F64}
     561    & Image rotation of the y-axis from local N toward E & degrees \\
     562    \hline FILTER & 0+ & \texttt{char(7)} & Effective filter used for
     563    the exposure, one of \texttt{g}, \texttt{r}, \texttt{i},
     564    \texttt{z}, \texttt{y}, \texttt{B},
     565    \texttt{V}, \texttt{w} appended with '.00000' & N/A \\
     566    \hline AIRMASS & 0+ & \texttt{F64}
     567    & Airmass at exposure midpoint & N/A\\
     568    \hline OBSCODE & 0+ & char(5) &
     569    MPC 3-character observatory code (F51 for PS1) & N/A \\
     570    \hline TEL\_ALT & 0+ & \texttt{F64} &
     571    Telescope altitude at exposure midpoint & degrees \\
     572    \hline TEL\_AZ & 0+ & \texttt{F64}
     573    & Telescope azimuth at exposure midpoint & degrees \\
     574    \hline SEEING & 1+ & \texttt{F32} &
     575    Measured seeing at diff stage & arcsec \\
     576    \hline MAGZP & 1+ & \texttt{F32} &
     577    Magnitude zero point & N/A \\
     578    \hline MAGZPERR & 1+ & \texttt{F32} &
     579    Error in magnitude zero point & N/A \\
     580    \hline ASTRORMS & 1+ & \texttt{F32} &
     581    RMS of astrometric fit & arcsec \\
     582    \hline CMMTOBS & 3+ & \texttt{string} &
     583    Comment associated to the exposure & N/A\\
     584    \hline OBS\_MODE & 3+ & \texttt{enum} & Observation modes list:
     585    3PI, CNP, ESS, M31, MD, MSS, OSS, PI, STD (Note: The exposures
     586    having the following PS1 observation modes are not used by MOPS:
     587    CAL, PR201108, SAS2, SS, STS, STS2A, STS2B) & N/A\\
     588    \hline DIFFTYPE & 3+ & \texttt{enum} &
     589    Difference type: \texttt{WW} (Warp-Warp Difference), \texttt{WS} (Warp-Stack Difference) & N/A\\
     590    \hline SKY & 3+ & \texttt{F64} &
     591    Exposure average sky background & counts/pixel \\
     592    \hline SHUTOUTC & 3+ & \texttt{string} &
     593    Camera exposure shutter open (UTC) & N/A \\
     594    \hline \hline
     595  \end{longtable}
     596\end{center}
     597
     598\begin{center}
     599  \begin{longtable}{|lclp{3.5in}c|}
     600    \caption{IPP-MOPS Transient Detection Table Columns:\\ Detection Details}\label{table-detections}\\
     601    \hline \hline
     602    \multicolumn{5}{|l|}{\null\hspace{10mm}\textbf{Detection Details}}\\
     603    \hline \hline
     604    {\bf Column} & \textbf{Version} & {\bf Precision} & {\bf Description} & \textbf{Units}\\
     605    \hline
     606    RA & 1+ & F64 & Detection center coordinates & degrees\\
     607    \hline
     608    RA\_ERR & 1+ & F64 & Error in the detection center & degrees \\
     609    \hline
     610    DEC & 1+ & F64 & Detection center coordinates & degrees \\
     611    \hline
     612    DEC\_ERR & 1+ & F64 & Error in the detection center & degrees \\
     613    \hline
     614    MAG & 1+ & F32 & Filter magnitude & N/A \\
     615    \hline
     616    MAG\_ERR & 1+ & F32 & Filter magnitude error & N/A  \\
     617    \hline
     618    PSF\_CHI2 & 1+ & F32 & $\chi^2$ of PSF fit & N/A \\
     619    \hline
     620    PSF\_DOF & 1+ & S32 & Degrees of freedom of PSF fit & N/A  \\
     621    \hline
     622    CR\_SIGNIFICANCE & 1+ & F32 & Significance of cosmic ray (source: \emph{src/psphot/psphotSourceSize.c}) & N/A  \\
     623    \hline
     624    EXT\_SIGNIFICANCE & 1+ & F32 & Significance of extendedness (source: \emph{src/psphot/psphotSourceSize.c}) & N/A  \\
     625    \hline
     626    PSF\_MAJOR & 1+ & F32 & PSF major axis & pixels \\
     627    \hline
     628    PSF\_MINOR & 1+ & F32 & PSF minor axis & pixels \\
     629    \hline
     630    PSF\_THETA & 1+ & F32 & PSF position angle on chip & degrees \\
     631    \hline
     632    PSF\_QUALITY & 1+ & F32 & PSF quality factor & N/A \\
     633    \hline
     634    PSF\_NPIX & 1+ & S32 & Number of pixels in PSF & N/A \\
     635    \hline
     636    MOMENTS\_XX & 1+ & F32 & xx moment & N/A \\
     637    \hline
     638    MOMENTS\_XY & 1+ & F32 & xy moment & N/A \\
     639    \hline
     640    MOMENTS\_YY & 1+ & F32 & yy moment & N/A \\
     641    \hline
     642    N\_POS & 1+ & S32 & Number of positive pixels & N/A \\
     643    \hline
     644    F\_POS & 1+ & F32 & Fraction of positive pixels & N/A \\
     645    \hline
     646    RATIO\_BAD & 1+ & F32 & Ratio of positive pixels to negative & N/A \\
     647    \hline
     648    RATIO\_MASK & 1+ & F32 & Ratio of positive pixels to masked & N/A \\
     649    \hline
     650    RATIO\_ALL & 1+ & F32 & Ratio of positive pixels to all & N/A \\
     651    \hline
     652    FLAGS & 1+ & U32 & Detection bit flags\footnote{See \htmladdnormallink{http://svn.pan-starrs.ifa.hawaii.edu/trac/ipp/wiki/PSPSFlags\#StackDetectionFull.infoFlagsFLAGS232FLAGS}{http://svn.pan-starrs.ifa.hawaii.edu/trac/ipp/wiki/PSPSFlags\#StackDetectionFull.infoFlagsFLAGS232FLAGS} for the meaning of each bit}. The PM\_SOURCE\_MODE\_EXTENDED\_FIT flag (at position 0x00800000) is set when the Trail Fitting is attempted. It does not mean that the Trail Fitting is successful. \\
     653    \hline DIFF\_SKYFILE\_ID & 1+ & S64 & Identifier for diff
     654    skyfile. Either a diff\_id (for Warp-Warp difference) or a
     655    stack\_id
     656    (for Warp-Stack difference) & N/A \\
     657    \hline
     658    IPP\_IDET & 2+ & U32 & IPP detection identifier index & N/A \\
     659    \hline
     660    PSF\_INST\_FLUX & 2+ & F32 & PSF fit instrumental magnitude & N/A \\
     661    \hline
     662    PSF\_INST\_FLUX\_SIG & 2+ & F32 & Sigma of PSF instrumental magnitude & N/A \\
     663    \hline
     664    AP\_MAG & 2+ & F32 & magnitude in standard aperture (i.e. 25 pixels radius) & N/A \\
     665    \hline
     666    AP\_MAG\_RAW & 2+ & F32 & magnitude in real aperture & N/A \\
     667    \hline
     668    AP\_MAG\_RADIUS & 2+ & F32 & radius used for aperture mags & pixels \\
     669    \hline
     670    AP\_FLUX & 2+ & F32 & instrumental flux in standard aperture & ADU \\
     671    \hline
     672    AP\_FLUX\_SIG & 2+ & F32 & aperture flux error & N/A \\
     673    \hline
     674    PEAK\_FLUX\_AS\_MAG & 2+ & F32 & Peak flux expressed as magnitude & N/A \\
     675    \hline
     676    CAL\_PSF\_MAG & 2+ & F32 & PSF Magnitude using supplied calibration & N/A \\
     677    \hline
     678    CAL\_PSF\_MAG\_SIG & 2+ & F32 & Measured standard-deviation of zero point calibration & N/A \\
     679    \hline
     680    SKY & 2+ & F32 & Sky level & counts/pixel \\
     681    \hline
     682    SKY\_SIGMA & 2+ & F32 & Sigma of sky level  & counts/pixel\\
     683    \hline PSF\_QF\_PERFECT & 2+ & F32 & PSF coverage/quality factor
     684    (poor): PSF value weighted by unmasked pixels
     685    (source: psmodules/src/objects/pmSourcePhotometry.c) & N/A \\
     686    \hline
     687    MOMENTS\_R1 & 2+ & F32 & first radial moment & N/A \\
     688    \hline
     689    MOMENTS\_RH & 2+ & F32 & half radial moment & N/A \\
     690    \hline
     691    KRON\_FLUX & 2+ & F32 & Kron Flux (that is, flux in 2.5 $\times$ first radial moment) & N/A \\
     692    \hline
     693    KRON\_FLUX\_ERR & 2+ & F32 & Kron Flux Error & N/A \\
     694    \hline
     695    KRON\_FLUX\_INNER & 2+ & F32 & Inner Kron Flux (that is, flux in 1.0 $\times$ first radial moment) & N/A \\
     696    \hline
     697    KRON\_FLUX\_OUTER & 2+ & F32 & Outer Kron Flux (that is, flux in 4.0 $\times$ first radial moment) & N/A \\
     698    \hline
     699    DIFF\_R\_P & 2+ & F32 & distance from detection to positive matching source & pixels \\
     700    \hline
     701    DIFF\_SN\_P & 2+ & F32 & signal-to-noise of pos match src & N/A \\
     702    \hline
     703    DIFF\_R\_M & 2+ & F32 & distance from detectionto negative match source & pixels \\
     704    \hline
     705    DIFF\_SN\_M & 2+ & F32 & signal-to-noise of neg match src & N/A \\
    586706    \hline
    587707    FLAGS2 & 2+ & U32 & psphot analysis flags (group 2)\footnote{See \htmladdnormallink{http://svn.pan-starrs.ifa.hawaii.edu/trac/ipp/wiki/PSPSFlags\#StackDetectionFull.infoFlagsFLAGS232FLAGS}{http://svn.pan-starrs.ifa.hawaii.edu/trac/ipp/wiki/PSPSFlags\#StackDetectionFull.infoFlagsFLAGS232FLAGS} for the meaning of each bit}\\
    588708    \hline
    589     N\_FRAMES & 2+ & U16 & Number of frames overlapping source center \\
     709    N\_FRAMES & 2+ & U16 & Number of exposures overlapping source center \\
    590710    \hline
    591711    PADDING & 2+ & S16 & padding \\
    592     \hline
    593     \multicolumn{4}{|c|}{\textbf{Extended (trail fitting) parameters}}\\
    594     \multicolumn{4}{|c|}{Values like \texttt{NaN} mean that the extended parameters are undefined for the detection}\\
    595     \hline
    596     X\_EXT & 2+ & F32 & Extended model X coordinate \\
    597     \hline
    598     Y\_EXT & 2+ & F32 & Extended model Y coordinate \\
    599     \hline
    600     X\_EXT\_SIG & 2+ & F32 & Sigma in extended model X coordinate \\
    601     \hline
    602     Y\_EXT\_SIG & 2+ & F32 & Sigma in extended model Y coordinate \\
    603     \hline
    604     EXT\_INST\_MAG & 2+ & F32 & Extended fit instrumental magnitude \\
    605     \hline
    606     EXT\_INST\_SIG\_MAG & 2+ & F32 & Sigma of extended fit instrumental magnitude \\
    607     \hline
    608     NPARAMS & 2+ & F32 & Number of model parameters \\
    609     \hline
    610     EXT\_WIDTH\_MAJ & 2+ & F32 & EXT width (major axis), length for trail \\
    611     \hline
    612     EXT\_WIDTH\_MIN & 2+ & F32 & EXT width (minor axis), sigma for trail \\
    613     \hline
    614     EXT\_THETA & 2+ & F32 & EXT orientation angle\\
    615     \hline
    616     EXT\_WIDTH\_MAJ\_ERR & 2+ & F32 & EXT width error (major axis)\\
    617     \hline
    618     EXT\_WIDTH\_MIN\_ERR & 2+ & F32 & EXT width error (minor axis)\\
    619     \hline
    620     EXT\_THETA\_ERR & 2+ & F32 & EXT orientation angle (error)\\
    621     \hline
    622     RA\_EXT & 3+ & F32 & Fitted centroid RA \\
    623     \hline
    624     RA\_EXT\_SIGMA & 3+ & F32 & Fitted RA sigma \\
    625     \hline
    626     DEC\_EXT & 3+ & F32 & Fitted centroid DEC \\
    627     \hline
    628     DEC\_EXT\_SIGMA & 3+ & F32 & Fitted DEC sigma \\
    629     \hline
    630     POSANG\_EXT & 3+ & F32 & Fitted position angle \\
    631     \hline
    632     PLTSCALE\_EXT & 3+ & F32 & Plate scale at centroid \\
    633     \hline
    634     EXT\_FLUX & 3+ & F32 & Fitted flux \\
    635     \hline
    636     EXT\_CAL\_MAG & 3+ & F32 & Calibrated magnitude \\
    637     \hline
    638     EXT\_MAG\_SIG & 3+ & F32 & Sigma of calibrated magnitude \\
    639     \hline
    640     EXT\_CHISQ & 3+ & F32 & $\chi^2$ of fit \\
    641     \hline
    642     EXT\_NDOF & 3+ & S32 & Fit degrees of freedom \\
    643     \hline
     712    \hline \hline
    644713  \end{longtable}
    645 }
     714\end{center}
     715
     716\begin{center}
     717  \begin{longtable}{|lclp{3.5in}c|}
     718    \caption{IPP-MOPS Transient Detection Table Columns:\\ Extended (Trail Fitting) Details}\label{table-detections-ext}\\
     719    \hline \hline
     720    \multicolumn{5}{|c|}{\textbf{Extended (trail fitting) parameters}}\\
     721    \multicolumn{5}{|c|}{Values like \texttt{NaN} mean that the extended parameters are undefined for the detection}\\
     722    \hline
     723    X\_EXT & 2+ & F32 &
     724    Extended model X coordinate & pixels\\
     725    \hline
     726    Y\_EXT & 2+ & F32 &
     727    Extended model Y coordinate & pixels \\
     728    \hline
     729    X\_EXT\_SIG & 2+ & F32 &
     730    Sigma in extended model X coordinate & pixels \\
     731    \hline
     732    Y\_EXT\_SIG & 2+ & F32 &
     733    Sigma in extended model Y coordinate & pixels \\
     734    \hline
     735    EXT\_INST\_MAG & 2+ & F32 &
     736    Extended fit instrumental magnitude & N/A \\
     737    \hline
     738    EXT\_INST\_SIG\_MAG & 2+ & F32 &
     739    Sigma of extended fit instrumental magnitude & N/A \\
     740    \hline
     741    NPARAMS & 2+ & S32 &
     742    Number of model parameters (see \cite{VerJedDen2012IAAaPwTF}) & N/A \\
     743    \hline
     744    EXT\_WIDTH\_MAJ & 2+ & F32 & % The name is weird but it's because of normalization
     745    Length of trail & pixels \\  % in the IPP: Check if MOPS want to change it
     746    \hline
     747    EXT\_WIDTH\_MIN & 2+ & F32 &  % The name is weird but it's because of normalization
     748    Sigma of trail & pixels \\    % in the IPP: Check if MOPS want to change it
     749    \hline
     750    EXT\_THETA & 2+ & F32 & EXT orientation angle & radians \\
     751    \hline
     752    EXT\_WIDTH\_MAJ\_ERR & 2+ & F32 & EXT width error (major axis) & pixels \\
     753    \hline
     754    EXT\_WIDTH\_MIN\_ERR & 2+ & F32 & EXT width error (minor axis) & pixels \\
     755    \hline
     756    EXT\_THETA\_ERR & 2+ & F32 & EXT orientation angle (error) & radians \\
     757    \hline
     758    RA\_EXT & 3+ & F32 & Fitted centroid RA & degrees \\
     759    \hline
     760    RA\_EXT\_SIGMA & 3+ & F32 & Fitted RA sigma & degrees? \\
     761    \hline
     762    DEC\_EXT & 3+ & F32 & Fitted centroid DEC & degrees \\
     763    \hline
     764    DEC\_EXT\_SIGMA & 3+ & F32 & Fitted DEC sigma & degrees? \\
     765    \hline
     766    POSANG\_EXT & 3+ & F32 & Fitted position angle & degrees \\
     767    \hline
     768    PLTSCALE\_EXT & 3+ & F32 & Plate scale at centroid & arcsec/pixel \\
     769    \hline
     770    EXT\_FLUX & 3+ & F32 & Fitted flux & ADU \\
     771    \hline
     772    EXT\_CAL\_MAG & 3+ & F32 & Calibrated magnitude & N/A \\
     773    \hline
     774    EXT\_MAG\_SIG & 3+ & F32 & Sigma of calibrated magnitude & N/A \\
     775    \hline
     776    EXT\_CHISQ & 3+ & F32 & $\chi^2$ of fit & N/A \\
     777    \hline
     778    EXT\_NDOF & 3+ & S32 & Fit degrees of freedom & N/A \\
     779    \hline
     780  \end{longtable}
     781\end{center}
    646782
    647783\subsection{MOPS Detectability Query}
     
    764900
    765901\pagebreak
     902
     903\section{Changes}
     904
     905\subsection{Changes in PS1\_DV3 from PS1\_DV2}
     906
     907\subsubsection{New Keywords}
     908
     909\paragraph{Per Exposure (in FITS header)}
     910\begin{itemize}
     911\item CMMTOBS
     912\item OBS\_MODE
     913\item DIFFTYPE
     914\item SKY
     915\item SHUTOUTC
     916\end{itemize}
     917
     918\paragraph{Per Detection (in FITS extension)}
     919\begin{itemize}
     920\item RA\_EXT
     921\item RA\_EXT\_SIGMA
     922\item DEC\_EXT
     923\item DEC\_EXT\_SIGMA
     924\item POSANG\_EXT
     925\item PLTSCALE\_EXT
     926\item EXT\_FLUX
     927\item EXT\_CAL\_MAG
     928\item EXT\_MAG\_SIG
     929\item EXT\_CHISQ
     930\item EXT\_NDOF
     931\end{itemize}
     932
     933\subsubsection{Removed Keywords}
     934
     935None
     936
     937\subsubsection{Datatypes}
     938\begin{itemize}
     939\item NPARAMS is now a S32 and no more a F32.
     940\end{itemize}
     941
     942\subsubsection{Known Bugs and Associated Fix}
     943
     944\begin{itemize}
     945\item None
     946\end{itemize}
     947
     948\newpage
     949
    766950\appendix
    767951
    768 \section{Appendix}
     952\section{The IPP Data Workflow}
     953
     954The objective of this section is to provide some details about the IPP
     955Workflow. It is intentionnally MOPS oriented in the sense that some
     956details have been voluntarily omitted.
     957
     958\begin{minipage}{0.65\linewidth}
     959  The IPP receives "exposures" from the telescope. An "exposure" is an
     960  image of 60 OTAs (see figure~\ref{fig-exposure-otas}) taken by the
     961  GPC1 camera and its associated metadata. All science exposures
     962  (which are interesting MOPS) are processed in the IPP according to
     963  the following stages.
     964
     965  The first stage is the CHIP stage. Detrending and objects detections
     966  are performed on each OTA at this stage.
     967
     968  The second stage is the CAMERA stage. Calibration and astrometry are
     969  performed on the exposure at this stage.
     970
     971  The third stage is the WARP stage\footnote{For simplicity and since
     972    nothing is performed in this stage, the FAKE stage has been
     973    ommitted.}. The image pixels are warped to fit a predefined sky
     974  tessellation (it is actually a covering). Cells of the tessellation
     975  are called \emph{skycells} and each pixel in a skycell has a size of
     976  $0.25" \times 0.25"$. The skycell is oriented so that increasing X
     977  (wrt Y) pixel coordinate corresponds to a move toward the West (wrt
     978  North).
     979
     980  The fourth stage is the DIFF stage. The difference between two
     981  skycells having the same spatial coordinates but being distant in
     982  time (by less than the TTI) is computed. To avoid deconvolution,
     983  the image difference can be performed in bothways When the newer
     984  image is diffed with the older image, the difference image is called
     985  the \emph{positive} image. When the older image is diffed with the
     986  newer image, the difference image is called the \emph{negative}
     987  image.
     988
     989  Another stage is executed in parallel of the fourth stage: the STACK
     990  stage. Its products (the stacks, that is, "average" observations in
     991  a skycell) can be used in the DIFF stage to compute WARP-STACK
     992  differences (e.g for MD observations). STACK-WARP are not computed
     993  (so far).
     994
     995  The fifth and last stage is the PPMOPS stage. The exposure is
     996  rebuilt from the differences obtained in each skycell of the DIFF
     997  stage. For detections falling in areas covered by two or more
     998  skycells, the data of the detection being the nearest to a skycell
     999  center are taken.
     1000\end{minipage}\hfill\begin{minipage}{0.3\linewidth}
     1001  \begin{center}
     1002    \includegraphics[width=\linewidth]{figures/ipp_workflow.eps}
     1003    \captionof{figure}{Caption for figure}
     1004    \label{fig-ipp-workflow}
     1005  \end{center}
     1006\end{minipage}
     1007
     1008\begin{center}
     1009  \includegraphics[width=4in]{figures/exposure_ota.eps}
     1010  \captionof{figure}{Exposure / OTA TODO + Move somewhere else}
     1011  \label{fig-exposure-otas}
     1012\end{center}
     1013
     1014%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1015\newpage
     1016\section{\texttt{ppMops} Implementation Details}
     1017\label{sec-ppmops}
     1018
     1019\subsection{Source Code}
     1020\label{sec-ppmops-sourcecode}
     1021
     1022The \texttt{ppMops} source code can be found at
     1023\url{https://svn.pan-starrs.ifa.hawaii.edu/repo/ipp/trunk/ppTranslate}. The
     1024SVN revision of the analyzed code as well as the corresponding
     1025software version depends on the version of this document and can be
     1026found in the History subsection (see subsection
     1027\ref{sec-ppmops-sourcecodehistory}).
     1028
     1029\subsection{Source Code Analysis History}
     1030\label{sec-ppmops-sourcecodehistory}
     1031\begin{tabular}{|c|c|c|p{2in}|c|c|}
     1032  \hline
     1033  \parbox{.5in}{Doc Version} & Date & Author & Description & SVN Rev. & \parbox{.5in}{Software Version}\\
     1034  \hline
     1035  \hline
     1036  --- & 2012-09-14 & SC & Creation & 34439 & 3\footnotemark{}\\
     1037  \hline
     1038\end{tabular}\footnotetext{Modified version 3}
     1039
     1040\subsection{Main}
     1041Source code: \texttt{src/ppMops.c}.
     1042
     1043\texttt{ppMops} can be run on the command line independently from the
     1044IPP framework. It is functionnally made of four parts:
     1045\begin{enumerate}
     1046\item Analyzing the command-line arguments (see subsection
     1047  \ref{sec-implementation-args});
     1048\item Reading the detections from the input diff files and the exposure
     1049  parameters (see subsection \ref{sec-implementation-read});
     1050\item Removing the duplicated detections (see subsection
     1051  \ref{sec-implementation-merge});
     1052\item Writing the products (see subsection
     1053  \ref{sec-implementation-write});
     1054\end{enumerate}
     1055
     1056\subsection{Command-Line Arguments Analysis}
     1057\label{sec-implementation-args}
     1058
     1059Source code: \texttt{src/ppMopsArguments.c}.
     1060
     1061\subsubsection{Parameters}
     1062
     1063There are only two mandatory arguments:
     1064\begin{enumerate}
     1065\item The first argument is a filename. The associated file contains
     1066  the list of the names of all the diff files that will be used as
     1067  input. For simplicity, we will identify that list by:
     1068  \texttt{list\_of\_diffs\_inputs}.
     1069\item The second argument is the name of the output file. We will call
     1070  it \texttt{output\_file\_name}.
     1071\end{enumerate}
     1072
     1073The following parameters can be taken from the command line arguments
     1074options (if they are provided, otherwise they take the default value):
     1075\begin{itemize}
     1076\item \texttt{exp\_name}: exposure name (default: NULL);
     1077\item \texttt{exp\_id}: Exposure identifier (IPP internal; default: 0);
     1078\item \texttt{chip\_id}: Chip stage identifier (IPP internal; default: 0);
     1079\item \texttt{cam\_id}: Camera stage identifier (IPP internal; default: 0);
     1080\item \texttt{fake\_id}: Fake stage identifier (IPP internal; default: 0);
     1081\item \texttt{warp\_id}: Warp stage identifier (IPP internal; default: 0);
     1082\item \texttt{diff\_id}: Diff stage identifier (IPP internal; default: 0);
     1083\item \texttt{inverse}: Inverse subtraction (boolean; default: false);
     1084\item \texttt{zp}: Magnitude zero point (default: NAN);
     1085\item \texttt{zp\_error}: Error in magnitude zero point (default: NAN);
     1086\item \texttt{astrom\_rms}: Astrometric solution RMS (default: NAN);
     1087\item \texttt{version}: CMF file version (default: 0);
     1088\end{itemize}
     1089
     1090\subsubsection{Parameters Values Validation}
     1091\begin{itemize}
     1092\item If the list of input file names is empty, an error is displayed
     1093  and \texttt{ppMops} exits.
     1094\item There is no check on the validity of the different parameters
     1095  (values, files existence...).
     1096\end{itemize}
     1097
     1098\subsection{Reading Detections}
     1099\label{sec-implementation-read}
     1100
     1101Source code: \texttt{src/ppMopsRead.c}.
     1102
     1103Each file from the \texttt{list\_of\_diffs\_inputs} is opened. A
     1104\texttt{ppMopsDetections} object is populated from the data that are
     1105read from that file. The set (namely a \texttt{psArray}) of all the
     1106valid \texttt{ppMopsDetections} objects is the product of this part.
     1107
     1108The data which are extracted from each file are the following:
     1109\begin{itemize}
     1110\item From the header are extracted:
     1111  \begin{itemize}
     1112  \item \texttt{diffSkyfileId}: Its value is
     1113    associated to the keyword \texttt{IMAGEID}. If not present or 0, the
     1114    program exits with an error.
     1115  \item The current diff version is derived from the value associated
     1116    to EXTTYPE. If the \texttt{version} has not already been set, it
     1117    is set to the value which has just been read. If it was set at
     1118    some point (either through the command line, or from a previous
     1119    input), the current diff version value is checked against the
     1120    \texttt{version}. Different values will produce warning messages.
     1121  \item \texttt{raBoresight} is given the value associated to
     1122    \texttt{FPA.RA};
     1123  \item \texttt{decBoresight} is given the value associated to
     1124    \texttt{FPA.DEC};
     1125  \item \texttt{filter} is given the value associated to
     1126    \texttt{FPA.FILTER};
     1127  \item \texttt{airmass} is given the value associated to
     1128    \texttt{AIRMASS};
     1129  \item \texttt{exptime} is given the value associated to
     1130    \texttt{EXPTIME};
     1131  \item \texttt{posangle} is given the value associated to
     1132    \texttt{FPA.POSANGLE};
     1133  \item \texttt{alt} is given the value associated to
     1134    \texttt{FPA.ALT};
     1135  \item \texttt{az} is given the value associated to
     1136    \texttt{FPA.AZ};
     1137  \item \texttt{mjd} is computed from the \texttt{mjdobs} value
     1138    associated to \texttt{MJD-OBS} by: \[\mathtt{mjd} = \mathtt{mjdobs} +
     1139    \frac{\mathtt{exptime}}{2*3600*24}\]
     1140  \item \texttt{seeing} is initialized (note that it is modified in
     1141    the loop over the valid detections) using
     1142    $\mathtt{fwhm}_\mathtt{maj}$ (wrt $\mathtt{fwhm}_\mathtt{min}$)
     1143    associated to the keyword \texttt{FWHM\_MAJ} (wrt
     1144    \texttt{FWHM\_MIN});
     1145  \item \texttt{naxis1} is set to the value associated to
     1146    \texttt{IMNAXIS1}, that is the number of columns of the original
     1147    image;
     1148  \item \texttt{naxis2} is set to the value associated to
     1149    \texttt{IMNAXIS2}, that is the number of rows of the original
     1150    image;
     1151  \end{itemize}
     1152\item From the \texttt{SkyChip.psf} extension:
     1153  \begin{itemize}
     1154  \item This extension contains all the detections. One row is
     1155    associated to each detection.
     1156  \item A detection is rejected if at least one of the following
     1157    parameters has an non-finite value: \texttt{x}, \texttt{y},
     1158    \texttt{ra}, \texttt{dec}, \texttt{mag}, \texttt{magErr},
     1159    \texttt{xErr}, \texttt{yErr}, \texttt{scale}, \texttt{angle}.
     1160  \item A detection is rejected if its associated \texttt{flags}
     1161    matches:
     1162    {\small
     1163    \texttt{PM\_SOURCE\_MODE\_FAIL | PM\_SOURCE\_MODE\_BADPSF |
     1164      PM\_SOURCE\_MODE\_SATURATED | PM\_SOURCE\_MODE\_CR\_LIMIT |
     1165      PM\_SOURCE\_MODE\_SKY\_FAILURE}}
     1166  \item \texttt{x} is associated to the \texttt{X\_PSF} keyword;
     1167  \item \texttt{y} is associated to the \texttt{Y\_PSF} keyword;
     1168  \item \texttt{ra} is associated to the \texttt{RA\_PSF} keyword. It
     1169    is converted to radians;
     1170  \item \texttt{dec} is associated to the \texttt{DEC\_PSF} keyword. It
     1171    is converted to radians;
     1172  \item \texttt{mag} is computed from the value associated the
     1173    \texttt{PSF\_INST\_MAG} keyword, namely:
     1174    \[
     1175    \mathtt{mag} = \mathtt{PSF\_INST\_MAG} + \mathtt{zp}
     1176    \]
     1177    where \texttt{zp} is defined in the arguments list (see subsection
     1178    \ref{sec-implementation-args});
     1179  \item \texttt{magErr} is associated to the
     1180    \texttt{PSF\_INST\_MAG\_SIG} keyword;
     1181  \item \texttt{xErr} is associated to the \texttt{X\_PSF\_SIG}
     1182    keyword;
     1183  \item \texttt{yErr} is associated to the \texttt{Y\_PSF\_SIG}
     1184    keyword;
     1185  \item \texttt{scale} is associated to the \texttt{PLTSCALE}
     1186    keyword;
     1187  \item \texttt{angle} is associated to the \texttt{POSANGLE}
     1188    keyword;
     1189  \item \texttt{flags} is associated to the \texttt{FLAGS} keyword;
     1190  \item \texttt{raErr} is defined by:
     1191    \[
     1192    \mathtt{raErr} = \frac{\mathtt{scale}}{3600}
     1193    \sqrt{\cos^2(\mathtt{angle}) \mathtt{xErr}^2 +
     1194      \sin^2(\mathtt{angle}) \mathtt{yErr}^2}
     1195    \]
     1196  \item \texttt{decErr} is defined by:
     1197    \[
     1198    \mathtt{decErr} = \frac{\mathtt{scale}}{3600}
     1199    \sqrt{\sin^2(\mathtt{angle}) \mathtt{xErr}^2 +
     1200      \cos^2(\mathtt{angle}) \mathtt{yErr}^2}
     1201    \]
     1202  \end{itemize}
     1203\item \texttt{seeing} is defined as the product of the mean of
     1204  $\mathtt{fwhm}_\mathtt{maj}$ and $\mathtt{fwhm}_\mathtt{min}$ by the
     1205  mean of the \texttt{scale} values for valid detections, that is:
     1206  \[
     1207  \mathtt{seeing} = \frac{\mathtt{fwhm}_\mathtt{maj} +
     1208    \mathtt{fwhm}_\mathtt{min}}{2} \times \frac{\sum_{\mathtt{valid\
     1209        detections}}(scale)}{\#(\mathtt{valid\ detections})}
     1210  \]
     1211\item The number of valid detections is also kept (but not used).
     1212\item For each row of the \texttt{SkyChip.xfit} extension:
     1213  \begin{itemize}
     1214  \item This extension contains only a subset of the detections. Each
     1215    row contains the index of the current detection which is the value
     1216    associated to the keyword \texttt{IPP\_IDET};
     1217  \item Note that detections parameters whose index could not be found
     1218    in the \texttt{SkyChip.xfit} extension are set to NaN.
     1219  \item The following columns are extracted \texttt{X\_EXT},
     1220    \texttt{Y\_EXT}, \texttt{X\_EXT\_SIG}, \texttt{Y\_EXT\_SIG},
     1221    \texttt{EXT\_INST\_MAG}, \texttt{EXT\_INST\_MAG\_SIG},
     1222    \texttt{NPARAMS}, \texttt{EXT\_WIDTH\_MAJ}, \texttt{EXT\_WIDTH\_MIN},
     1223    \texttt{EXT\_THETA}, \texttt{EXT\_WIDTH\_MAJ\_ERR},
     1224    \texttt{EXT\_WIDTH\_MIN\_ERR}, and \texttt{EXT\_THETA\_ERR}. No check is
     1225    performed on them at this stage.
     1226  \end{itemize}
     1227\end{itemize}
     1228
     1229At the end of this stage, all input files have been used to populate a
     1230collection of sets of detections. Let us call that collection $({\cal
     1231  D}_{i})_{i \in \{1..n\}}$. Each of those sets contains data read
     1232from one file and it is important to note that only a few checks have
     1233been performed on the data (more precisely, only non-masked detections
     1234which have defined values have been inserted). The following cases can
     1235therefore happen: (1) Any ${\cal D}_i$ can be "empty", that is, does
     1236not contain any valdiated detection; (2) Some parameters like
     1237\texttt{seeing} can have an undefined value (e.g. \texttt{NaN}).
     1238
     1239\subsection{Merging Detections}
     1240\label{sec-implementation-merge}
     1241
     1242Source code: \texttt{src/ppMopsMerge.c}.
     1243
     1244That part of the code essentially uses a kd-tree implementation to
     1245compare distances between detections. The collection of sets of
     1246detections will be called $({\cal D}_{i})_{i \in \{1..n\}}$ (see
     1247previous section).
     1248
     1249\subsubsection{Checks}
     1250\label{sec-implementation-merge-checks}
     1251
     1252Checks are performed on data that have been extracted from FITS files
     1253headers. Namely, they are:
     1254\begin{itemize}
     1255\item \texttt{raBoresight} constancy across all the detections;
     1256\item \texttt{decBoresight} constancy across all the detections;
     1257\item \texttt{filter} constancy across all the detections;
     1258\item \texttt{airmass} constancy across all the detections;
     1259\item \texttt{exptime} constancy across all the detections;
     1260\item \texttt{posangle} constancy across all the detections;
     1261\item \texttt{alt} constancy across all the detections;
     1262\item \texttt{az} constancy across all the detections;
     1263\item \texttt{mjd} constancy across all the detections;
     1264\end{itemize}
     1265
     1266Any inconsistency displays an error and the program exits.
     1267
     1268\subsubsection{kd-Tree Merging}
     1269\label{sec-implementation-merge-kdtree}
     1270
     1271All valid detections are inserted into a kd-tree (using the
     1272\texttt{psTree} implementation). \texttt{ra} and \texttt{dec} are used
     1273as keys for the nearest neighbor search. An iteration over all valid
     1274detections is then performed.
     1275
     1276The detection in a 1 arcsec neighborhood around the current valid
     1277detection which is the closest to the image center is chosen as the
     1278best candidate for the source. Then, the best of the candidates is
     1279chosen as the source. All other detections are considered duplicates,
     1280and marked as invalid, then removed from the detections set to which
     1281they belong.
     1282
     1283Note that \texttt{numGood} which is supposed to give the number of
     1284valid detections is not updated.
     1285
     1286\subsection{Writing Final Product}
     1287\label{sec-implementation-write}
     1288
     1289Source code: \texttt{src/ppMopsWrite.c}.
     1290
     1291To resolve any ambiguity, we will note the parameter named
     1292\texttt{param} which was built for the set of detections ${\cal
     1293  D}_{i}$ will be denoted by ${\cal D}_{i}(\mathtt{param})$.
     1294
     1295Note that, except for the parameters that have been checked at the
     1296merge stage (see paragraph~\ref{sec-implementation-merge-checks}),
     1297there is no guarantee that ${\cal D}_{i}(\mathtt{param}) = {\cal
     1298  D}_{j}(\mathtt{param})$ when $i \neq j$. There is no guarantee to
     1299that ${\cal D}_{i}(\mathtt{param})$ is defined (in the mathematical
     1300sense), e.g. it could be \texttt{NaN}...
     1301
     1302%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1303\subsubsection{Exposure Parameters: Header Details}
     1304\label{sec-implementation-write-header}
     1305
     1306The first set of detections among the $({\cal D}_{i})_i$ that contains
     1307at least one valid detection is chosen. To fix ideas, let us denote
     1308it by ${\cal D}_{i_0}$.
     1309
     1310The following parameters are written to the product FITS header:
     1311
     1312\begin{itemize}
     1313\item \texttt{SWSOURCE} (Software source): Constructed from the SVN
     1314  repository value. Generated when compiled.
     1315\item \texttt{SWVERSN} (Software version): Constructed from the SVN
     1316  version value. Generated when compiled.
     1317\item \texttt{EXP\_NAME} (Exposure name): Set by \texttt{exp\_name}
     1318  argument value;
     1319\item \texttt{EXP\_ID} (Exposure identifier): Set by \texttt{exp\_id}
     1320  argument value;
     1321\item \texttt{CHIP\_ID} (Chip stage identifier): Set by
     1322  \texttt{chip\_id} argument value;
     1323\item \texttt{CAM\_ID} (Cam stage identifier): Set by \texttt{cam\_id}
     1324  argument value;
     1325\item \texttt{FAKE\_ID} (Fake stage identifier): Set by
     1326  \texttt{fake\_id} argument value;
     1327\item \texttt{WARP\_ID} (Warp stage identifier): Set by
     1328  \texttt{warp\_id} argument value;
     1329\item \texttt{DIFF\_ID} (Diff stage identifier): Set by
     1330  \texttt{diff\_id} argument value;
     1331\item \texttt{DIFF\_POS} (Positive subtraction): Set by
     1332  \texttt{inverse} argument value;
     1333\item \texttt{MJD-OBS} (MJD of exposure midpoint): Set by ${\cal
     1334    D}_{i_0}(\mathtt{mjd})$. Uniqueness guaranteed by
     1335  \ref{sec-implementation-merge-checks};
     1336\item \texttt{RA} (Right Ascension of boresight): Set by ${\cal
     1337    D}_{i_0}(\mathtt{raBoresight})$. Uniqueness guaranteed by
     1338  \ref{sec-implementation-merge-checks};
     1339\item \texttt{DEC} (Declination of boresight): Set by ${\cal
     1340    D}_{i_0}(\mathtt{decBoresight})$. Uniqueness guaranteed by
     1341  \ref{sec-implementation-merge-checks};
     1342\item \texttt{TEL\_ALT} (Telescope altitude): Set by ${\cal
     1343    D}_{i_0}(\mathtt{alt})$. Uniqueness guaranteed by
     1344  \ref{sec-implementation-merge-checks};
     1345\item \texttt{TEL\_AZ} (Telescope azimuth): Set by ${\cal
     1346    D}_{i_0}(\mathtt{az})$. Uniqueness guaranteed by
     1347  \ref{sec-implementation-merge-checks};
     1348\item \texttt{EXPTIME} (Exposure time (sec)): Set by ${\cal
     1349    D}_{i_0}(\mathtt{exptime})$. Uniqueness guaranteed by
     1350  \ref{sec-implementation-merge-checks};
     1351\item \texttt{ROTANGLE} (Rotator position angle): Set by ${\cal
     1352    D}_{i_0}(\mathtt{rotangle})$. Uniqueness guaranteed by
     1353  \ref{sec-implementation-merge-checks};
     1354\item \texttt{FILTER} (Filter name): Set by ${\cal
     1355    D}_{i_0}(\mathtt{filter})$. Uniqueness guaranteed by
     1356  \ref{sec-implementation-merge-checks};
     1357\item \texttt{AIRMASS} (Airmass of exposure): Set by ${\cal
     1358    D}_{i_0}(\mathtt{airmass})$. Uniqueness guaranteed by
     1359  \ref{sec-implementation-merge-checks};
     1360\item \texttt{SEEING} (Mean seeing): Set by the median of defined (not
     1361  \texttt{NaN}, not \texttt{Infinity}) of $({\cal
     1362    D}_{i}(\mathtt{seeing}))_i$;
     1363  \commentFromSC{2012-09-18}{Check if it is what we
     1364    really expect. Take the example of 3 set of detections for which
     1365    \texttt{seeing} is defined, assuming the first one contains 1000
     1366    detections with a \texttt{seeing} of 1.0, the second one contains
     1367    10 detections with a \texttt{seeing} of 2.0, the third one 10
     1368    detections with a \texttt{seeing} of 3.0. Do we really want the
     1369    global \texttt{seeing} value to be 2.0?}{}
     1370\item \texttt{OBSCODE} (IAU Observatory code): Hard-coded value
     1371  defined in \texttt{src/ppMops.h} (value \texttt{F51});
     1372  \commentFromSC{2012-09-18}{I'm surprised that it's defined locally
     1373    and not in some high-level project header file}{}
     1374\item \texttt{MAGZP} (Magnitude zero point): Set by \texttt{zp}
     1375  argument value;
     1376\item \texttt{MAGZPERR} (Error in magnitude zero point): Set by
     1377  \texttt{zp\_error} argument value;
     1378\item \texttt{ASTRORMS} (Error in magnitude zero point): Set by
     1379  \texttt{astrom\_rms} argument value;
     1380\item \texttt{CMFVERSION} (CMF version): Set by \texttt{version}
     1381  argument value but possibly modified by first \texttt{EXTTYPE}
     1382  value;
     1383  \commentFromSC{2012-09-18}{Depends on the order of the input FITS
     1384    file and their \texttt{EXTTYPE} value (e.g. if \texttt{-version 0}
     1385    is used as argument and two files are used, one with
     1386    \texttt{EXTTYPE} of 1, the other with \texttt{EXTTYPE} of
     1387    2). However we do not expect to have different values for
     1388    \texttt{EXTTYPE}, do we?}{}
     1389\end{itemize}
     1390
     1391%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1392\subsubsection{Detection Parameters: Extension Details}
     1393\label{sec-implementation-write-detection}
     1394
     1395If no detection is present in any detections set, an extension is
     1396still created and contains exactly one row of undefined values
     1397(\texttt{NaN} for floating-point data, 0 for integral types).
     1398
     1399To resolve any ambiguity, we will note the parameter named
     1400\texttt{param} which was built for the detection $j$ in the set of
     1401detections ${\cal D}_{i}$ will be denoted by ${\cal
     1402  D}_{ij}(\mathtt{param})$ where \texttt{param} was defined in
     1403paragraph~\ref{sec-implementation-read}. When the \texttt{param}
     1404parameter is the exact copy of the value associated to the keyword
     1405\texttt{INPUT\_KEY}, we will write it as ${\cal
     1406  D}_{ij}(\mathtt{INPUT\_KEY})$ (note the use of the uppercase
     1407letters).
     1408
     1409For each detection $j$ in each detections set ${\cal D}_{i}$, the
     1410following products are written to the output FITS file:
     1411\begin{itemize}
     1412\item \texttt{RA} associated to ${\cal D}_{ij}(\mathtt{ra})$ (which is
     1413  identical to ${\cal D}_{ij}(\mathtt{RA\_PSF})$);
     1414\item \texttt{RA\_ERR} associated to ${\cal D}_{ij}(\mathtt{raErr})$;
     1415\item \texttt{DEC} associated to ${\cal D}_{ij}(\mathtt{dec})$ (which
     1416  is identical to ${\cal D}_{ij}(\mathtt{DEC\_PSF})$);
     1417\item \texttt{DEC\_ERR} associated to ${\cal
     1418    D}_{ij}(\mathtt{decErr})$;
     1419\item \texttt{MAG} associated to ${\cal D}_{ij}(\mathtt{mag})$;
     1420\item \texttt{MAG\_ERR} associated to ${\cal D}_{ij}(\mathtt{magErr})$
     1421  (which is identical to ${\cal
     1422    D}_{ij}(\mathtt{PSF\_INST\_MAG\_SIG})$);
     1423\item \texttt{PSF\_CHI2} associated to ${\cal
     1424    D}_{ij}(\mathtt{PSF\_CHISQ})$;
     1425\item \texttt{PSF\_DOF} associated to ${\cal
     1426    D}_{ij}(\mathtt{PSF\_NDOF})$;
     1427\item \texttt{CR\_SIGNIFICANCE} associated to ${\cal
     1428    D}_{ij}(\mathtt{CR\_NSIGMA})$;
     1429\item \texttt{EXT\_SIGNIFICANCE} associated to ${\cal
     1430    D}_{ij}(\mathtt{EXT\_NSIGMA})$;
     1431\item \texttt{PSF\_MAJOR} associated to ${\cal
     1432    D}_{ij}(\mathtt{PSF\_MAJOR})$;
     1433\item \texttt{PSF\_MINOR} associated to ${\cal
     1434    D}_{ij}(\mathtt{PSF\_MINOR})$;
     1435\item \texttt{PSF\_THETA} associated to ${\cal
     1436    D}_{ij}(\mathtt{PSF\_THETA})$;
     1437\item \texttt{PSF\_QUALITY} associated to ${\cal
     1438    D}_{ij}(\mathtt{PSF\_QF})$;
     1439\item \texttt{PSF\_NPIX} associated to ${\cal
     1440    D}_{ij}(\mathtt{PSF\_NPIX})$;
     1441\item \texttt{MOMENTS\_XX} associated to ${\cal
     1442    D}_{ij}(\mathtt{MOMENTS\_XX})$;
     1443\item \texttt{MOMENTS\_XY} associated to ${\cal
     1444    D}_{ij}(\mathtt{MOMENTS\_XY})$;
     1445\item \texttt{MOMENTS\_YY} associated to ${\cal
     1446    D}_{ij}(\mathtt{MOMENTS\_YY})$;
     1447\item \texttt{N\_POS} associated to ${\cal
     1448    D}_{ij}(\mathtt{DIFF\_NPOS})$;
     1449\item \texttt{F\_POS} associated to ${\cal
     1450    D}_{ij}(\mathtt{DIFF\_FRATIO})$;
     1451\item \texttt{RATIO\_BAD} associated to ${\cal
     1452    D}_{ij}(\mathtt{DIFF\_NRATIO\_BAD})$;
     1453\item \texttt{RATIO\_MASK} associated to ${\cal
     1454    D}_{ij}(\mathtt{DIFF\_NRATIO\_MASK})$;
     1455\item \texttt{RATIO\_ALL} associated to ${\cal
     1456    D}_{ij}(\mathtt{DIFF\_NRATIO\_ALL})$;
     1457\item \texttt{FLAGS} associated to ${\cal D}_{ij}(\mathtt{FLAGS})$;
     1458\item \texttt{DIFF\_SKYFILE\_ID} associated to ${\cal
     1459    D}_{i}(\mathtt{diffSkyfileId})$ (that is, the \texttt{diff\_id} of
     1460  the file which was used to compute the difference);
     1461\item \texttt{IPP\_IDET} associated to ${\cal
     1462    D}_{ij}(\mathtt{IPP\_DET})$ (since it is the position of the
     1463  detection if the $i$th diff file, it is not very useful. However
     1464  gaps in the numbering show that detections have been removed.
     1465\item \texttt{PSF\_INST\_FLUX} associated to ${\cal
     1466    D}_{ij}(\mathtt{PSF\_INST\_FLUX})$;
     1467\item \texttt{PSF\_INST\_FLUX\_SIG} associated to ${\cal
     1468    D}_{ij}(\mathtt{PSF\_INST\_FLUX\_SIG})$;
     1469\item \texttt{AP\_MAG} associated to ${\cal D}_{ij}(\mathtt{AP\_MAG})$;
     1470\item \texttt{AP\_MAG\_RAW} associated to ${\cal
     1471    D}_{ij}(\mathtt{AP\_MAG\_RAW})$;
     1472\item \texttt{AP\_MAG\_RADIUS} associated to ${\cal
     1473    D}_{ij}(\mathtt{AP\_MAG\_RADIUS})$;
     1474\item \texttt{AP\_FLUX} associated to ${\cal D}_{ij}(\mathtt{AP\_FLUX})$;
     1475\item \texttt{AP\_FLUX\_SIG} associated to ${\cal
     1476    D}_{ij}(\mathtt{AP\_FLUX\_SIG})$;
     1477\item \texttt{PEAK\_FLUX\_AS\_MAG} associated to ${\cal
     1478    D}_{ij}(\mathtt{PEAK\_FLUX\_AS\_MAG})$;
     1479\item \texttt{CAL\_PSF\_MAG} associated to ${\cal
     1480    D}_{ij}(\mathtt{CAL\_PSF\_MAG})$;
     1481\item \texttt{CAL\_PSF\_MAG\_SIG} associated to ${\cal
     1482    D}_{ij}(\mathtt{CAL\_PSF\_MAG\_SIG})$;
     1483\item \texttt{SKY} associated to ${\cal D}_{ij}(\mathtt{SKY})$;
     1484\item \texttt{SKY\_SIGMA} associated to ${\cal D}_{ij}(\mathtt{SKY\_SIGMA})$;
     1485\item \texttt{PSF\_QF\_PERFECT} associated to ${\cal
     1486    D}_{ij}(\mathtt{PSF\_QF\_PERFECT})$;
     1487\item \texttt{MOMENTS\_R1} associated to ${\cal D}_{ij}(\mathtt{MOMENTS\_R1})$;
     1488\item \texttt{MOMENTS\_RH} associated to ${\cal D}_{ij}(\mathtt{MOMENTS\_RH})$;
     1489\item \texttt{KRON\_FLUX} associated to ${\cal D}_{ij}(\mathtt{KRON\_FLUX})$;
     1490\item \texttt{KRON\_FLUX\_ERR} associated to ${\cal
     1491    D}_{ij}(\mathtt{KRON\_FLUX\_ERR})$;
     1492\item \texttt{KRON\_FLUX\_INNER} associated to ${\cal
     1493    D}_{ij}(\mathtt{KRON\_FLUX\_INNER})$;
     1494\item \texttt{KRON\_FLUX\_OUTER} associated to ${\cal
     1495    D}_{ij}(\mathtt{KRON\_FLUX\_OUTER})$;
     1496\item \texttt{DIFF\_R\_P} associated to ${\cal
     1497    D}_{ij}(\mathtt{DIFF\_R\_P})$;
     1498\item \texttt{DIFF\_SN\_P} associated to ${\cal
     1499    D}_{ij}(\mathtt{DIFF\_SN\_P})$;
     1500\item \texttt{DIFF\_R\_M} associated to ${\cal
     1501    D}_{ij}(\mathtt{DIFF\_R\_M})$;
     1502\item \texttt{DIFF\_SN\_M} associated to ${\cal
     1503    D}_{ij}(\mathtt{DIFF\_SN\_M})$;
     1504\item \texttt{FLAGS2} associated to ${\cal D}_{ij}(\mathtt{FLAGS2})$;
     1505\item \texttt{N\_FRAMES} associated to ${\cal
     1506    D}_{ij}(\mathtt{N\_FRAMES})$;
     1507\item \texttt{PADDING} associated to ${\cal
     1508    D}_{ij}(\mathtt{PADDING})$;
     1509\item \texttt{X\_EXT} associated to ${\cal D}_{ij}(\mathtt{X\_EXT})$;
     1510\item \texttt{Y\_EXT} associated to ${\cal D}_{ij}(\mathtt{Y\_EXT})$;
     1511\item \texttt{X\_EXT\_SIG} associated to ${\cal
     1512    D}_{ij}(\mathtt{X\_EXT\_SIG})$;
     1513\item \texttt{Y\_EXT\_SIG} associated to ${\cal
     1514    D}_{ij}(\mathtt{Y\_EXT\_SIG})$;
     1515\item \texttt{EXT\_INST\_MAG} associated to ${\cal
     1516    D}_{ij}(\mathtt{EXT\_INST\_MAG})$;
     1517\item \texttt{EXT\_INST\_MAG\_SIG} associated to ${\cal
     1518    D}_{ij}(\mathtt{EXT\_INST\_MAG\_SIG})$;
     1519\item \texttt{NPARAMS} associated to ${\cal
     1520    D}_{ij}(\mathtt{NPARAMS})$;
     1521\item \texttt{EXT\_WIDTH\_MAJ} associated to ${\cal
     1522    D}_{ij}(\mathtt{EXT\_WIDTH\_MAJ})$;
     1523\item \texttt{EXT\_WIDTH\_MIN} associated to ${\cal
     1524    D}_{ij}(\mathtt{EXT\_WIDTH\_MIN})$;
     1525\item \texttt{EXT\_THETA} associated to ${\cal
     1526    D}_{ij}(\mathtt{EXT\_THETA})$;
     1527\item \texttt{EXT\_WIDTH\_MAJ\_ERR} associated to ${\cal
     1528    D}_{ij}(\mathtt{EXT\_WIDTH\_MAJ\_ERR})$;
     1529\item \texttt{EXT\_WIDTH\_MIN\_ERR} associated to ${\cal
     1530    D}_{ij}(\mathtt{EXT\_WIDTH\_MIN\_ERR})$;
     1531\item \texttt{EXT\_THETA\_ERR} associated to ${\cal
     1532    D}_{ij}(\mathtt{EXT\_THETA\_ERR})$;
     1533\end{itemize}
     1534
     1535\subsection{Testing}
     1536\label{sec-implementation-test}
     1537
     1538No test data have been provided.
     1539
     1540\commentFromSC{2012-09-18}{No data exists to test the software. It
     1541  would be good to make sure that the products are consistent at least
     1542  (1) From one software release to another; (2) From one software
     1543  execution to another; (3) To check if the product depends one the
     1544  order in which the input data are ingested and processed. Stress
     1545  tests could also be imagined, e.g. involving large data sets}{ }
     1546
     1547%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1548\newpage
     1549\section{Obsolete Stuff?}
     1550
     1551TODO (SC): The following stuff seems obsolete. Tell me if I can remove it.
    7691552
    7701553\subsection{IPP to MOPS}
     
    7971580\hline
    7981581Detectability Query         & \code{MOPS_DETECTABILITY_QUERY} & table of detectability query tuples (RA, Dec, FPA) \\
    799 \end{tabular}
    800 \end{center}
    801 \end{table}
    802 
    803 \subsection{Acronyms}
    804 
    805 \begin{table}[htbp]
    806 \begin{center}
    807 \small
    808 \caption{Acronyms used in this document\label{table-acronyms}}
    809 \begin{tabular}{ll}
    810 \hline
    811 \hline
    812 {\bf Acronym}            & {\bf Definition} \\
    813 \hline
    814 MOPS     & Pan-STARRS Moving Object Processing System \\
    815 IPP      & Pan-STARRS Image Processing Pipeline \\
    816 FPA      & Focal plane array \\
    817 MPC      & Center for Astrophysics Minor Planet Center \\
    818 \hline
    8191582\end{tabular}
    8201583\end{center}
     
    8411604\end{itemize}
    8421605
    843 \subsection{Example}
    844 \label{sec-example}
    845 
    846 \begin{verbatim}
    847 XTENSION= 'BINTABLE'           / binary table extension
    848 BITPIX  =                    8 / 8-bit bytes
    849 NAXIS   =                    2 / 2-dimensional binary table
    850 NAXIS1  =                  120 / width of table in bytes
    851 NAXIS2  =                42032 / number of rows in table
    852 PCOUNT  =                    0 / size of special data area
    853 GCOUNT  =                    1 / one data group (required keyword)
    854 TFIELDS =                   25 / number of fields in each row
    855 TTYPE1  = 'RA      '           / label for field   1
    856 TFORM1  = '1D      '           / data format of field: 8-byte DOUBLE
    857 TTYPE2  = 'RA_ERR  '           / label for field   2
    858 TFORM2  = '1D      '           / data format of field: 8-byte DOUBLE
    859 TTYPE3  = 'DEC     '           / label for field   3
    860 TFORM3  = '1D      '           / data format of field: 8-byte DOUBLE
    861 TTYPE4  = 'DEC_ERR '           / label for field   4
    862 TFORM4  = '1D      '           / data format of field: 8-byte DOUBLE
    863 TTYPE5  = 'MAG     '           / label for field   5
    864 TFORM5  = '1E      '           / data format of field: 4-byte REAL
    865 TTYPE6  = 'MAG_ERR '           / label for field   6
    866 TFORM6  = '1E      '           / data format of field: 4-byte REAL
    867 TTYPE7  = 'PSF_CHI2'           / label for field   7
    868 TFORM7  = '1E      '           / data format of field: 4-byte REAL
    869 TTYPE8  = 'PSF_DOF '           / label for field   8
    870 TFORM8  = '1J      '           / data format of field: 4-byte INTEGER
    871 TTYPE9  = 'CR_SIGNIFICANCE'    / label for field   9
    872 TFORM9  = '1E      '           / data format of field: 4-byte REAL
    873 TTYPE10 = 'EXT_SIGNIFICANCE'   / label for field  10
    874 TFORM10 = '1E      '           / data format of field: 4-byte REAL
    875 TTYPE11 = 'PSF_MAJOR'          / label for field  11
    876 TFORM11 = '1E      '           / data format of field: 4-byte REAL
    877 TTYPE12 = 'PSF_MINOR'          / label for field  12
    878 TFORM12 = '1E      '           / data format of field: 4-byte REAL
    879 TTYPE13 = 'PSF_THETA'          / label for field  13
    880 TFORM13 = '1E      '           / data format of field: 4-byte REAL
    881 TTYPE14 = 'PSF_QUALITY'        / label for field  14
    882 TFORM14 = '1E      '           / data format of field: 4-byte REAL
    883 TTYPE15 = 'PSF_NPIX'           / label for field  15
    884 TFORM15 = '1J      '           / data format of field: 4-byte INTEGER
    885 TTYPE16 = 'MOMENTS_XX'         / label for field  16
    886 TFORM16 = '1E      '           / data format of field: 4-byte REAL
    887 TTYPE17 = 'MOMENTS_XY'         / label for field  17
    888 TFORM17 = '1E      '           / data format of field: 4-byte REAL
    889 TTYPE18 = 'MOMENTS_YY'         / label for field  18
    890 TFORM18 = '1E      '           / data format of field: 4-byte REAL
    891 TTYPE19 = 'N_POS   '           / label for field  19
    892 TFORM19 = '1J      '           / data format of field: 4-byte INTEGER
    893 TTYPE20 = 'F_POS   '           / label for field  20
    894 TFORM20 = '1E      '           / data format of field: 4-byte REAL
    895 TTYPE21 = 'RATIO_BAD'          / label for field  21
    896 TFORM21 = '1E      '           / data format of field: 4-byte REAL
    897 TTYPE22 = 'RATIO_MASK'         / label for field  22
    898 TFORM22 = '1E      '           / data format of field: 4-byte REAL
    899 TTYPE23 = 'RATIO_ALL'          / label for field  23
    900 TFORM23 = '1E      '           / data format of field: 4-byte REAL
    901 TTYPE24 = 'FLAGS   '           / label for field  24
    902 TFORM24 = '1J      '           / data format of field: 4-byte INTEGER
    903 TZERO24 =           2147483648 / offset for unsigned integers
    904 TSCAL24 =                    1 / data are not scaled
    905 TTYPE25 = 'DIFF_SKYFILE_ID'    / label for field  25
    906 TFORM25 = '1K      '           / data format of field: 8-byte INTEGER
    907 SWSOURCE= '60eb6cdc-a59c-4636-a4e0-dba66a9721fd' / Software source
    908 SWVERSN = 'branches/pap_mops/ppMops@25227' / Software version
    909 HISTORY ppMops at 2009-09-02T03:48:46.695783
    910 HISTORY psLib version: branches/pap_mops/psLib@25227
    911 HISTORY psLib source: 60eb6cdc-a59c-4636-a4e0-dba66a9721fd
    912 HISTORY ppMops version: branches/pap_mops/ppMops@25227
    913 HISTORY ppMops source: 60eb6cdc-a59c-4636-a4e0-dba66a9721fd
    914 EXP_NAME= 'o4995g0129o'        / Exposure name
    915 EXP_ID  =                77164 / Exposure identifier
    916 CHIP_ID =                24019 / Chip stage identifier
    917 CAM_ID  =                17726 / Cam stage identifier
    918 FAKE_ID =                10227 / Fake stage identifier
    919 WARP_ID =                 8842 / Warp stage identifier
    920 DIFF_ID =                19219 / Diff stage identifier
    921 DIFF_POS=                    F / Positive subtraction?
    922 MJD-OBS =     54995.4740598313 / MJD of exposure midpoint
    923 RA      = '18:25:01.988'       / Right Ascension of boresight
    924 DEC     = '-17:20:40.069'      / Declination of boresight
    925 TEL_ALT =            51.951873 / Telescope altitude
    926 TEL_AZ  =           179.483883 / Telescope azimuth
    927 EXPTIME =                  38. / Exposure time (sec)
    928 ROTANGLE=             333.1039 / Rotator position angle
    929 FILTER  = 'r.00000 '           / Filter name
    930 AIRMASS =                1.269 / Airmass of exposure
    931 OBSCODE = 'F51     '           / IAU Observatory code
    932 SEEING  =             1.678401 / Mean seeing
    933 MAGZP   =             28.65226 / Magnitude zero point
    934 MAGZPERR=             0.353063 / Error in magnitude zero point
    935 ASTRORMS=            0.3111496 / RMS of astrometric fit
    936 EXTNAME = 'MOPS_TRANSIENT_DETECTIONS'
    937 \end{verbatim}
    938 
    939 
    9401606\end{document}
    9411607
Note: See TracChangeset for help on using the changeset viewer.