- Timestamp:
- Nov 27, 2012, 11:47:39 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ppTranslate/documentation/ICD/PSDC-940-005.tex
r34696 r34712 9 9 \newcommand{\outformatversion}{% 10 10 \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}} 11 23 12 24 % basic document variables … … 1000 1012 \end{center} 1001 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 1022 The \texttt{ppMops} source code can be found at 1023 \url{https://svn.pan-starrs.ifa.hawaii.edu/repo/ipp/trunk/ppTranslate}. The 1024 SVN revision of the analyzed code as well as the corresponding 1025 software version depends on the version of this document and can be 1026 found 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} 1041 Source code: \texttt{src/ppMops.c}. 1042 1043 \texttt{ppMops} can be run on the command line independently from the 1044 IPP 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 1059 Source code: \texttt{src/ppMopsArguments.c}. 1060 1061 \subsubsection{Parameters} 1062 1063 There 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 1073 The following parameters can be taken from the command line arguments 1074 options (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 1101 Source code: \texttt{src/ppMopsRead.c}. 1102 1103 Each file from the \texttt{list\_of\_diffs\_inputs} is opened. A 1104 \texttt{ppMopsDetections} object is populated from the data that are 1105 read from that file. The set (namely a \texttt{psArray}) of all the 1106 valid \texttt{ppMopsDetections} objects is the product of this part. 1107 1108 The 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 1229 At the end of this stage, all input files have been used to populate a 1230 collection of sets of detections. Let us call that collection $({\cal 1231 D}_{i})_{i \in \{1..n\}}$. Each of those sets contains data read 1232 from one file and it is important to note that only a few checks have 1233 been performed on the data (more precisely, only non-masked detections 1234 which have defined values have been inserted). The following cases can 1235 therefore happen: (1) Any ${\cal D}_i$ can be "empty", that is, does 1236 not 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 1242 Source code: \texttt{src/ppMopsMerge.c}. 1243 1244 That part of the code essentially uses a kd-tree implementation to 1245 compare distances between detections. The collection of sets of 1246 detections will be called $({\cal D}_{i})_{i \in \{1..n\}}$ (see 1247 previous section). 1248 1249 \subsubsection{Checks} 1250 \label{sec-implementation-merge-checks} 1251 1252 Checks are performed on data that have been extracted from FITS files 1253 headers. 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 1266 Any inconsistency displays an error and the program exits. 1267 1268 \subsubsection{kd-Tree Merging} 1269 \label{sec-implementation-merge-kdtree} 1270 1271 All valid detections are inserted into a kd-tree (using the 1272 \texttt{psTree} implementation). \texttt{ra} and \texttt{dec} are used 1273 as keys for the nearest neighbor search. An iteration over all valid 1274 detections is then performed. 1275 1276 The detection in a 1 arcsec neighborhood around the current valid 1277 detection which is the closest to the image center is chosen as the 1278 best candidate for the source. Then, the best of the candidates is 1279 chosen as the source. All other detections are considered duplicates, 1280 and marked as invalid, then removed from the detections set to which 1281 they belong. 1282 1283 Note that \texttt{numGood} which is supposed to give the number of 1284 valid detections is not updated. 1285 1286 \subsection{Writing Final Product} 1287 \label{sec-implementation-write} 1288 1289 Source code: \texttt{src/ppMopsWrite.c}. 1290 1291 To 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 1295 Note that, except for the parameters that have been checked at the 1296 merge stage (see paragraph~\ref{sec-implementation-merge-checks}), 1297 there is no guarantee that ${\cal D}_{i}(\mathtt{param}) = {\cal 1298 D}_{j}(\mathtt{param})$ when $i \neq j$. There is no guarantee to 1299 that ${\cal D}_{i}(\mathtt{param})$ is defined (in the mathematical 1300 sense), e.g. it could be \texttt{NaN}... 1301 1302 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1303 \subsubsection{Exposure Parameters: Header Details} 1304 \label{sec-implementation-write-header} 1305 1306 The first set of detections among the $({\cal D}_{i})_i$ that contains 1307 at least one valid detection is chosen. To fix ideas, let us denote 1308 it by ${\cal D}_{i_0}$. 1309 1310 The 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 1395 If no detection is present in any detections set, an extension is 1396 still created and contains exactly one row of undefined values 1397 (\texttt{NaN} for floating-point data, 0 for integral types). 1398 1399 To resolve any ambiguity, we will note the parameter named 1400 \texttt{param} which was built for the detection $j$ in the set of 1401 detections ${\cal D}_{i}$ will be denoted by ${\cal 1402 D}_{ij}(\mathtt{param})$ where \texttt{param} was defined in 1403 paragraph~\ref{sec-implementation-read}. When the \texttt{param} 1404 parameter 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 1407 letters). 1408 1409 For each detection $j$ in each detections set ${\cal D}_{i}$, the 1410 following 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 1538 No 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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1002 1548 \newpage 1003 1549 \section{Obsolete Stuff?}
Note:
See TracChangeset
for help on using the changeset viewer.
