Changeset 2114
- Timestamp:
- Oct 13, 2004, 7:06:32 PM (22 years ago)
- Location:
- trunk/doc/design
- Files:
-
- 3 edited
-
dataflow.sxd (modified) ( previous)
-
ippSDRS.tex (modified) (11 diffs)
-
ippSRS.tex (modified) (21 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/design/ippSDRS.tex
r1399 r2114 1 %%% $Id: ippSDRS.tex,v 1. 4 2004-08-06 19:06:01 eugene Exp $1 %%% $Id: ippSDRS.tex,v 1.5 2004-10-14 05:06:31 eugene Exp $ 2 2 \documentclass[panstarrs]{panstarrs} 3 3 … … 36 36 \pagenumbering{arabic} 37 37 38 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%39 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%40 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%41 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%42 43 38 \section{Scope} 44 45 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%46 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%47 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%48 39 49 40 \subsection{Identification} … … 54 45 Pan-STARRS 1 (PS-1), the initial demonstration telescope to be 55 46 constructed on Haleakala by Jan 2006. 56 57 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%58 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%59 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%60 47 61 48 \subsection{System Overview} … … 72 59 roughly 2 years. 73 60 74 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%75 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%76 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%77 78 61 \subsection{Document Overview} 79 62 … … 85 68 Open Issues and TBDs in this document are marked \tbd{in bold, red 86 69 type with surrounding square brackets}. 87 88 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%89 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%90 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%91 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%92 70 93 71 \DocumentsInternalSection … … 100 78 \DocumentsEnd 101 79 102 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 103 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 104 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 105 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 106 107 \section{System Design Decisions} 80 \section{Subsystem Overview} 81 82 The Pan-STARRS Image Processing Pipeline (IPP) performs the image 83 processing and data analysis tasks needed to enable the scientific use 84 of the images obtained by the Pan-STARRS telescopes. The primary 85 goals of the IPP are to process the science images from the Pan-STARRS 86 telescopes and make the results available to other systems within 87 Pan-STARRS. It also is responsible for combining all of the science 88 images in a given filter into a single representation of the 89 non-variable component of the night sky called the ``Static Sky''. To 90 achieve these goals, the IPP also performs other analysis functions to 91 generate the calibrations needed in the science image processing and 92 to occasionally use the derived data to generate improved astrometric 93 and photometric reference catalogs. It also provides the 94 infrastructure needed to store the incoming data and the resulting 95 data products. 96 97 The IPP inherits lessons learned, and in some cases code and prototype 98 code, from several other astronomy image analysis systems, including 99 Imcat (Kaiser), the Sloan Digital Sky Survey (REF), the Elixir system 100 (Magnier \& Cuillandre), and Vista (Tonry). Imcat and Vista have a 101 large number of robust image processing functions. SDSS has 102 demonstrated a working analysis pipeline and large-scale database 103 system for a dedicated project. The Elixir system has demonstrated an 104 automatic image processing system and an object database system for 105 operational usage. 106 107 The users of the IPP output are all systems internal to the Pan-STARRS 108 project. They consist of the Transient Science Client, which will 109 receive the detections of transient objects on short time-scales; the 110 Moving Object Processing System (MOPS), which will receive the 111 detections of non-stationary transient objects on day-to-week 112 timescales; and the Published Science Products Subsystem (PSPS), which 113 will receive all data products of interest to the outside world, and 114 will act as the long-term archive and publishing clearinghouse. 115 116 An important operational choice for the IPP is the decision not to 117 attempt to save all raw data. Once the IPP is running in a standard 118 operational mode, data will be processed by the pipeline and deleted 119 when it is no longer needed. Raw images will only be saved for a 120 short period to allow tests and quality assurance, and potentially to 121 allow systems which study transient phenomena to return to recent data 122 for closer inspection. In general, during normal operations, raw 123 science images will be deleted after $\sim$1 month. 124 125 The primary IPP hardware system on which the software operates will 126 not be located at the summit. Instead, because of thermal, power, and 127 space constraints, the hardware will likely be located in a facility 128 off the mountain. A subset of processing tasks may eventually be 129 assigned to machines at the summit if justified by the savings in data 130 transfer time and cost. 131 132 \subsection{Analysis Tasks and Stages} 133 134 Specific programs are required to perform the processing steps listed 135 above. These can be divided into well-defined analysis stages, each 136 of which operates on a particular unit of data, such as a single OTA 137 image or a collection of astronomical objects. Analysis tasks 138 representing the different analysis stages are performed on the IPP 139 computer cluster. Note the distinction between the generic analysis 140 {\em stage} and a specific analysis {\em task}. An analysis stage 141 represents a type of analysis which is performed, such as the basic 142 image calibration and object detection analysis. An analysis task is 143 a particular realization of an analysis stage, e.g., the analysis of 144 OTA number 61 from exposure 654321 to produce a specific set of output 145 data products. The analysis stages are discussed in detail in 146 Section~\ref{IPP:AnalysisStages}. 147 148 Depending on the particular stage, it may process individual images, 149 collections of images, or on derived data products. Because of the 150 nature of the image data, many of the analysis stages can be run in 151 parallel because, for example, the analysis of a chip in one image 152 does not depend on the results from another chip. 153 154 \subsection{Architectural Components} 155 156 In order to achieve the required functionality, the IPP provides an 157 infrastructure within which the Analysis Stages above are exectuted. 158 We have divided the IPP software infrastructure into a number of 159 clearly-defined architectural software units, listed as follows: 160 161 \begin{itemize} 162 163 \item {\bf Image Server:} This component is a large data store for all 164 images used by the IPP, including the raw images from the telescope, 165 the master calibration images, the reference static-sky images, and 166 any temporary image data products produced by the IPP. The Image 167 Server accepts the incoming data and stores it until it is no longer 168 needed by other portions of the IPP. The Image Server is not 169 restricted to imaging data: it is capable of storing any large data 170 files which are not well-suited for inclusion in a more structured 171 relational database and for which access needs to be widely 172 available beyond the individual process which created the file. 173 174 \item {\bf Astrometry \& Photometry Database (AP DB):} This component 175 stores and manipulates astronomical objects detected in various 176 images, as identified above, including individual measurements of 177 objects on the images, the summary information about those objects, 178 and reference object data. It also provides mechanisms for users to 179 query and manipulate the objects and detections. 180 181 \item {\bf Metadata Database:} This component stores the data which is 182 not directly related to images or astronomical objects, but which is 183 needed to perform the IPP analyses. The metadata may include the 184 summary weather information for each night, or details about the 185 filters, camera, telescopes, etc. 186 187 \item {\bf IPP Controller:} In order to perform the analysis stages 188 required by the IPP, it is necessary to use distributed computing 189 processes on a large number of computers. The IPP Controller 190 manages the collection of analysis tasks performed on these 191 machines. 192 193 \item {\bf IPP Scheduler:} This component is a decision-making 194 mechanism which guides the operation of the IPP. It evaluates the 195 currently available collection of data, identifies the necessary 196 analysis, and assigns the analysis tasks to the IPP Controller. 197 198 \end{itemize} 199 200 The relationship between these software units is shown in 201 Figure~\ref{overview}. This figure also shows the interactions 202 between the IPP and other Pan-STARRS systems. The architectural 203 components are discussed in detail in 204 Section~\ref{IPP:ArchComponents}. 205 206 \begin{figure} 207 \begin{center} 208 \resizebox{6in}{!}{\includegraphics{pics/IPPoverview}} 209 \caption{ \label{overview} IPP System Overview} 210 \end{center} 211 \end{figure} 212 213 \subsection{IPP Hardware Organization} 214 215 \begin{figure} 216 \begin{center} 217 \resizebox{4.5in}{!}{\includegraphics{pics/IPPhardware}} 218 \caption{ \label{hardware} IPP Hardware Organization} 219 \end{center} 220 \end{figure} 221 222 The IPP needs substantial computer resources, both in terms of 223 computational power and in terms of data storage and network 224 bandwidth. The IPP requires relatively large amounts of data storage 225 space, primarily for the image data. Image data is organized in two 226 categories. First, there is the per-OTA data -- data associated with 227 specific OTAs, including the raw images, the calibration images, and 228 temporary processed images at various stages. Second, there is the 229 data associated with the static sky imagery, which is in turn 230 organized into smaller sky-cell units. In addition to image data, 231 there are the somewhat smaller data entities of the Metadata Database 232 and AP Database. 233 234 The computer hardware is organized into nodes which provide both data 235 storage and computational resources. The data storage nodes are 236 divided into three classes: those which deal with the per-OTA image 237 data, those that provide the storage for the static sky images, and 238 those that provide the storage for the other data systems, the 239 Metadata Database and the AP Database. In addition, the computational 240 tasks related to Phase 2 take place on the per-OTA storage nodes and 241 the Phase 4 computation takes place on the static sky storage nodes. 242 243 Figure~\ref{hardware} shows our basic concept for the hardware 244 organization for the IPP. This diagram shows the two types of compute 245 nodes: OTA-level processing and storage nodes (dominated by Phase 2) 246 and static sky processing and storage nodes (mostly Phase 4). Also 247 shown are two switches which divide the network into OTA and 248 Static-Sky portions. In such an organization, the interswitch 249 communication must meet the throughput needs between these network 250 portions. The additional data systems (Metadata Database and AP 251 Database) are also shown. 252 253 %%% needs some work / move around elsewhere 254 \subsection{System Interfaces} 255 256 \paragraph{MOPS and other Client Science Pipelines} 257 258 The Client Science Programs (CSPs) and the Moving Object Processing 259 System (MOPS) are not a part of the IPP, but are external systems. We 260 include them here to show the required interfaces. 261 262 The CSPs and MOPS may query the Pixel DB, the Metadata DB and the 263 Object DB. In addition, they may write certain fields to the object 264 DB (e.g., the external identifiers and class of object) as they 265 process objects, and they may retrieve pixel data from the Nodes. 266 267 Since ``CSPs'' is a vague term, we now give some examples which may 268 help to illustrate the functionality. 269 270 One example of a CSP is a web front-end to retrieve (published) images 271 and objects from the Pixel DB and Object DB. 272 273 Another example would be a program interested in searching for 274 transiting extrasolar planets. Such a program may periodically poll 275 the Metadata DB for new processed observations in its region of 276 interest (such as the Galactic Plane), retrieve the object photometry 277 of all high signal-to-noise stars in the processed observations, and 278 attempt to identify a planetary transit in progress. 279 280 Yet another example would be a Stationary Transient Object Pipeline, 281 which would periodically poll the Metadata DB for new processed 282 observations, and query the Object DB for variable sources which were 283 identified twice (so that they are not moving objects). 284 285 \subsection{System Design Decisions} 108 286 109 287 Since \PS{} is a survey project, all data from the telescopes will be … … 128 306 System (MOPS), and potentially other client science pipelines. 129 307 130 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 131 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 132 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 133 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 134 135 \subsection{System Overview} 136 137 The \PS{} Image Processing Pipeline (IPP) consists of a collection of 138 computer hardware and software organized to perform the tasks required 139 to process images from the \PS{} telescopes. The primary goal of the 140 IPP is to process the science images from the \PS{} telescopes and 141 make the results available to other systems within \PS{}. To achieve 142 this goal, the IPP must also perform other analysis functions to 143 generate the calibrations needed in the science image processing and 144 to occasionally use the derived data to generate improved astrometric 145 and photometric reference catalogs. 146 147 In order to meet these broad goals, the IPP must have the following 148 capabilities: 308 \section{System Design : Architectural Components} 309 310 \subsection{IPP Image Server} 311 312 \begin{figure} 313 \psfig{file=pics/ImageServer,width=15cm,angle=0} 314 \caption{The components of the IPP Image Server.} 315 \label{fig:ImageServer} 316 \end{figure} 317 318 The IPP Image Server is a repository for all images and other large 319 data files required by the IPP. In addition, it provides tools for 320 managing the distribution of these large data files and for accessing 321 the files. Data files stored by the IPP Image Server include the raw 322 images, the calibration images, intermediate processing stage images 323 as needed, final processed images, difference images, image 324 subsections, and any large non-imaging datafiles needed by the IPP. 325 The IPP Image Server must retain the files for as long as they are 326 needed by the IPP. 327 328 The IPP Image Server is a parallel storage system. It stores data 329 across a collection of computer nodes, each with their own data 330 storage resources. Any single file is stored on only a single 331 computer and storage system. In order to achieve the data throughput 332 requirements, the IPP Image Server may distribute the images across 333 the processor nodes in an organized fashion, i.e.\ associating 334 specific machines with specific detectors. It is not the 335 responsibility of the IPP Image Server to determine which computer 336 should be associated with a specific data concept (Chip / region of 337 sky), but it must enable the association of a particular file with a 338 particular machine. 339 340 There are three data concepts relevant to the IPP Image Server: 149 341 \begin{itemize} 150 \item Store a large amount of image data, and other derived data 151 products (metadata and extracted objects); 152 \item Provide access mechanisms to these data products (both to the 153 subsystems of the IPP and in some cases to external users); 154 \item Continuously accept new image data and metadata from the 155 telescope system; 156 \item Execute various analysis processes using these data products; 157 and 158 \item Provide the decision-making logic needed to guide the data 159 processing, and to automatically launch the data processing tasks on 160 an appropriate timescale. 342 \item {\bf storage object} This represents a single, unique data 343 entity the Image Server. 344 345 \item {\bf instance} A single copy of the storage object in the Image 346 Server. In general, given storage object may have several instances 347 in the Image Server, normally on different computer nodes. 348 349 \item {\bf file ID} This is the identifier of a particular storage 350 object in the Image Server. The file ID is simply a unique string, 351 equivalent to the filename in a UNIX file system. 161 352 \end{itemize} 162 The IPP therefore includes subsystems which provide the data storage 163 framework, the data analysis framework, and the scheduling of the 164 analysis processes. The data storage subsystems also provide 165 interface mechanisms to the external \PS{} systems. 166 167 The IPP architecture can be viewed in several possible ways. We first 168 consider the software architecture components needed by the IPP. 169 These subsystems provide the infrastructure for the data storage and 170 the data processing. Next, we consider the analysis pipelines which 171 make up the major processing tasks that must be performed by the IPP. 172 Finally, we consider the hardware organization required to efficiently 173 and cost-effectively achieve the necessary computing and storage 174 requirements. 175 176 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 177 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 178 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 179 180 \subsection{System Architecture} 181 182 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 183 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 184 185 \subsubsection{Architectural Components} 186 187 In Figure~\ref{fig:functionalities} we show the functionality of the 188 IPP. 189 190 The Observatory and Telescope System (\textbf{OATS}) system at the 191 summit periodically produces metadata (e.g.\ weather measurements, 192 observations completed) and pixel data (the image pixels from the 193 cameras). The \textbf{Pollster} regularly (e.g., twice per minute) 194 polls OATS for the existence of new data. If new data exists, the 195 Pollster writes it to the \textbf{Metadata DB}, which maintains a 196 table of observations that have been obtained and whether these 197 observations are reduced, not reduced, or being reduced. The 198 \textbf{Scheduler} regularly (e.g., twice per minute) polls the 199 Metadata DB for observations that match predefined criteria that are 200 required to run reduction processes. For example, the Phase 1 201 processing requires that Phase 0 has been run on a focal plane 202 metadata, and also requires that the observations are available and 203 have not yet been processed. If the criteria are met, the appropriate 204 stage is passed to the \textbf{Localiser} which, checks the 205 \textbf{Pixel DB} to determine if the stage should be performed on a 206 particular node. The Localiser passes the reduction stage to be 207 processed, along with the preferred (or mandatory) node that should 208 execute the reduction stage, to the \textbf{Controller}. It is the 209 Controller's responsibility to maintain the list of reduction stages 210 to be processed and execute these stages on the \textbf{Nodes}. The 211 Nodes may retrieve the pixel data from OATS, they write to the Pixel 212 DB the location of the products of the reduction and report their 213 completion to the Controller. 214 215 External systems, such as the Moving Object Processing System 216 (\textbf{MOPS}) and other Client Science Pipelines (\textbf{CSPs}) 217 read the Metadata DB and the Object DB. They may also write to the 218 Object DB the classification of particular objects (e.g., identify an 219 object as an asteroid). Also, the MOPS and CSPs may also query the 220 Pixel DB for the location of pixel data and copies data from the 221 Nodes. 222 223 \begin{figure} 224 \psfig{file=pics/IPPfunctionalities,width=15cm,angle=0} 225 \caption{The functionalities of the architectural design. See the text 226 for further explanation.} 227 \label{fig:functionalities} 228 \end{figure} 229 230 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 231 232 \paragraph{OATS} 233 234 The Observatory And Telescope System (OATS) is not a part of the IPP, 235 but interfaces are required with it in order to allow the Pollster to 236 get the list of observations not in the Metadata DB, and the nodes to 237 retrieve pixel data. Also, the Scheduler may report the need for new 238 calibration data. 239 240 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 241 242 \paragraph{Pollster} 243 244 The Pollster is a program that polls OATS at regular intervals for the 245 existence of observations not contained in the Metadata DB. New 246 weather and image metadata are written to the Metadata DB. 247 248 There is no reason why this architectural component cannot be 249 contained within another (such as the Scheduler), but it is shown here 250 as separate for simplicity. 251 252 A polling model is adopted so that OATS' interface may be kept as 253 simple as possible --- OATS should not be concerned with whether the 254 IPP has received notifications. Under this polling model, it is 255 specifically the responsibility of the IPP to retrieve from OATS the 256 metadata that is not not already in the Metadata DB. 257 258 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 259 260 \paragraph{Metadata DB} 261 262 The Metadata DB stores and maintains the metadata\footnote{Note that 263 metadata is any data which is not pixel data or object data.}, 264 including the list of images taken by the telescope system and whether 265 these images have been processed. The Metadata DB is regularly polled 266 by the Scheduler to determine what images are ready to be processed. 267 268 Both the Scheduler and the Pollster update the status of the Metadata 269 DB --- the Pollster as new images become available at the Summit, and 270 the Scheduler as images are processed. 271 272 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 273 274 \paragraph{Scheduler} 275 276 The Scheduler is responsible for determining the processing stages 277 that are required to be run on any data. Examples of these processing 278 stages are ``Copy the pixels from the summit'' and ``Run Phase 2 279 processing on chip 12 of exposure 123''. 280 281 Processing stages to be executed are passed to the Localiser, which 282 returns to the Scheduler the list of processing stages with node 283 assignments to each of the stages. This list of processing stages 284 with node assignments is passed to the Controller for execution. 285 286 Processing stages which have executed are reported by the Controller, 287 which updates the Metadata DB appropriately. 288 289 The Scheduler may also interact with OATS to inform it of the need 290 for new calibration data. 291 292 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 293 294 \paragraph{Localiser} 295 \label{sec:localiser} 296 297 It is the duty of the Localiser to assign processing stages to 298 particular nodes. This may be in order to optimise performance by 299 distributing the stages across the nodes, or in the simplest possible 300 case, it may make no recommendation upon the node which performs a 301 particular stage. 302 303 The Localiser may query the Pixel DB in order to identify the location 304 of calibration data that may be needed for the processing stage to run 305 (and in all likelihood, assign the processing stage to the same node as 306 that which holds the calibration data). 307 308 The Localiser may either demand or request that a stage is performed on 309 a particular node, or make no recommendation, and passes the processing 310 stage back to the Scheduler. 311 312 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 313 314 \paragraph{Controller} 315 316 The Controller's job is to control the execution of the processing 317 stages on the nodes. It is passed stages by the Localiser, and 318 executes them on the appropriate nodes. It must detect whether a node 319 executing a processing stage has died, and re-execute the stage on an 320 alternate node. 321 322 The completed stages are reported back to the Scheduler. 323 324 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 325 326 \paragraph{Pixel DB} 327 \label{sec:pixeldb} 328 329 The Pixel DB is responsible for storing and maintaining the location 330 of pixel data in the IPP, including the raw images from the telescope, 331 the master calibration images, the reference static-sky images, and 332 any temporary image data products produced by the IPP. It provides 333 this information upon request to the Localiser. 334 335 Note that this design assumes that the pixel data will be stored on 336 the same nodes that will be doing the processing. 337 338 The Pixel DB will be periodically ``published'' as the quality of the 339 data is assured. The external world will only have access to the 340 published version of the Pixel DB. 341 342 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 343 344 \paragraph{Nodes} 345 346 The Nodes perform the grunt work of executing the processing stages as 347 directed by the Controller. When the processing stage has completed, 348 they report back to the Controller. 349 350 They may retrieve pixel data from OATS (the Summit) and write it to 351 local disk when directed to do so by the Controller. They also may 352 access the Metadata DB to read configurations, weather information 353 etc, and to write summary statistics etc. They may also access the 354 Object DB to read objects of interest, and to write objects from the 355 processing stage. 356 357 As they write products, the Nodes register with the Pixel DB that they 358 have written the requested output (so that the Pixel DB is aware that 359 the data has been written and is not merely scheduled to be written). 360 The Nodes do not need to read from the Pixel DB, since everything 361 (where to read input pixels from, where to write output pixels to) is 362 specified by the Localiser. 363 364 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 365 366 \paragraph{Object DB} 367 368 The Object DB is a facility to store all of the information about 369 astronomical objects, including individual measurements of objects on 370 the images, the summary information about those objects, and reference 371 object data\footnote{Note that this is (possibly) a separate entity 372 from the object database being developed by SAIC.}. 373 374 The Nodes, CSPs and MOPS may read objects from the Object DB, and the 375 Nodes may write objects (either new objects or updates), and the CSPs 376 and MOPS may write certain fields of objects (e.g., the external 377 identifiers and class of object). 378 379 The Object DB will be periodically ``published'' as the quality of the 380 data is assured. The external world will only have access to the 381 published version of the Object DB. The published version of the 382 Object DB will likely be the DB being developed by SAIC. 383 384 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 385 386 \paragraph{CSPs and MOPS} 387 388 The Client Science Programs (CSPs) and the Moving Object Processing 389 System (MOPS) are not a part of the IPP, but are external systems. We 390 include them here to show the required interfaces. 391 392 The CSPs and MOPS may query the Pixel DB, the Metadata DB and the 393 Object DB. In addition, they may write certain fields to the object 394 DB (e.g., the external identifiers and class of object) as they 395 process objects, and they may retrieve pixel data from the Nodes. 396 397 Since ``CSPs'' is a vague term, we now give some examples which may 398 help to illustrate the functionality. 399 400 One example of a CSP is a web front-end to retrieve (published) images 401 and objects from the Pixel DB and Object DB. 402 403 Another example would be a program interested in searching for 404 transiting extrasolar planets. Such a program may periodically poll 405 the Metadata DB for new processed observations in its region of 406 interest (such as the Galactic Plane), retrieve the object photometry 407 of all high signal-to-noise stars in the processed observations, and 408 attempt to identify a planetary transit in progress. 409 410 Yet another example would be a Stationary Transient Object Pipeline, 411 which would periodically poll the Metadata DB for new processed 412 observations, and query the Object DB for variable sources which were 413 identified twice (so that they are not moving objects). 414 415 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 416 417 \paragraph{Related/Connected components} 418 419 The Pollster may be contained within the Scheduler (i.e., the 420 Scheduler may initiate and/or schedule as a processing stage the 421 Pollster), but this is not assumed to be so in this document; this 422 decision is left to the implementation. 423 424 The Localiser is strongly coupled to the Pixel DB, and throughout this 425 document, these are both referred to as components of the ``IPP Pixel 426 Server''. 427 428 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 429 430 \paragraph{Responsibility} 431 432 The IPP team will develop and have responsibility for maintaining 433 these systems. 434 435 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 436 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 437 438 \subsubsection{Processing Stages} 439 \label{sec:processingStages} 440 441 We now consider the collection of IPP processing stages which are 442 executed by the Controller on the Nodes. We define a ``stage'' to be 443 the largest complete task which may be performed in serial without 444 interation between parallel threads. 445 446 Depending on the particular stage, it may process individual images, 447 collections of images, or on derived data products. Because of the 448 nature of the image data, many of the analysis stages can be run in 449 parallel because, for example, the analysis of a chip in one image 450 does not depend on the results from another chip. 451 452 The data analysis stages are divided into several categories as follows: 453 454 \begin{enumerate} 455 \item Retrieval Stage --- pixel data are retrieved from OATS (the 456 Summit). 457 \item Science Image Processing Stages 458 \begin{enumerate} 459 \item Phase 1: image processing preparation --- estimates 460 first-order astrometric and photometric solutions required to 461 process each major frame. 462 \item Phase 2: image reduction --- produces calibrated chips from 463 raw chips. 464 \item Phase 3: exposure analysis --- processes an FPA to produce 465 unified and consistent backgrounds, photometry and astrometry for 466 the component chips. 467 \item Phase 4: image combination --- processes sky cells overlapped 468 by a major frame. 469 \end{enumerate} 470 \item Calibration Image Processing Stages 471 \begin{enumerate} 472 \item Cal 1: Basic master-detrend creation --- combination of simple 473 detrend images (e.g., bias, dome flat etc). 474 \item Cal 2: Sky-model/fringe-mode generation --- combination of 475 more-complicated detrend images (e.g., fringe, scattered light 476 etc). 477 \item Cal 3: Flat-field correction image creation --- analysis of 478 photometry from multiple dithered FPAs. 479 \end{enumerate} 480 \item Calibration Test Processing Stage 481 \begin{enumerate} 482 \item CalTest 1: Detrend frame testing --- tests whether new 483 calibration frames are required. 484 \item CalTest 2: Photometric float correction testing --- tests 485 whether a new photometric flat correction is required. 486 \end{enumerate} 487 \item Reference Catalog Processing Stages 488 \begin{enumerate} 489 \item Astrometry reference catalog generation --- processing of the 490 astrometric data to determine and apply a consistent global 491 solution. 492 \item Photometry reference catalog generation --- processing of the 493 photometric data to determine and apply a consistent global 494 solution. 495 \end{enumerate} 496 \end{enumerate} 497 498 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 499 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 500 501 \subsubsection{Hardware Systems} 502 503 The basic IPP hardware organization is shown in Figure~\ref{hardware}. 504 The overall hardware organization, with a Detector subcluster and a 505 Static Sky subcluster, is largely chosen to reduce the I/O load during 506 the pre-reduction analysis of the raw science images. In addition, we 507 have specified distinct machines to maintain the object and metadata 508 databases. \tbd{This last aspect is largely theoretical until we have 509 defined the details of these databases; it may be more appropriate 510 depending on the eventual solutions to distribute these database 511 elements across the Detector and Static Sky subclusters.} 512 513 \begin{figure} 353 354 The Image Server provides file pointers (in C), handles (in Perl), or 355 file names corresponding to the instances of the storage objects. 356 Image Server requires a file system which provides files in the local 357 file system. This may be done over many machines with a network file 358 system such as NFS or GFS. \tbd{select file system for IPP / test NFS 359 vs GFS vs Mogile, etc}. 360 361 The IPP Image Server provides the storage and access mechanisms, but 362 it does not include any logic or information about the data. The 363 Image Server does not, e.g., monitor the age of images and delete them 364 on some schedule. 365 366 The IPP Image Server consists of the following components: 367 368 \begin{itemize} 369 \item Image Server storage hardware 370 \item Image Server database 371 \item Image Server daemon 372 \item Image Server client APIs 373 \end{itemize} 374 375 \paragraph{IPP Image Server Client APIs} 376 377 Clients interact with the IPP Image Server with a small number of C 378 APIs (Bindings are also provided for Perl \tbr{and Python}). The 379 client commands are: 380 381 \begin{itemize} 382 \item {\tt new object}: create a new storage object in the Image 383 Server. This function takes as input the file ID and returns a 384 C-style file pointer or a Perl file handle to the instance of the 385 storage object. The arguments to the function include an optional 386 node name on which the new storage object must be located. If this 387 target is not given, the Image Server places the new storage object 388 on an appropriate machine from the pool (least filled? most data? 389 randomized? the details need to be decided). 390 391 \item {\tt open object}: open an instance of an existing storage 392 object, as identified by the file ID. This function may also 393 specify the node on which the object should be opened (if an 394 instance of the object is not stored on that node, the function 395 returns an error). On success, the function returns a file pointer. 396 397 \item {\tt find object}: return a list of filenames in the UNIX name 398 space associated with the storage object identified by the given 399 file ID. Since there are in general multiple instances for a given 400 storage object, this function returns the collection of all 401 available instances. These may be freely opened by the client 402 server using the standard \code{fopen} functions. 403 404 \item {\tt stat object}: returns status information about the 405 specified storage object, including the number of instances of the object. 406 407 \item {\tt increment object count}: adds a new instance of the given 408 storage object. The target node may be optionally specified, 409 otherwise an appropriate node is selected. 410 411 \item {\tt decrement object count}: removes one of the instances of 412 the storage object. The input parameters may optionally specify the 413 target machine to delete. 414 415 \item {\tt delete object}: deletes all instances of the storage object 416 and sets the storage object status to {\tt deleted}. 417 \end{itemize} 418 419 \subsubsection{IPP Image Server Daemon} 420 421 The Image Server client requests are mediated via the Image Server 422 daemon. Communication between the clients and the server is via 423 \tbr{SOAP (or flat text commands)} implementing the commands above. 424 425 \subsubsection{IPP Image Server Database} 426 427 The IPP Image Server daemon uses a database to store the information 428 about the data storage objects, their instances, and the available 429 hardware resources. A \tt{mysql} database engine is used to manage 430 the database. The database tables defined for the Image Server are 431 listed in Table~\ref{ImageServerTables}, and their current contents 432 are listed in Appendix A. This database engine need not the same one 433 as used for the IPP Metadata Database. 434 % 435 \begin{table} 514 436 \begin{center} 515 \resizebox{8cm}{!}{\includegraphics{pics/hardware}} 516 \caption{ \label{hardware} IPP Hardware Organization} 437 \caption{Image Server Database Tables\label{ImageServerTables}} 438 \begin{tabular}{ll} 439 \hline 440 \hline 441 {\bf Table Name} & {\bf Description} \\ 442 \hline 443 \code{storage_object} & all storage objects known to Image Server \\ 444 \code{instance} & all instances of all storage objects \\ 445 \code{volume} & data storage devices known to Image Server \\ 446 \hline 447 \end{tabular} 517 448 \end{center} 518 \end{figure} 519 520 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 521 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 522 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 523 524 \subsection{Software Hierarchy} 525 526 In order to facilitate testing and development, and to encourage 527 flexibility, the IPP will be built in a layered fashion. The lowest 528 level functions will be written in C and collected together into a 529 \PS{} library. These library functions will be used to write more 530 complex modules. The modules will be written in C but will make use 531 of the SWIG tool to make their functionality available within other 532 frameworks. In particular, the modules can be tied together with a 533 simple framework (an `engine') or with detailed flow-control through 534 the use of a high-level language such as Perl, Python, or Tcl 535 employing the SWIG interfaces. For the high-level functions in the 536 operational system, the IPP will make use of \tbd{Python} as the 537 scripting language to provide the required flow-control to tie the 538 modules together. 539 540 This approach satisfies the requirement that complicated low-level 541 analysis steps run fast, while preserving flexibility for coding the 542 high-level wrappers for which the speed requirements are not so 543 stringent. 544 545 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 546 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 547 548 \subsubsection{External Libraries} 549 550 \PS{} will employ several external libraries to save duplicating 551 functionality that is already available. These external libraries 552 will be wrapped by the \PS{} Library, insulating the project from the 553 implementation details of the external libraries. Examples of the 554 external libraries are FFTW and SLALib. 555 556 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 557 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 558 559 \subsubsection{\PS{} Library} 560 561 The \PS{} Library will consist of C structures describing the basic 562 data types needed by the IPP and C functions which perform the basic 563 data manipulation operations. Note that a subset of the library 564 functions will be provided with SWIG interfaces as well to allow for 565 their use in the creation of the processing stages. Examples of the 566 \PS{} Library are fourier transforms and transforming between pixel 567 and celestial coordinates. 568 569 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 570 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 571 572 \subsubsection{Modules} 573 574 The IPP analysis stages are broken down into modules which represent 575 specific functional operations. The modules will be written in C 576 using the \PS{} Library functions and will be grouped into a \PS{} 577 Module Library. The modules will be provided with SWIG interfaces to 578 all public APIs for their use in processing stages. Examples of 579 modules are overscan subtraction and image combination. Some modules 580 (e.g.\ find objects on an image) will be used by multiple stages. 581 582 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 583 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 584 585 \subsubsection{Stages} 586 587 The major IPP processing tasks are organized into stages, which 588 consist of multiple modules. Each stage represents a collection of 589 complex operations performed on a single data entity. Each stage 590 therefore represents the maximum amount of effort which can be 591 performed in serial without interaction between parallel threads. The 592 stages will be written in \tbd{Python}, linking the modules together. 593 Examples of stages are Phase 2 (detrend images) and Phase 4 (combine 594 images from multiple telescopes and search for transients). 595 596 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 597 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 598 599 \subsubsection{Orchestration} 600 601 High-level components such as the Scheduler, the Controller and the 602 Localiser are for process control. As such, they shall be written in 603 \tbd{Python} in order to maintain flexibility. 604 605 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 606 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 607 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 608 609 \subsection{System Interfaces} 610 611 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 612 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 613 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 614 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 615 616 \section{System Architectural Design} 617 618 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 619 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 620 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 621 622 \subsection{Architectural Components} 623 624 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 625 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 626 627 \subsubsection{Pollster} 628 629 The Pollster simply polls OATS on a regular basis for metadata 630 (including telescope exposures) which is not known by the IPP (i.e., 631 already written in the Metadata DB). On the discovery of such metadata, 632 it is written to the Metadata DB. 633 634 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 635 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 636 637 \subsubsection{Pixel Server} 638 639 The IPP Pixel Server (IPS) is a repository for all image pixel data 640 required by the IPP, and fulfills the roles of the Pixel DB 641 (\S\ref{sec:pixeldb}) and the Localiser (\S\ref{sec:localiser}). In 642 addition, it also provides components for managing the distribution of 643 data, and accessing the data. 644 645 Images may reside in the IPS for different periods depending on their 646 use and type. Data stored by the IPS include the raw images, the 647 calibration images, intermediate processing stage images as needed, 648 final processed images, difference images, and image subsections, 649 \tbd{along with the associated metadata}. The IPS must retain images 650 as long as they are needed, up to the lifetime of the project. In 651 order to achieve the I/O requirements, the IPS may maintain the pixel 652 data distributed across the processor nodes in an organized fashion, 653 i.e.\ associating specific machines with specific detectors. The IPS 654 interacts with the IPP Metadata Database to allow other systems or 655 subsystems to identify the available images meeting specified 656 criteria. IPS specifications are described in the IPS subsystem 657 specification. 658 659 In addition to storing the pixel data, the IPS is responsible for 660 acquiring new image data and metadata from the Summit Pixel Server and 661 making it available for processing by the IPP System. 662 663 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 664 665 \paragraph{IPP Pixel Server Components} 666 667 The IPP Pixel Server (IPS) fulfills the roles of the Pixel DB 668 (\S\ref{sec:pixeldb}) and the Localiser (\S\ref{sec:localiser}), and 669 consists of the following components: 670 671 \begin{enumerate} 672 \item IPP Pixel Server Data Locality Optimizer (IPSDLO) 673 \item IPP Pixel Server Database (IPSD) 674 \item IPP Pixel Server Maintainance (IPSM) 675 \item IPP Pixel Server I/O Library (IPSIOL) 676 \end{enumerate} 677 678 This assumes that the pixel data will be stored on the nodes. Each 679 image shall have a unique Universal Resource Identifier (URI) which 680 specifies the location of the pixel data. As an example, consider a 681 cluster with cross-mounted disks --- in this case, the filename 682 incorporating the full path would serve as the URI. 683 684 The components of the IPS and their relation to other components (both 685 within the IPS and without) are showin in Figure~\ref{fig:ips}. 686 687 \begin{figure} 688 \psfig{file=pics/IPS,width=15cm,angle=0} 689 \caption{The components of the IPS. In addition to the IPSDLO, IPSD 690 and IPSM, the IPSIOL is also a component of the IPS; use of the IPSIOL 691 is shown as dotted arrows in the interactions. Note that the nodes use 692 the IPSIOL to pass pixel data between each other.} 693 \label{fig:ips} 694 \end{figure} 695 696 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 697 698 \subparagraph{IPP Pixel Server Data Locality Optimizer (IPPDLO)} 699 700 Processing stages generated by the Scheduler are passed through the 701 IPSDLO which does the following: 702 \begin{enumerate} 703 \item assigns tasks to specific nodes; 704 \item identifies the URI of the required input data; and 705 \item identifies the URI the output data should be written to. 706 \end{enumerate} 707 708 This allows the choice of processing node to be optimized so that it 709 resides on the node which will process it, as well as allowing the 710 output to be written to the node which requires it for the next 711 processing stage. 712 713 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 714 715 \subparagraph{IPP Pixel Server Database (IPSD)} 716 \label{sec:ipsd} 717 718 The IPSD maintains a database of URIs for the pixel data on the nodes. 719 It should be able to return the URI of the pixel data given one of: 720 \begin{enumerate} 721 \item an exposure identifier and a chip identifier (raw and processed 722 pixel data from the telescope); 723 \item a calibration identifier (detrend pixel data); and 724 \item a sky cell identifier (summed static sky, reduced and difference 725 pixel data). 726 \end{enumerate} 727 728 The IPSD will also contain a history of data management commands and 729 actions. 730 731 \tbd{Is there a reason why this is not a part of the Metadata DB?} 732 733 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 734 735 \subparagraph{IPP Pixel Server Maintenance (IPSM)} 736 737 The IPSM initiates the execution of bulk data management processing 738 stages. It may have an automated component which, e.g., monitors the 739 disk space on each of the nodes and redistributes them if they become 740 unbalanced. However, the main intent is that it is used by a human 741 operator to reorgainise the data, e.g., after a new data optimisation 742 plan has been formulated, or to delete old data. 743 744 The IPSM passes processing stages to the Controller which executes 745 them on the specified nodes. 746 747 The IPSM allows four types of operation: 748 \begin{itemize} 749 \item Retrieve external data --- to manually trigger the copying of 750 external data (routine copying of the pixel data from OATS is 751 handled by the Scheduler). The IPSM generates {\em retrieve data} 752 stages which are passed to the Controller for execution. 753 \item Delete data --- to delete old data. The IPSM looks up the 754 location of the data in the IPSD and generates {\em delete data} 755 stages which are passed to the Controller for execution. 756 \item Replicate data --- to backup and rearrange data. The IPSM 757 generates {\em copy data} stages which are passed to the Controller 758 for execution. Note that this mode differs from the ``copy external 759 data'' mode in that it copies data already within the IPS. 760 \item Move data --- to reorganise storage. The IPSM executes a 761 replication followed by a deletion. 762 \end{itemize} 763 764 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 765 766 \subparagraph{IPP Pixel Server I/O Library (IPSIOL)} 767 768 The IPSIOL provides a mechanism for reading and writing pixel data to 769 the IPS. The existence of the IPSIOL insulates the processing stages 770 from the details of how the pixel data are stored (i.e., the 771 processing stages need not worry whether the data is stored locally or 772 remotely). It will generally be used on the nodes and the IPSDLO, 773 although other components will also make use of it. 774 775 The IPSIOL will be able to: 776 \begin{itemize} 777 \item Open a file specified by a URI --- it may simply open the file 778 if it exists on the particular node, or it may retrieve the file 779 over the network. 780 \item Write a file specified by a URI --- it may simply write the file 781 if it exists on the particular node, or it may copy the file over 782 the network. It should also register with the IPSD that a file 783 specified by a URI has been written. 784 \item Delete a file specified by a URI --- it may simply delete the 785 file if it exists on the particular node, or it may delete the file 786 over the network. 787 \item Interface with the IPSD to return a URI given one of the 788 identifiers in \S\ref{sec:ipsd}. 789 \end{itemize} 790 791 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 792 793 \paragraph{Pixel Data Flow Examples} 794 795 For examples of the operation of the IPS, below we sketch out the 796 intended sequence of events for common operations. 797 798 Reads during processing: 799 \begin{enumerate} 800 \item A processing stage has been passed (from the Scheduler) the URI 801 for an image that it needs to load into memory. 802 \item The processing stage uses the IPSIOL to open the image. 803 \item The processing stage reads the image into local memory in the 804 usual manner. 805 \item The processing stage closes the image using the IPSIOL. 806 \end{enumerate} 807 808 Writes during processing: 809 \begin{enumerate} 810 \item A processing stage has been passed (from the Scheduler) the URI 811 for an image that needs to be saved, e.g., a subtracted image. 812 \item The processing stage uses the IPSIOL to open the image. 813 \item The processing stage writes the image in the usual manner. 814 \item The processing stage closes the image using the IPSIOL. 815 \end{enumerate} 816 817 Note how the IPSIOL has insulated the processing stage from the details 818 of the reading and writing. 819 820 Maintenance: 821 \begin{enumerate} 822 \item A human operator decides that all the pixel data for chip 12 823 should be stored on node 3. 824 \item Operator plugs this into the IPSM. 825 \item The IPSM queries the IPSD using the IPSIOL. 826 \item The IPSD returns the URIs for all the pixel data for chip 12. 827 \item The IPSM generates processing tasks to be executed on the nodes 828 that will copy the data from the old URIs to a new URI which 829 specifies node 3. 830 \item The IPSM generates processing tasks to be executed on the nodes 831 that deletes the data pointed to by the old URIs. 832 \item The IPSM reports success to the operator. 833 \end{enumerate} 834 835 Client Science Pipelines: 836 \begin{enumerate} 837 \item A CSP wants some pixel data. 838 \item The CSP queries the IPSD using the IPSIOL (e.g., asking for a 839 particular exposure or sky cell). 840 \item The IPSD returns the URI for the pixel data. 841 \item The CSP opens the image using the IPSIOL and the URI. 842 \item The CSP reads the pixel data into memory in the usual manner. 843 \item The CSP closes the image using the IPSIOL. 844 \end{enumerate} 845 846 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 449 \end{table} 450 451 \subsubsection{IPP Image Server Storage Hardware} 452 453 The IPP Image Server manages data across a collection of computers and 454 possibly on multiple storage devices on those computer nodes. The 455 Image Server maintains a table of the available data volumes. The 456 Image Server tracks information about each volume such as the total 457 capacity, the current capacity, the association between computer and 458 data volume. 459 460 \paragraph{IPP Image Server Maintenance Tools} 461 462 The IPP Image Server provides a collection of administration tools 463 which allow for maintainence. These are operations which may be 464 automatically scheduled for the IPP or which may be initiated by a 465 human via a command-shell interface. The maintainence functions 466 include migrating data between nodes to rebalance the available space 467 (this would only occur for instances which have not been placed on a 468 specific node by the client API). Other functions include checking 469 for file corruption, which involves sweeping all files on a data 470 volume and comparing the calculated file checksum to the currently 471 recorded value. 472 847 473 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 848 474 … … 1477 1103 manner given the capabilities of the science pipelines. 1478 1104 1105 \paragraph{Pollster} 1106 1107 The Pollster is a program that polls OATS at regular intervals for the 1108 existence of observations not contained in the Metadata DB. New 1109 weather and image metadata are written to the Metadata DB. 1110 1111 There is no reason why this architectural component cannot be 1112 contained within another (such as the Scheduler), but it is shown here 1113 as separate for simplicity. 1114 1115 A polling model is adopted so that OATS' interface may be kept as 1116 simple as possible --- OATS should not be concerned with whether the 1117 IPP has received notifications. Under this polling model, it is 1118 specifically the responsibility of the IPP to retrieve from OATS the 1119 metadata that is not not already in the Metadata DB. 1120 1121 \subsubsection{Pollster} 1122 1123 The Pollster simply polls OATS on a regular basis for metadata 1124 (including telescope exposures) which is not known by the IPP (i.e., 1125 already written in the Metadata DB). On the discovery of such metadata, 1126 it is written to the Metadata DB. 1127 1479 1128 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1480 1129 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 1525 1174 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1526 1175 1527 \subsection{ ProcessingStages}1176 \subsection{Analysis Tasks and Stages} 1528 1177 1529 1178 In this section, we review the processing stages which are executed on … … 2326 1975 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2327 1976 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1977 1978 \subsection{Software Hierarchy} 1979 1980 In order to facilitate testing and development, and to encourage 1981 flexibility, the IPP will be built in a layered fashion. The lowest 1982 level functions will be written in C and collected together into a 1983 \PS{} library. These library functions will be used to write more 1984 complex modules. The modules will be written in C but will make use 1985 of the SWIG tool to make their functionality available within other 1986 frameworks. In particular, the modules can be tied together with a 1987 simple framework (an `engine') or with detailed flow-control through 1988 the use of a high-level language such as Perl, Python, or Tcl 1989 employing the SWIG interfaces. For the high-level functions in the 1990 operational system, the IPP will make use of \tbd{Python} as the 1991 scripting language to provide the required flow-control to tie the 1992 modules together. 1993 1994 This approach satisfies the requirement that complicated low-level 1995 analysis steps run fast, while preserving flexibility for coding the 1996 high-level wrappers for which the speed requirements are not so 1997 stringent. 1998 1999 \subsubsection{External Libraries} 2000 2001 \PS{} will employ several external libraries to save duplicating 2002 functionality that is already available. These external libraries 2003 will be wrapped by the \PS{} Library, insulating the project from the 2004 implementation details of the external libraries. Examples of the 2005 external libraries are FFTW and SLALib. 2006 2007 \subsubsection{\PS{} Library} 2008 2009 The \PS{} Library will consist of C structures describing the basic 2010 data types needed by the IPP and C functions which perform the basic 2011 data manipulation operations. Note that a subset of the library 2012 functions will be provided with SWIG interfaces as well to allow for 2013 their use in the creation of the processing stages. Examples of the 2014 \PS{} Library are fourier transforms and transforming between pixel 2015 and celestial coordinates. 2016 2017 \subsubsection{Modules} 2018 2019 The IPP analysis stages are broken down into modules which represent 2020 specific functional operations. The modules will be written in C 2021 using the \PS{} Library functions and will be grouped into a \PS{} 2022 Module Library. The modules will be provided with SWIG interfaces to 2023 all public APIs for their use in processing stages. Examples of 2024 modules are overscan subtraction and image combination. Some modules 2025 (e.g.\ find objects on an image) will be used by multiple stages. 2026 2027 \subsubsection{Stages} 2028 2029 The major IPP processing tasks are organized into stages, which 2030 consist of multiple modules. Each stage represents a collection of 2031 complex operations performed on a single data entity. Each stage 2032 therefore represents the maximum amount of effort which can be 2033 performed in serial without interaction between parallel threads. The 2034 stages will be written in \tbd{Python}, linking the modules together. 2035 Examples of stages are Phase 2 (detrend images) and Phase 4 (combine 2036 images from multiple telescopes and search for transients). 2328 2037 2329 2038 \subsection{Modules} … … 3265 2974 \section{Appendices} 3266 2975 2976 \subsection{Image Server Database Tables} 2977 2978 \begin{table} 2979 \begin{center} 2980 \caption{Storage Object Table Contents\label{ImageServerTables:SO}} 2981 \begin{tabular}{ll} 2982 \hline 2983 \hline 2984 {\bf Column Name} & {\bf Datatype} & {\bf Description} \\ 2985 \hline 2986 \code{so_id} & integer & internal storage object identifier \\ 2987 \code{ext_id} & string & external storage object identifier (file ID) \\ 2988 \code{comment} & string & user description of object \\ 2989 \code{epoch} & time/date & last date of access \\ 2990 \hline 2991 \end{tabular} 2992 \end{center} 2993 \end{table} 2994 2995 \begin{table} 2996 \begin{center} 2997 \caption{Instance Table Contents\label{ImageServerTables:INT}} 2998 \begin{tabular}{ll} 2999 \hline 3000 \hline 3001 {\bf Column Name} & {\bf Datatype} & {\bf Description} \\ 3002 \hline 3003 \code{ins_id} & integer & internal instance identifier \\ 3004 \code{so_id} & integer & key to storage object table \\ 3005 \code{uri} & string & location in hardware collection \\ 3006 \code{sha1sum} & string & checksum information \\ 3007 \code{assigned_location} & boolean & is location user-specified? \\ 3008 \code{epoch} & time/date & last date of access \\ 3009 \code{atime} & time/date & last date of access \\ 3010 \hline 3011 \end{tabular} 3012 \end{center} 3013 \end{table} 3014 3015 \begin{table} 3016 \begin{center} 3017 \caption{Volume Table Contents\label{ImageServerTables:VOL}} 3018 \begin{tabular}{ll} 3019 \hline 3020 \hline 3021 {\bf Column Name} & {\bf Datatype} & {\bf Description} \\ 3022 \hline 3023 \code{vol_id} & integer & internal volume identifier \\ 3024 \code{uri} & string & node name? \\ 3025 \hline 3026 \end{tabular} 3027 \end{center} 3028 \end{table} 3267 3029 3268 3030 \bibliographystyle{plain} -
trunk/doc/design/ippSRS.tex
r1399 r2114 1 %%% $Id: ippSRS.tex,v 1. 7 2004-08-06 19:06:01eugene Exp $1 %%% $Id: ippSRS.tex,v 1.8 2004-10-14 05:06:32 eugene Exp $ 2 2 \documentclass[panstarrs,spec]{panstarrs} 3 3 … … 154 154 \section{Requirements} 155 155 156 \begin{table} 157 \begin{center} 158 \caption{Valid Moon Conditions for the 6 PS filters\label{moonconditions}} 159 \begin{tabular}{lrrrr} 160 \hline 161 \hline 162 filter & phase (days) & min. distance (degrees) \\ 163 \hline 164 g & 6 & 60 \\ 165 r & 5 & 40 \\ 166 i & 4 & 30 \\ 167 z & 2 & 20 \\ 168 y & 1 & 10 \\ 169 w & 5 & 50 \\ 170 \hline 171 \end{tabular} 172 \end{center} 173 \end{table} 174 156 175 \subsection{Top-Level Requirements} 157 176 \label{req:system-capabilities} … … 162 181 163 182 \begin{enumerate} 164 \item Produce reduced science images for each full camera exposure 165 which are photometrically consistent across the field to within 1\%.\VER{ANALYSIS}{SCD:3.2.2.5} 183 \item For images obtained in photometric weather, produce reduced 184 science images for each full camera exposure with photometric 185 zero-point scatter less than 1\% across the full 186 field. \VER{ANALYSIS}{SCD:3.2.2.5} 166 187 \label{TLR:1} 167 188 168 \item Produce reduced science images for each full camera exposure 169 which are photometrically calibrated to within 1\%.\VER{ANALYSIS}{SCD:3.2.2.5} 189 \item For images obtained in photometric weather, produce reduced 190 science images for each full camera exposure which are 191 photometrically calibrated with respect to the Pan-STARRS filter 192 system with a 1$\sigma$ accuracy of 1\%.\VER{ANALYSIS}{SCD:3.2.2.5} 170 193 \label{TLR:2} 171 194 172 \item Produce reduced science images for each full camera exposure 173 which are astrometrically calibrated to 100 milliarcseconds to an 174 absolute reference.\VER{ANALYSIS}{SCD:3.2.2.6} 195 \item For images obtained under normal seeing conditions and optical 196 distortion, produce reduced science images for each full camera 197 exposure with an astrometric calibration providing $< 30$ 198 milliarcsecond scatter (1$\sigma$) for sequential images of the same 199 location.\VER{ANALYSIS}{SCD:3.2.2.7} 200 \label{TLR:4} 201 202 \item For images obtained under normal seeing conditions and optical 203 distortion, produce reduced science images for each full camera 204 exposure with an astrometric calibration providing $< 100$ 205 milliarcsecond scatter (1$\sigma$) relative to the ICRS reference 206 system.\VER{ANALYSIS}{SCD:3.2.2.6} 175 207 \label{TLR:3} 176 208 177 \item Produce reduced science images for each full camera exposure 178 which are astrometrically consistent to 30 179 milliarcseconds.\VER{ANALYSIS}{SCD:3.2.2.7} 180 \label{TLR:4} 181 182 \item Produce reduced science images for each full camera exposure 183 which have foreground emission subtracted with no more than 1\% 184 variation in the non-astronomical background.\VER{ANALYSIS}{SCD:3.5.12} 209 \item In photometric weather and under moon conditions listed in 210 Table~\ref{moonconditions}, produce reduced science images for each 211 full camera exposure which have background variations of less than 212 1\% in regions free of large ($> 30$ pixels diameter) astronomical 213 structures.\VER{ANALYSIS}{SCD:3.5.12} 185 214 \label{TLR:5} 186 215 187 \item Merge all $g$ filter science images into a static sky image.\VER{TEST}{SCD:3.2.2.10} 216 \item In photometric weather, produce reduced science images for each 217 full camera exposure which have background deviations from the 218 static sky in the same filter of less than \tbd{1\%} for the median 219 in large ($> 30$ pixels diameter) regions.\VER{ANALYSIS}{SCD:3.5.12} 220 \label{TLR:5a} 221 222 \item Merge all $g$ filter science images into a static sky image.\VER{TASK}{SCD:3.2.2.10} 188 223 \label{TLR:6} 189 224 190 \item Merge all $r$ filter science images into a static sky image.\VER{T EST}{SCD:3.2.2.10}225 \item Merge all $r$ filter science images into a static sky image.\VER{TASK}{SCD:3.2.2.10} 191 226 \label{TLR:7} 192 227 193 \item Merge all $i$ filter science images into a static sky image.\VER{T EST}{SCD:3.2.2.10}228 \item Merge all $i$ filter science images into a static sky image.\VER{TASK}{SCD:3.2.2.10} 194 229 \label{TLR:8} 195 230 196 \item Merge all $z$ filter science images into a static sky image.\VER{T EST}{SCD:3.2.2.10}231 \item Merge all $z$ filter science images into a static sky image.\VER{TASK}{SCD:3.2.2.10} 197 232 \label{TLR:9} 198 233 199 \item Merge all $y$ filter science images into a static sky image.\VER{T EST}{SCD:3.2.2.10}234 \item Merge all $y$ filter science images into a static sky image.\VER{TASK}{SCD:3.2.2.10} 200 235 \label{TLR:10} 201 236 202 \item Merge all $w$ filter science images into a static sky image.\VER{T EST}{SCD:3.2.2.10}237 \item Merge all $w$ filter science images into a static sky image.\VER{TASK}{SCD:3.2.2.10} 203 238 \label{TLR:11} 204 239 205 \item Detect and classify objects on the individual processed science images.\VER{TEST}{SCD:3.2.2.16} 240 \item Detect and classify objects on the individual processed science 241 images.\VER{TASK}{SCD:3.2.2.16} 206 242 \label{TLR:12} 207 243 208 \item Detect and classify objects on the stacked groups of science images.\VER{TEST}{SCD:3.2.2.16} 244 \item Detect and classify objects on the stacked groups of science 245 images.\VER{TASK}{SCD:3.2.2.16} 209 246 \label{TLR:13} 210 247 211 \item Detect and classify objects on the static sky image.\VER{T EST}{SCD:3.2.2.16}248 \item Detect and classify objects on the static sky image.\VER{TASK}{SCD:3.2.2.16} 212 249 \label{TLR:14} 213 250 214 \item Detect all significant transients in the individual science 215 images relative to the static sky image.\VER{TEST}{SCD:3.2.2.16} 251 \item Detect transients with significance $>3\sigma$ in the individual 252 science images relative to the static sky 253 image.\VER{ANALYSIS}{SCD:3.2.2.16} 216 254 \label{TLR:15} 217 255 218 \item Degrade the stacked image by no more than \tbr{10 milliarcseconds}.\VER{ANALYSIS}{SCD:3.5.2} 256 \item Degrade the stacked image by no more than \tbr{10 257 milliarcseconds} (FWHM added in quadrature) over the theoretical 258 limit for the stack under infinite 259 sampling.\VER{ANALYSIS}{SCD:3.5.2} 219 260 \label{TLR:16} 220 261 221 262 \item Perform the processing of science images to the level of 222 263 transient detection and static sky inclusion at a rate such that 223 exposures taken at a cadence of \tbr{40} seconds do not accumulate 224 in the processing buffer.\VER{TEST}{SCD:3.2.2.3} 264 exposures taken at an average cadence of \tbr{40} seconds do not 265 accumulate in the processing buffer (average throughput 266 requirement).\VER{TEST}{SCD:3.2.2.3} 225 267 \label{TLR:17} 226 268 227 269 \item Limit the false alarm rate (FAR) to less than \tbr{5\%} for 228 transient detections $> 5\sigma$ sent to the preferred client science229 pipelines.\footnote{note difference with PS-4: 1\%}230 \VER{ANALYSIS}{SCD:3.2.2.13}270 transient detections $> 5\sigma$ sent to the preferred client 271 science pipelines.\footnote{note difference with PS-4: 1\%} 272 \VER{ANALYSIS}{SCD:3.2.2.13} 231 273 \label{TLR:18} 274 275 \item Perform transient detection to a completeness of \tbr{99\%} at 276 the completeness for transient detections with a significant $> 277 5\sigma$.\VER{ANALYSIS}{SCD:xxx} 232 278 233 279 \item Publish the static sky images to the Pan-STARRS Published 234 280 Science Products Subsystem (PSPS) once per \tbr{6 235 months}.\VER{T EST}{SCD:3.2.2.18}281 months}.\VER{TASK}{SCD:3.2.2.18} 236 282 \label{TLR:19} 237 283 238 284 \item Publish the detected objects to the Pan-STARRS Published Science 239 Products Subsystem (PSPS) once per month.\VER{T EST}{SCD:3.2.2.18}285 Products Subsystem (PSPS) once per month.\VER{TASK}{SCD:3.2.2.18} 240 286 \label{TLR:20} 241 287 242 288 \item Send the IPP metadata and received OTIS metadata to the 243 Pan-STARRS Published Science Products Subsystem (PSPS) weekly.\VER{T EST}{SCD:3.2.2.18}289 Pan-STARRS Published Science Products Subsystem (PSPS) weekly.\VER{TASK}{SCD:3.2.2.18} 244 290 \label{TLR:21} 245 291 … … 441 487 442 488 Timing requirements specified in this document shall be achieved on the 443 deployed Pan-STARRS analysis computers.\VER{ TEST}{allocated}489 deployed Pan-STARRS analysis computers.\VER{INSPECT}{allocated} 444 490 445 491 \subsubsection{Software Configuration} … … 526 572 \subsubsection{Image Server} 527 573 574 %% IPP Image Server T & F 575 576 Image Server tasks and functions: 577 578 \begin{itemize} 579 580 \item The IPP Image Server stores images on a distributed collection 581 of computer disks. Individual instances of a file are only required 582 to be stored on a single machine (striping across computers is not a 583 requirement). 584 585 \item The IPP Image Server attempts to store an image on a specific 586 machine if requested by the user. 587 588 \item If such a request cannot be honored (ie, the machine is down), 589 the IPP Image Server selects an appropriate machine and notifies the 590 requesting agent of the new location. 591 592 \item The IPP Image Server stores multiple copies of each image upon 593 request, the number of copies specified independently for each file 594 by the user. 595 596 \item The IPP Image Server maintains a record of all image copies 597 currently available in the repository. This record includes at 598 least the image name, location (which machine), the image size, and 599 the state of the image (available, locked, 600 deleted). 601 602 \item The IPP Image Server locks images in the repository on request. 603 Both read (shared) and write (exclusive) locks are provided. A read 604 lock prevents write access to the file; a write lock prevents both 605 read and write access. Access prevention may be advisory rather 606 than rigorously enforced. 607 608 \item The IPP Image Server return the image location (the computer or 609 computers on which it resides) upon request. 610 611 \item The IPP Image Server provides a specified image upon request. 612 613 \item The IPP Image Server deletes images in the repository on 614 request. 615 \end{itemize} 616 617 %% IPP Image Server Requirements 618 619 IPP Image Server requirements: 620 528 621 \begin{enumerate} 529 622 \item The IPP Image Server shall accept raw images from the summit at 530 a sustained rate of 1 exposure (2~GB) per \tbr{40 531 seconds}. \VER{TEST}{TLR:17, TLR:23} 532 533 \item The IPP Image Server shall store images on a distributed 534 collection of computer disks. Individual instances of a file are 535 only required to be stored on a single machine (striping across 536 computers is not a requirement).\VER{TEST}{TLR:17, TLR:23} 537 538 \item The IPP Image Server shall attempt to store an image on a 539 specific machine if requested by the user.\VER{TEST}{TLR:17, TLR:23} 540 541 \item If such a request cannot be honored (ie, the machine is down), 542 the IPP Image Server shall select an appropriate machine and notify 543 the requesting agent of the new location.\VER{TEST}{TLR:17, TLR:23} 544 545 \item The IPP Image Server shall store multiple copies of each image 546 upon request, the number of copies specified independently for each 547 file by the user.\VER{TEST}{TLR:17, TLR:23} 548 549 \item The IPP Image Server shall maintain a record of all image copies 550 currently available in the repository. This record shall include at 551 least the image name, location (which machine), the image size, and 552 the state of the image (available, locked, deleted).\VER{INSPECT}{TLR:17, TLR:23} 553 554 \item The IPP Image Server shall lock images in the repository on 555 request. Both read (shared) and write (exclusive) locks shall be 556 provided. A read lock shall prevent write access to the file; a 557 write lock shall prevent both read and write access. \tbr{Access 558 prevention may be advisory rather than enforced.} \VER{TEST}{TLR:17, TLR:23} 559 560 \item The IPP Image Server shall return the image location (the 561 computer or computers on which it resides) upon request.\VER{TEST}{TLR:17, TLR:23} 562 563 \item The IPP Image Server shall provide a specified image upon request.\VER{TEST}{TLR:17, TLR:23} 564 565 \item The IPP Image Server shall delete images in the repository on request.\VER{TEST}{TLR:17, TLR:23} 623 a sustained rate of 1 exposure (2~GB) per \tbr{40 seconds.} 624 \VER{TEST}{TLR:17, TLR:23} 625 626 \item The IPP Image Server nodes shall not be offline for more than 12 hours 627 consecutively or 36 hours per year.\VER{ANALYSIS}{TLR:17} 628 629 \item The IPP Image Server shall provide a seekable, unix file-system 630 reference to the specified image.\VER{TEST}{allocated} 566 631 567 632 \end{enumerate} … … 569 634 \subsubsection{AP Database} 570 635 571 The purpose of the AP Database is: 572 \begin{itemize} 573 \item to enable the photometric calibration of images 574 \item to enable the astrometric calibration of images 575 \item to enable the construction of flat-field correction frames 576 \item to enable the construction of a photometric calibration catalog 577 \item to enable the construction of an astrometric calibration catalog 578 \item to monitor the system photometry calibration parameters 579 \item to monitor the system astrometry calibration parameters 580 \item to perform the identification of single-occurance transients 581 \end{itemize} 582 636 %%% Table: AP DB parameters 583 637 \begin{table} 584 638 \begin{center} … … 603 657 \end{table} 604 658 605 \begin{enumerate} 606 \item The AP Database shall accept and store individual detections and 607 collections of detections along with information about the image 608 which provided the detections.\VER{TEST}{TLR:2, TLR:3, TLR:22, TLR:24} 609 610 \item Detections shall be saved as one of several detection classes 611 (P2, P4$\Sigma$, P4$\Delta$, SS) and the AP Database shall store the 612 appropriate parameters, listed in Table~\ref{APdetections}, for each 613 class.\VER{TEST}{TLR:2, TLR:3, TLR:22, TLR:24} 614 615 \item The AP Database shall identify the image which provided the 616 detection, or in the case of external references, an identifier 617 specific to the reference source.\VER{TEST}{TLR:2, TLR:3} 618 619 \item The AP Database shall group detections into objects and measure 620 average parameters of those objects.\VER{ANALYSIS}{TLR:2, TLR:3, TLR:22} 621 622 \item The AP Database shall store parallax and proper motion parameters 623 for a subset of the average objects.\VER{TEST}{TLR:2, TLR:3, TLR:22} 624 625 \item The AP Database shall store image and filter calibration 626 information necessary to convert between instrumental magnitudes and 627 calibrated magnitudes in standard systems.\VER{INSPECT}{TLR:3} 628 629 \item The AP Database shall perform at least the follow queries, with 630 constraints on the output based on at least time ranges, magnitude 631 limits, error limits: 632 633 \begin{enumerate} 634 \item given $(RA,DEC)$ and a Radius, return all objects and/or 635 detections in the region.\VER{TEST}{TLR:2, TLR:3} 636 637 \item given $(RA,DEC)_0$ to $(RA,DEC)_1$, return all objects and/or 638 detections in the region.\VER{TEST}{TLR:2, TLR:3} 639 640 \item given $(RA,DEC)$, return closest object.\VER{ANALYSIS}{TLR:2, TLR:3, TLR:22} 641 642 \item given object ID, return all detections\VER{TEST}{TLR:2, TLR:3} 643 644 \item given detection, return source image data.\VER{TEST}{TLR:2, TLR:3} 645 646 \item given detection, return object.\VER{TEST}{TLR:2, TLR:3, TLR:22} 647 648 \item given $(RA,DEC)$, return all images overlapping coordinate.\VER{ANALYSIS}{TLR:2, TLR:3} 649 650 \item given $(RA,DEC)$ and a Radius, return all images overlapping region.\VER{ANALYSIS}{TLR:2, TLR:3} 651 652 \item given $(RA,DEC)_0$ to $(RA,DEC)_1$, return all images overlapping region.\VER{ANALYSIS}{TLR:2, TLR:3} 653 654 \item given detection instrumental magnitude, return derived 655 magnitudes based on calibration information.\VER{TEST}{TLR:2, TLR:3} 656 657 \item given a collection of detections in a filter, determine the 658 object average magnitude in that filter.\VER{ANALYSIS}{TLR:2, TLR:3} 659 660 \item given a collection of objects and detections, determine the 661 individual image zero-points.\VER{ANALYSIS}{TLR:2, TLR:3} 662 663 \item given a region, return all possible combinations of the object 664 or detection magnitudes $(M_1 - M_2)$.\VER{TEST}{TLR:2, TLR:3} 665 666 \item given a list of $(RA,DEC)$ entries, return all nearest objects.\VER{ANALYSIS}{TLR:2, TLR:3} 667 668 \item given a filter, telescope, or detector, return all calibration 669 terms and history.\VER{TEST}{TLR:2, TLR:3} 670 671 \item given a detection, return all non-detections from images which 672 overlapped the detection coordinates.\VER{ANALYSIS}{TLR:2, TLR:3, TLR:22} 673 \end{enumerate} 674 675 \item The AP Database shall accept detection IDs of moving objects and 676 label the detections with the identified object.\VER{TEST}{TLR:2, TLR:3, TLR:22} 677 678 \item The AP Database shall accept new detections at the rate 679 generated by the telescope from the Phase 2 and Phase 4 analysis. 680 \tbr{Except within 10 degrees of the galactic plane, the AP Database 681 shall keep up with the incoming rates.} The expected rates are 682 listed in Table~\ref{APrates}, along with the total data volume 683 required for storage space over the PS-1 lifetime.\VER{TEST}{TLR:2, TLR:3, TLR:22} 684 685 \item The AP Database shall provide access to external Pan-STARRS 686 clients to the detected objects within \tbr{5 minute} after the 687 image is obtained.\VER{TEST}{TLR:22} 688 \label{IPP:DeReq:29c} 689 \end{enumerate} 690 659 %%% Table: AP DB Throughput 691 660 \begin{table} 692 661 \begin{center} … … 713 682 \end{table} 714 683 684 %% IPP AP DB T & F 685 686 The purpose of the AP Database is: 687 \begin{itemize} 688 \item to enable the photometric calibration of images 689 \item to enable the astrometric calibration of images 690 \item to enable the construction of flat-field correction frames 691 \item to enable the construction of a photometric calibration catalog 692 \item to enable the construction of an astrometric calibration catalog 693 \item to monitor the system photometry calibration parameters 694 \item to monitor the system astrometry calibration parameters 695 \item to perform the identification of single-occurance transients 696 \end{itemize} 697 698 The tasks and functions of the AP Database include: 699 700 \begin{itemize} 701 \item The AP Database accepts and stores individual detections and 702 collections of detections along with information about the image 703 which provided the detections. 704 705 \item Detections are saved as one of several detection classes (P2, 706 P4$\Sigma$, P4$\Delta$, SS) and the AP Database stores the 707 appropriate parameters, listed in Table~\ref{APdetections}, for each 708 class. 709 710 \item The AP Database identifies the image which provided the 711 detection, or in the case of external references, an identifier 712 specific to the reference source. 713 714 \item The AP Database groups detections into objects on the basis of 715 positional coincidence and measures average parameters of those 716 objects. 717 718 \item The AP Database stores parallax and proper motion parameters for 719 a subset of the average objects. 720 721 \item The AP Database stores image and filter calibration information 722 necessary to convert between instrumental magnitudes and calibrated 723 magnitudes in standard systems. 724 725 \item The AP Database performs at least the follow queries, with 726 constraints on the output based on at least time ranges, magnitude 727 limits, error limits: 728 729 \begin{itemize} 730 \item given $(RA,DEC)$ and a Radius, return all objects and/or 731 detections in the region. 732 733 \item given $(RA,DEC)_0$ to $(RA,DEC)_1$, return all objects and/or 734 detections in the region. 735 736 \item given $(RA,DEC)$, return closest object. 737 738 \item given object ID, return all detections. 739 740 \item given detection, return source image data. 741 742 \item given detection, return object. 743 744 \item given $(RA,DEC)$, return all images overlapping coordinate. 745 746 \item given $(RA,DEC)$ and a Radius, return all images overlapping region. 747 748 \item given $(RA,DEC)_0$ to $(RA,DEC)_1$, return all images overlapping region. 749 750 \item given detection instrumental magnitude, return derived 751 magnitudes based on calibration information. 752 753 \item given a collection of detections in a filter, determine the 754 object average magnitude in that filter. 755 756 \item given a collection of objects and detections, determine the 757 individual image zero-points. 758 759 \item given a region, return all possible combinations of the object 760 or detection magnitudes $(M_1 - M_2)$. 761 762 \item given a list of $(RA,DEC)$ entries, return all nearest objects. 763 764 \item given a filter, telescope, or detector, return all calibration 765 terms and history. 766 767 \item given a detection, return all non-detections from images which 768 overlapped the detection coordinates. 769 \end{itemize} 770 771 \item The AP Database shall accept detection IDs of moving objects and 772 label the detections with the identified object. 773 \end{itemize} 774 775 %% IPP AP DB Requirements 776 The IPP AP Database has the following performance requirements: 777 778 \begin{enumerate} 779 \item The AP Database shall accept new detections at the rate 780 generated by the telescope from the Phase 2 and Phase 4 analysis. 781 \tbr{Except within 10 degrees of the galactic plane, the AP Database 782 shall keep up with the incoming rates.} The expected rates are 783 listed in Table~\ref{APrates}, along with the total data volume 784 required for storage space over the PS-1 lifetime.\VER{TEST}{TLR:2, TLR:3, TLR:22} 785 786 \item The AP Database shall provide access to external Pan-STARRS 787 clients to the detected objects within \tbr{5 minute} after the 788 image is obtained.\VER{TEST}{TLR:22} 789 \label{IPP:DeReq:29c} 790 \end{enumerate} 791 715 792 \subsubsection{Metadata Database} 716 793 794 %% Table: Metadata data classes 717 795 \begin{table} 718 796 \begin{center} … … 739 817 \end{table} 740 818 741 \begin{enumerate} 742 \item The IPP Metadata Database shall accept metadata from the summit 743 at a sustained rate of \tbr{1 MB per second}.\VER{TEST}{TLR:17, TLR:21, TLR:25} 744 745 \item The Metadata Database shall store the classes of data listed in 746 Table~\ref{metadata}. Thus, the Metadata Database shall store and 747 provide metadata for all raw images, for processed images, for the 819 %% Metadata DB T & F 820 821 The Metadata Database tasks and functions: 822 823 \begin{itemize} 824 \item The Metadata Database stores the classes of data listed in 825 Table~\ref{metadata}. Thus, the Metadata Database stores and serves 826 metadata for all raw images, for processed images, for the 748 827 calibration images (both raw and master), for the extracted object 749 828 lists. Metadata describing the environmental conditions at the 750 telescope shall also be stored and provided as needed. 751 Database.\VER{INSPECT}{TLR:21, TLR:25} 752 753 \item The Metadata Database queries shall have a latency of $< 0.1$ seconds.\VER{TEST}{TLR:17} 754 755 \item The Metadata Database shall be capable of at least 100 queries per second.\VER{TEST}{TLR:17} 829 telescope is also stored and provided as needed. 830 831 \item The Metadata Database responds to simple queries which return 832 the data in the categories listed in Table~\ref{metadata} based on 833 the primary data key and with basic constraints of time ranges and 834 other simple conditional constraints. 835 836 \item The Metadata database stores the configuration information with 837 restricted access so that only specific people may change the 838 information (eg, science parameters available to the science team; 839 software configuration parameters available to the system 840 maintainers). 841 \end{itemize} 842 843 %% Metadata DB Requirements 844 845 The Metadata Database has the following requirements: 846 847 \begin{enumerate} 848 \item The IPP Metadata Database shall accept metadata from the summit 849 at a sustained rate of \tbr{1 MB per 40 second.}\VER{TEST}{TLR:17, 850 TLR:21, TLR:25} 851 852 \item The Metadata Database queries shall have a latency of $< 0.1$ 853 seconds.\VER{TEST}{TLR:17} 854 855 \item The Metadata Database shall be capable of at least 100 queries 856 per second.\VER{TEST}{TLR:17} 756 857 757 858 \item The Metadata Database shall be capable of accepting a total data 758 859 volume after 2 years of operation of 280 GB. \VER{INSPECT}{TLR:25} 759 760 \item The Metadata Database shall respond to simple queries which761 return the data in the categories listed in Table~\ref{metadata}762 based on the primary data key and with basic constraints of time763 ranges and other simple conditional constraints.\VER{TEST}{TLR:17}764 765 \item The Metadata shall store descriptive information about the raw766 images received from the summit and the current state of the data767 processing.\TASK768 769 \item The Metadata shall also store descriptive information for each of770 the static sky images currently available.\TASK771 772 \item Software configuration parameters shall be stored in and773 extracted from the Metadata Database.\TASK774 775 \item The Metadata database shall store the configuration information776 with restricted access so that only specific people may change the777 information.\VER{TEST}{allocated}778 779 \item User-configurable software parameters shall be stored in and780 extracted from the Metadata Database.\TASK781 860 782 861 \item The Metadata Database shall restrict write access of the 783 862 scientific parameters to a different group from the software and 784 863 hardware configuration parameters.\VER{TEST}{allocated} 785 786 864 \end{enumerate} 787 865 788 866 \subsubsection{Controller} 867 868 %% IPP Controller T & F 869 870 IPP Controller tasks and functions: 871 872 \begin{itemize} 873 874 \item On startup, the IPP Controller attempts to establish 875 communication with all of its computers and set their state to be 876 {\tt alive} or {\tt dead} based on the success of the 877 connection. 878 879 \item The IPP Controller detects computers which crash or stop 880 responding and set their state to {\tt dead}. 881 882 \item The IPP Controller attempts to re-establish communication with 883 {\tt dead} computers. 884 885 \item The IPP Controller accepts tasks from external users and 886 systems, which may specify a desired CPU (node) and priority in 887 addition to the task command. 888 889 \item The IPP Controller attempts to run pending tasks on the desired 890 node, if available (not {\tt dead} or {\tt off}). 891 892 \item If the node is unavailable, the IPP Controller attempts to run 893 the task on another node. 894 895 \item If the node is available, the IPP Controller attempts to run a 896 given task only if no higher-priority tasks are available and no 897 task is currently being executed. 898 899 \item The IPP Controller monitors the output from the task and writes 900 it to an associated log destination. 901 902 \item The IPP Controller monitors the execution status of each task 903 currently executing on a node and performs the following actions: 904 905 \begin{itemize} 906 \item identify the task as successful if it has a valid exit status. 907 \item identify the task as unsuccessful if it has an error exit status. 908 \item identify the task as unattempted if the computer crashed. 909 \end{itemize} 910 911 \item The IPP Controller accepts and performs the following external 912 commands: 913 \begin{itemize} 914 \item add a task to the pending task list. 915 \item delete a specific task from the pending task list. 916 \item return the current status of a specific task. 917 \item return a list of all pending and non-pending tasks. 918 \item set a specified computer state to {\tt off} or {\tt dead}. 919 \item restrict a specified CPU to a class of tasks. 920 \item halt execution of a specified task. 921 \item set the IPP Controller state to {\tt finish}, {\tt abort}, or {\tt stop}. 922 \end{itemize} 923 \end{itemize} 924 925 %% IPP Controller Requirements 926 927 IPP Controller requirements: 928 789 929 \begin{enumerate} 790 930 … … 792 932 computers.\VER{TEST}{TLR:17} 793 933 794 \item On startup, the IPP Controller shall attempt to establish795 communication with all of its computers and set their state to be796 {\tt alive} or {\tt dead} based on the success of the connection.\VER{TEST}{TLR:17}797 798 \item The IPP Controller shall detect computers which crash or stop799 responding and set their state to {\tt dead}.\VER{TEST}{TLR:17}800 801 \item The IPP Controller shall attempt to re-establish communication802 with {\tt dead} computers.\VER{TEST}{TLR:17}803 804 \item The IPP Controller shall accept tasks from external users and805 systems, which may specify a desired CPU (node) and priority in806 addition to the task command.\VER{TEST}{TLR:17}807 808 \item The IPP Controller shall attempt to run pending tasks on the809 desired node, if available (not {\tt dead} or {\tt off}).\VER{TEST}{TLR:17}810 811 \item If the node is unavailable, the IPP Controller shall attempt to812 run the task on another node.\VER{TEST}{TLR:17}813 814 \item If the node is available, the IPP Controller shall attempt to run815 a given task only if no higher-priority tasks are available and no816 task is currently being executed.\VER{TEST}{TLR:17}817 818 \item The IPP Controller shall monitor the output from the task and819 write it to an associated log destination.\VER{TEST}{TLR:17}820 821 \item The IPP Controller shall monitor the execution status of each822 task currently executing on a node and perform the following823 actions:824 825 \begin{enumerate}826 \item identify the task as successful if it has a valid exit status.\VER{TEST}{TLR:17}827 \item identify the task as unsuccessful if it has an error exit status.\VER{TEST}{TLR:17}828 \item identify the task as unattempted if the computer crashed.\VER{TEST}{TLR:17}829 \end{enumerate}830 831 \item The IPP Controller shall accept and perform the following832 external commands:833 \begin{enumerate}834 \item add a task to the pending task list.\VER{TEST}{TLR:17}835 \item delete a specific task from the pending task list.\VER{TEST}{TLR:17}836 \item return the current status of a specific task.\VER{TEST}{TLR:17}837 \item return a list of all pending and non-pending tasks.\VER{TEST}{TLR:17}838 \item set a specified computer state to {\tt off} or {\tt dead}.\VER{TEST}{TLR:17}839 \item restrict a specified CPU to a class of tasks.\VER{TEST}{TLR:17}840 \item halt execution of a specified task.\VER{TEST}{TLR:17}841 \item set the IPP Controller state to {\tt finish}, {\tt abort}, or {\tt stop}.\VER{TEST}{TLR:17}842 \end{enumerate}843 844 934 \item The IPP Controller shall limit command latency to \tbr{$< 0.1$} seconds.\VER{TEST}{TLR:17} 845 935 … … 856 946 857 947 \subsubsection{Scheduler} 858 \begin{enumerate} 859 \item The IPP Scheduler shall send the analysis tasks which it 860 initiates to the IPP Controller.\VER{TEST}{TLR:17} 861 862 \item All analysis tasks sent by the IPP Scheduler shall include a 863 complete UNIX command with necessary arguments, the priority of the 864 task, and optionally the desired processing node.\VER{INSPECT}{TLR:17} 948 949 %% IPP Scheduler T & F 950 951 The IPP Scheduler tasks and functions: 952 953 \begin{itemize} 954 \item The IPP Scheduler sends the analysis tasks which it initiates to 955 the IPP Controller. 956 957 \item All analysis tasks sent by the IPP Scheduler include a complete 958 UNIX command with necessary arguments, the priority of the task, and 959 optionally the desired processing node. 960 961 \item When the IPP Scheduler is placed in the {\em paused state}, it 962 only initiates User-requested tasks. 963 964 \item When the IPP Scheduler is placed in the {\em interactive state}, 965 it initiates User-requested tasks as well as data transfer tasks. 966 967 \item When the IPP Scheduler is placed in the {\em automatic state}, 968 it initiates the most appropriate task based on the inputs and 969 dependency rules. 970 971 \item The IPP Scheduler sends the exit status of the analysis tasks to 972 the appropriate destination as defined by the task dependency table. 973 \end{itemize} 974 975 %% IPP Scheduler Requirements 976 977 The IPP Scheduler requirements: 978 979 \begin{enumerate} 980 \item The IPP Scheduler shall publish the static sky images to the 981 Pan-STARRS PSPS on a time-scale of \tbr{6 month}.\VER{TEST}{TLR:19} 865 982 866 983 \item The IPP Scheduler shall query the Databases on a regular basis … … 869 986 870 987 \item The IPP Scheduler shall accept new User input in real-time: 871 within 0.1 seconds of the request.\VER{TEST}{TLR:17} 872 873 \item When the IPP Scheduler is placed in the {\em paused state}, it 874 shall only initiate User-requested tasks.\VER{TEST}{TLR:17} 875 876 \item When the IPP Scheduler is placed in the {\em interactive state}, 877 it shall initiate User-requested tasks as well as data transfer 878 tasks.\VER{TEST}{TLR:17} 879 880 \item When the IPP Scheduler is placed in the {\em automatic state}, 881 it shall initiate the most appropriate task based on the inputs and 882 dependency rules.\VER{TEST}{TLR:17} 883 884 \item The IPP Scheduler shall send the exit status of the analysis 885 tasks to the appropriate destination as defined by the task 886 dependency table.\VER{TEST}{TLR:17} 887 888 \item The IPP Scheduler shall publish the static sky images to the 889 Pan-STARRS PSPS on a time-scale of \tbr{6 month}.\VER{TEST}{TLR:19} 988 within 0.1 seconds of the request.\VER{TEST}{TLR:17} 890 989 891 990 \item The IPP Scheduler shall publish the detected objects to the … … 903 1002 to the MOPS subsystem within 5 minutes of the image exposure 904 1003 time.\VER{TEST}{TLR:22} 905 906 \end{enumerate} 907 908 \subsection{Analysis Stages} 909 910 We now consider the requirements of the analysis tasks which shall be 911 performed by the IPP. These tasks represent the core of the required 912 IPP functionality; the architectural components discussed above can be 913 viewed as primarily supporting infrastructure to enable the analysis 914 tasks to be executed on the appropriate data and to store the results. 915 916 \subsubsection{Science Image Analysis} 1004 \end{enumerate} 1005 1006 %%%%%% Analysis Stages 1007 1008 %%%% Science Image Analysis Stages 1009 1010 \subsection{Science Image Analysis Stages} 1011 1012 We now consider the requirements of the science image analysis tasks 1013 which are performed by the IPP. These tasks represent the core of the 1014 required IPP functionality; the architectural components discussed 1015 above can be viewed as primarily supporting infrastructure to enable 1016 the analysis tasks to be executed on the appropriate data and to store 1017 the results. 917 1018 918 1019 The Science Image analysis stages together represent the basic data 919 analysis required by the IPP. There are several requirements which 920 shall be met by the collection of science image analysis stages as a 921 group. 1020 analysis required by the IPP. Integral to our operational concept for 1021 the IPP is the division of the science image analysis into four 1022 phases, each of which represents a complete analysis on a particular 1023 unit of data. The tasks and functions of these separate stages are 1024 discussed below. 1025 1026 \subsubsection{General Science Image Analysis Requirements} 1027 There are several requirements which shall be met by the collection of 1028 science image analysis stages as a group. 922 1029 923 1030 \begin{enumerate} … … 937 1044 static sky image, and update the corresponding exposure (S/N) maps, 938 1045 at a sustained rate of 1 exposure (2~GB) per \tbr{40 seconds}.\VER{TEST}{TLR:17} 939 940 \item The IPP Science Analysis shall detect and measure parameters of941 objects on the pre-processed science images.\VER{TEST}{TLR:12}942 943 \item The IPP Science Analysis shall detect and measure parameters of944 objects on the stacked science images.\VER{TEST}{TLR:13}945 946 \item The IPP Science Analysis shall detect and measure parameters of947 objects on the static sky images.\VER{TEST}{TLR:14}948 949 \item The IPP Science Analysis shall detect and measure parameters of950 objects on the difference images.\VER{TEST}{TLR:15}951 952 \item The IPP Science Analysis shall determine astrometry of the953 detected objects relative to an external astrometric reference with954 an accuracy of \tbr{750 mas} (for bright objects) in the955 Commissioning phase of the telescope.\VER{TEST}{TLR:4, TLR:3}956 957 \item The IPP Science Analysis shall determine astrometry of the958 detected objects relative to an external astrometric reference with959 an accuracy of \tbr{250 mas} (for bright objects) during the960 construction of the Pan-STARRS Astrometric Reference Catalog.\VER{ANALYSIS}{TLR:4, TLR:3}961 962 \item The IPP Science Analysis shall determine astrometry of the963 detected objects relative to the Pan-STARRS Astrometric Reference964 with an accuracy of \tbr{100 mas} (for bright objects) during normal965 operations.\VER{ANALYSIS}{TLR:4, TLR:3}966 967 \item The IPP Science Analysis shall determine photometry of the968 detected objects within an internal photometric system with scatter969 less than \tbr{25 millimags} (for bright objects) during the970 Commissioning phase of the telescope in photometric weather.\VER{ANALYSIS}{TLR:1, TLR:2}971 972 \item The IPP Science Analysis shall determine photometry of the973 detected objects within an internal photometric system with scatter974 less than \tbr{10 millimags} (for bright objects) during the975 construction of the Pan-STARRS Photometric Reference Catalog in976 photometric weather.\VER{ANALYSIS}{TLR:1, TLR:2}977 978 \item The IPP Science Analysis shall determine photometry of the979 detected objects within an internal photometric system with scatter980 less than \tbr{5 millimags} (for bright objects) during normal981 operations in photometric weather.\VER{ANALYSIS}{TLR:1, TLR:2}982 983 \item The IPP Science Analysis shall determine photometry of the984 detected objects in an external photometric system with scatter less985 than \tbr{10 millimags} (for bright objects) during normal operations986 in photometric weather.\VER{ANALYSIS}{TLR:1, TLR:2}987 1046 988 1047 \item The maximum latency between the acquisition of an image and the … … 997 1056 \end{enumerate} 998 1057 1058 %% Phase 1 999 1059 \subsubsection{Phase 1 : image processing preparation} 1000 1060 1001 \begin{enumerate} 1002 \item the Phase 1 analysis shall execute within 2 seconds for a 1003 complete FPA image.\VER{TEST}{TLR:17} 1004 1005 \item The Phase 1 analysis stage shall determine the astrometric 1006 solution of the complete camera (FPA image) with an accuracy of 1007 \tbr{1 arcsec} peak-to-peak deviation.\VER{TEST}{TLR:3} 1008 1009 \item The Phase 1 analysis stage shall load the guide star pixel and 1010 celestial coordinates.\TASK 1011 1012 \item If guide stars are not available, the Phase 1 analysis stage 1013 shall extract bright stars from the image.\TASK 1014 1015 \item This extraction shall be done in less than \tbr{1 second}.\VER{TEST}{TLR:17} 1016 1061 Phase 1 is the image processing preparation stage. The analysis is 1062 performed on a complete FPA. At the end of this analysis, the FPA is 1063 ready to be analysed in detail in Phase 2. The Phase 1 tasks and 1064 functions are: 1065 1066 \begin{itemize} 1067 1068 \item Extract FPA guide stars to determine astrometry across the full FPA 1069 1070 \item If no guide stars are available, phase 1 must measure the pixel 1071 coordinates of known bright stars expected in the field from the 1072 image data. 1073 1017 1074 \item The total number of stars and size of the bright-star 1018 1075 acquisition box shall be a user-configurable parameter in the range 1019 20 - 250.\TASK 1020 1076 20 - 250. 1077 1078 \item Calculate the Image cell / Sky cell overlaps for each image. 1079 Sky cells which do not have sufficient science image overlap \tbr{$< 1080 5\%$} are excluded from the overlap table. 1081 1082 \end{itemize} 1083 1084 The Phase 1 requirements are: 1085 1086 \begin{enumerate} 1087 \item the Phase 1 analysis shall execute within 2 seconds for a 1088 complete FPA image.\VER{TEST}{TLR:17, allocated} 1089 1090 \item The Phase 1 analysis stage shall determine the astrometric 1091 solution of the complete camera (FPA image) with an accuracy of 1 1092 arcsec peak-to-peak deviation.\VER{TEST}{TLR:3} 1093 1094 \item Bright-star extraction from the image data shall be performed in 1095 less than \tbr{1 second}.\VER{TEST}{TLR:17} 1096 1021 1097 \item In order for blind astrometry of an image to succeed, it is 1022 1098 necessary that approximate image coordinates be known. The Phase 1 1023 analysis shall be able to succeed despite initial coordinate errors 1024 as large as \tbr{20\arcsec}.\VER{TEST}{TLR:3} 1025 1026 \item The Phase 1 analysis stage shall construct a table of the 1027 overlaps between the science image to be processed and the static 1028 sky images.\TASK 1029 1030 \item The overlaps shall be overestimated by a small amount so that 1031 errors in astrometry at Phase 1 will not cause any valid static sky 1032 / science image pairs to be missed.\TASK 1033 1034 \item The amount of overlap shall be a user-configurable parameter.\VER{TEST}{TLR:6, TLR:11} 1099 analysis shall succeed despite initial coordinate errors as large as 1100 \tbr{20\arcsec}.\VER{TEST}{TLR:3} 1035 1101 1036 \item Sky cells which do not have sufficient science image overlap 1037 \tbr{$< 5\%$} shall be excluded from the overlap table.\VER{TEST}{TLR:6, TLR:11} 1038 1039 \item It is not unusual for an image to be obtained with invalid 1040 coordinates or without any valid stars. For example, the telescope 1041 control system may make an error and report the wrong time or 1042 coordinates. Or, the image may be obtained in exceptionally poor 1043 conditions with no detected stars. Phase 1 shall return a 1044 descriptive error message in these conditions.\TASK 1045 \end{enumerate} 1046 1102 \end{enumerate} 1103 1104 %% Phase 2 1047 1105 \subsubsection{Phase 2 : image reduction} 1048 1106 1049 The Phase~2 analysis is the detrend stage, in which the images from 1050 the detector are processed to remove instrumental signatures. 1051 1052 \paragraph{Timing} 1053 The complete Phase~2 analysis shall be performed in $< 38$ seconds for 1054 up to 4 complete FPA images at one time. \VER{TEST}{TLR:17} 1055 1056 \paragraph{Processing Recipe} 1057 \begin{enumerate} 1058 \item The Phase 2 analysis stage shall consult the processing recipe 1059 to define the necessary analysis steps performed by the Phase 2 1060 stage.\TASK 1061 1062 \item Phase 2 shall perform the analysis steps only if required by the 1063 processing recipe.\TASK 1064 1065 \item The processing recipe shall define the stages to be executed with 1066 optional exposure time and background flux limits to require or 1067 exclude select certain stages.\TASK 1068 \end{enumerate} 1069 1070 \paragraph{Detrend Image Convolutions} 1071 \begin{enumerate} 1072 1073 \item The Phase 2 analysis stage shall convolve the flat-field and 1074 high-spatial-frequency fringe images with the OT kernel.\VER{TEST}{TLR:1} 1075 1076 \item The Phase 2 analysis stage shall determine the OT kernel from the 1077 IPP Metadata Database.\TASK 1078 1079 \item If no OT kernel exists, this step shall be silently skipped.\TASK 1080 \end{enumerate} 1081 1082 \paragraph{Flag bad and saturated pixels} 1083 \begin{enumerate} 1084 1085 \item The Phase 2 analysis shall load the basic bad pixel map appropriate to 1086 the detector of interest.\VER{TEST}{TLR:18} 1087 1088 \item The Phase 2 analysis shall use the OT kernel to grow the traps in the 1089 raw bad pixel map. \VER{TEST}{TLR:18} 1090 1091 \item The Phase 2 analysis shall mask saturated pixels and a user-specified 1092 number of surrounding pixels.\VER{TEST}{TLR:18} 1093 1094 \item The Phase 2 analysis shall mask ghosts of bright stars.\VER{TEST}{TLR:18} 1095 1096 \item Different bits shall be set to identify different reasons for masking 1097 the pixels.\VER{TEST}{TLR:21} 1098 \end{enumerate} 1099 1100 \paragraph{Bias correction via overscan subtraction} 1101 \begin{enumerate} 1102 1103 \item Phase 2 shall perform bias subtraction on the image.\VER{TEST}{TLR:1} 1104 1105 \item Phase 2 shall choose the bias subtraction method and analysis statistic 1106 based on the user-configured parameters.\TASK 1107 1108 \item The bias correction shall be measured from the image overscan region.\TASK 1109 1110 \item The overscan region shall be determined from the Metadata DB.\TASK 1111 1112 \item The bias subtraction shall be capable of using one of following 1113 bias corrections, depending on the user parameters: 1114 1115 \begin{enumerate} 1116 \item subtract a single constant from the image. \VER{TEST}{TLR:1} 1117 1118 \item subtract a 1-D bias which varies along the overscan. The function to be used shall include 1119 a spline or a Chebychev polynomial derived from the data values along 1120 the overscan, as specified by the user parameters. \VER{TEST}{TLR:1} 1121 1122 \item correct the overscan {\em and} subtract a 2-D bias image which 1123 has been overscan corrected using one of the two methods above.\VER{TEST}{TLR:1} 1124 \end{enumerate} 1125 1126 \item The statistic used to calculate the overscan constant or the 1127 inputs to the spline and polynomial fits shall be derived from groups 1128 of pixels on the basis of one of several possible statistics, as 1129 specified by the user parameters.\VER{TEST}{TLR:1} 1130 1131 \item The choice of statistics shall include the sample and robust 1132 mean, median, and modes.\VER{TEST}{TLR:1} 1133 1134 \item In the case of a single constant, all of the overscan pixel 1135 values are used in the calculation of this statistic.\VER{TEST}{TLR:1} 1136 1137 \item In the case of the 1D functional representation, the input 1138 values to the fit shall represent the coordinate along the overscan, 1139 with the statistic derived from the pixels in the perpendicular 1140 direction at each location.\VER{TEST}{TLR:1} 1141 1142 \item If specified in the user parameters, sigma-clipping shall be 1143 performed on the input data values.\VER{TEST}{TLR:1} 1144 1145 \item The bias subtraction shall leave no residuals greater than \tbr{1 DN} 1146 peak-to-peak.\VER{TEST}{TLR:1} 1147 \end{enumerate} 1148 1149 \paragraph{Trim object image} 1150 \begin{enumerate} 1151 1152 \item The Phase 2 analysis shall trim the non-imaging pixels from the 1153 image.\TASK 1154 1155 \item The definition of the imaging area shall be determined from the 1156 Metadata Database.\TASK 1157 1158 \item Phase 2 shall trim pixel near the edges that have been 1159 compromised due to OT operation.\VER{TEST}{TLR:1} 1160 \end{enumerate} 1161 1162 \paragraph{Correct for non-linearity} 1163 1164 If required by the recipe, each chip shall be independently corrected for the 1165 effects of non-linearity.\VER{TEST}{TLR:1} 1166 1167 \paragraph{Flat-field correction} 1168 \begin{enumerate} 1169 1170 \item The Phase 2 analysis shall divide the science image by the 1171 provided flat-field image.\VER{TEST}{TLR:1} 1172 1173 \item The division shall handle zero-valued pixels in the flat-field 1174 image without raising floating point exceptions, setting the 1175 corresponding bit value in the mask.\VER{TEST}{TLR:1} 1176 1177 \item The flat-field images shall be appropriately normalized (see 1178 section \ref{mkcal}).\VER{TEST}{TLR:1} 1107 Phase 2 is the detrend stage, in which each detector is separately 1108 processed to remove instrumental signatures. The result of Phase 2 is 1109 an image with high-quality astrometric and photometric calibrations, a 1110 collection of objects detected in the image and characterized in a 1111 rudimentary way (star / non-stellar), and a measurement of the PSF 1112 across the detector. 1113 1114 The tasks and functions of Phase 2 are as follows: 1115 1116 \begin{itemize} 1117 1118 \item Convolve the flat-field and high-spatial-frequency fringe images 1119 with the OT kernel. 1120 1121 \item Mask ghosts of bright stars which introduce residual feature 1122 more significant than \tbr{1\%} of the background. 1123 1124 \item Bias subtract the image. 1125 1126 \item Correct each chip independently for non-linearity. 1127 1128 \item Flat-field correct the image. 1129 1130 \item Subtract a fit to the detector-dependent fringing pattern. 1131 1132 \item Subtract a fit to the low-spatial frequency sky background. 1133 1134 \item Identify `cosmic rays' on the basis of morphology. 1135 1136 \item Perform (positive) object detection on the processed images, 1137 down to a user-configured threshold, likely to be $\sim 20\sigma$. 1138 The detection threshold may optionally be a function of the average 1139 background flux or the local noise level. 1140 1141 \item Measure the following object parameters: 1142 1143 \begin{itemize} 1144 \item object centroid and position errors. 1145 \item an extended object position ($x_g, y_g$). 1146 \item instrumental PSF magnitude and error. 1147 \item local background level and error. 1148 \item second moments ($\sigma_{\rm min}, \sigma_{maj}$) of the object 1149 and their covariance matrix. 1150 \end{itemize} 1151 1152 \item Perform minimal object classification to distinguish objects 1153 which are consistent with a single PSF, objects which are 1154 inconsistently large, objects which are inconsistently small, and 1155 objects which are saturated. 1156 1157 \item Match the detected objects with known astrometric reference 1158 objects, including proper-motion compensation. 1159 1160 \item Fit the reference and detected object coordinates to determine 1161 astrometric parameters for the individual OTAs, including 1162 polynomials of the coordinates up to 3rd order (user-specified 1163 parameter). The Cell astrometric parameters are not allowed to vary 1164 in the fit, which uses outlier rejection to determine a robust 1165 solution. 1166 1167 \item Extract subrasters (`postage stamps') surrounding a 1168 user-specified list of coordinates from the flattened 1169 images, to be saved in the IPP Image Server. 1170 1171 \item measure the PSF variation as a function of detector position. 1172 1173 \end{itemize} 1174 1175 The Phase 2 requirements are: 1176 1177 \begin{enumerate} 1178 \item The complete Phase~2 analysis shall be performed in $< 38$ 1179 seconds for up to 4 complete FPA images at one 1180 time. \VER{TEST}{TLR:17} 1181 1182 \item The bias subtraction shall leave no residuals greater than 1183 \tbr{1 DN} peak-to-peak for images within the normal range of bias 1184 variations.\VER{TEST}{TLR:1} 1185 1186 \item The Phase 2 flat-field correction shall handle zero-valued 1187 pixels in the flat-field image without raising floating point 1188 exceptions, setting the corresponding bit value in the 1189 mask.\VER{TEST}{TLR:1} 1179 1190 1180 1191 \item The flat-fielded image shall have a consistent photometric 1181 zero-point across the chip, and across the full FPA, to within 0.2\% 1182 with peak-to-peak deviations of \tbr{0.5\%}.\VER{TEST}{TLR:1} 1183 \end{enumerate} 1184 1185 \paragraph{Sky \& Fringe subtraction} 1186 \begin{enumerate} 1187 1188 \item The Phase 2 analysis shall subtract the sky (and fringe where 1189 needed) contributions from the images.\VER{TEST}{TLR:1, TLR:5} 1192 zero-point across the chip, and across the full FPA, with scatter $< 1193 0.2\%$ and peak-to-peak deviations of $< 0.5\%$.\VER{ANALYSIS}{TLR:1} 1190 1194 1191 1195 \item The residual after the background subtraction shall have an 1192 1196 average offset of 0 counts, excluding the signal from astronomical 1193 features.\VER{ TEST}{TLR:5}1197 features.\VER{ANALYSIS}{TLR:5} 1194 1198 1195 1199 \item The background residuals shall have peak-to-peak variations of 1196 less than \tbr{1\%} of the input background amplitude.\VER{ TEST}{TLR:5}1200 less than \tbr{1\%} of the input background amplitude.\VER{ANALYSIS}{TLR:5} 1197 1201 1198 1202 \item The background residuals shall have a scatter of less than 1199 1203 \tbr{1\%} of the input background amplitude for apertures of less 1200 than \tbr{10~arcsec}.\VER{TEST}{TLR:1} 1201 \end{enumerate} 1202 1203 \paragraph{Identify `cosmic rays'} 1204 \begin{enumerate} 1205 1206 \item The Phase 2 analysis shall detect cosmic rays with flux $> 1207 5\sigma$ by morphology in single images with an efficiency of $> 95$\%. 1208 \VER{TEST}{TLR:18} 1209 1210 \item The Phase 2 analysis shall mask detected cosmic rays with a 1211 unique bit value in the mask.\TASK 1212 1213 \item The Phase 2 analysis shall extend the masked region by a 1214 user-configurable growth factor.\TASK 1215 1216 \item The Phase 2 analysis shall perform the cosmic ray detection only 1217 if it is required by the analysis recipe.\TASK 1218 \end{enumerate} 1219 1220 \paragraph{Find objects in the image} 1221 \begin{enumerate} 1222 1223 \item The Phase 2 analysis shall perform object detection on the 1224 processed images.\VER{TEST}{TLR:12} 1225 1226 \item The object detection process shall detect all objects above a 1227 user-configured threshold.\TASK 1228 1229 \item The threshold shall be a positive value; negative values shall 1230 invoke an error.\TASK 1231 1232 \item The detection threshold shall optionally be a function of the 1233 average background flux or the local noise level.\TASK 1234 1235 \item The object detection shall measure the following object 1236 parameters: 1237 \begin{enumerate} 1238 \item object centroid and position errors\VER{TEST}{TLR:12} 1239 \item an extended object position ($x_g, y_g$)\VER{TEST}{TLR:12} 1240 \item instrumental PSF magnitude and error\VER{TEST}{TLR:12} 1241 \item local background level and error\VER{TEST}{TLR:12} 1242 \item second moments ($\sigma_{\rm min}, \sigma_{maj}$) of the object 1243 and their covariance matrix\VER{TEST}{TLR:12} 1244 \end{enumerate} 1245 1246 \item Minimal object classification shall be performed to distinguish 1247 objects which are consistent with a single PSF, objects which are 1248 inconsistently large, objects which are inconsistently small, and 1249 objects which are saturated.\VER{TEST}{TLR:12} 1250 1251 \item The resulting collection of detected objects shall be saved along 1252 with the relevant image metadata (\ie filter, exposure time, etc).\VER{TEST}{TLR:20} 1253 \end{enumerate} 1254 1255 \paragraph{Astrometry} 1256 \begin{enumerate} 1257 1258 \item The Phase 2 analysis shall match the detected objects with known 1259 astrometric reference objects.\VER{TEST}{TLR:3} 1260 1261 \item The astrometric reference object coordinates shall be adjusted 1262 for proper motion.\VER{TEST}{TLR:3} 1263 1264 \item The reference and detected object coordinates shall be fit to 1265 determine astrometric parameters for the individual OTAs.\VER{TEST}{TLR:3} 1266 1267 \item The OTA astrometric parameters shall include polynomials of the 1268 coordinates up to 3rd order.\VER{TEST}{TLR:3} 1269 1270 \item The fitted number of polynomial orders shall be a user-configured 1271 parameter.\TASK 1272 1273 \item The Cell astrometric parameters shall not be allowed to vary in 1274 the fit.\VER{}{} 1275 1276 \item The fit shall be robust, rejecting outlier matches (either stars 1277 with poorly determined proper motion or spurious matches).\VER{TEST}{TLR:3} 1204 than \tbr{10~arcsec}.\VER{ANALYSIS}{TLR:1} 1205 1206 \item The Phase 2 analysis shall detect cosmic rays with flux $> 5\sigma$ by 1207 morphology in single images with an efficiency of $> 95$\% for 1208 images which are not undersampled. \VER{TEST}{TLR:18} 1278 1209 1279 1210 \item The resulting astrometric solution shall be consistent across the … … 1281 1212 \end{enumerate} 1282 1213 1283 \paragraph{Postage Stamps} 1284 \begin{enumerate} 1285 1286 \item The Phase 2 analysis shall extract subrasters (`postage stamps') 1287 surrounding a user-specified list of coordinates from the flattened 1288 images.\VER{TEST}{TLR:12} 1289 1290 \item The postage stamp images shall be saved in the IPP Image Server.\VER{TEST}{TLR:12} 1291 \end{enumerate} 1292 1214 %% Phase 3 1293 1215 \subsubsection{Phase 3 : exposure analysis} 1294 \begin{enumerate} 1295 1296 \item The Phase 3 analysis shall use the objects detected in Phase 2, 1297 matched with a user-specified reference photometry catalog, to 1298 determine the image photometric zero point and zero-point variations 1299 across the field.\VER{TEST}{??} 1216 1217 The Phase 3 analysis uses the objects detected in Phase 2 and external 1218 reference catalogs to determine improved photometric and astrometric 1219 calibrations for the FPA as a whole, and to improve the measurement of 1220 the PSF and sky variations across the field. The Phase 3 tasks and 1221 functions are as follows: 1222 1223 \begin{itemize} 1224 1225 \item Phase 3 uses the objects detected in Phase 2, matched with a 1226 user-specified reference photometry catalog, to determine the image 1227 photometric zero point and zero-point variations across the field. 1300 1228 1301 1229 \item If zero-point variations are significant (\tbr{$> 0.01$ mag 1302 peak-to-peak}), the zero-point variations shall be modeled with a 1303 polynomial correction of order 3 or less.\VER{TEST}{TLR:1} 1304 1305 \item The photometric nature of the FPA image shall be categorized on 1306 the basis of the zero-point consistency, the transparency compared 1307 with recent long-term measurements in the filter, and the external 1308 indicators of photometricity.\VER{TEST}{TLR:2} 1309 1310 \item The Phase 3 analysis shall use the objects detected in Phase 2, 1311 matched with an appropriate astrometric reference catalog, to 1312 improve the distortion model used for the image.\VER{TEST}{TLR:3} 1313 1314 \item The resulting astrometric accuracy shall be consistent across 1315 the field to 30 mas.\VER{TEST}{TLR:4} 1316 1317 \item The resulting astrometric accuracy shall be limited by the 1230 peak-to-peak}), the zero-point variations are modeled with a 1231 polynomial correction of order 3 or less. 1232 1233 \item The photometric nature of the FPA image is categorized on the 1234 basis of the zero-point consistency, the transparency compared with 1235 recent long-term measurements in the filter, and the external 1236 indicators of photometricity. 1237 1238 \item Phase 3 uses the objects detected in Phase 2, matched with an 1239 appropriate astrometric reference catalog, to improve the distortion 1240 model used for the image. The resulting astrometric accuracy is 1241 consistent across the field to 30 mas, and is limited by the 1318 1242 astrometric reference catalog, (eg, 100 - 250 mas for 1319 USNO-B1.0).\VER{TEST}{TLR:3} 1320 1321 \item The Phase 3 analysis shall modify the background correction of 1322 Phase 2 based on the full-field statistics to achieve an accuracy of 1\% 1323 of the background.\VER{TEST}{TLR:5} 1243 USNO-B1.0). 1244 1245 \item The Phase 3 analysis modifies the background correction of Phase 1246 2 based on the full-field statistics to achieve an accuracy of 1\% 1247 of the background. 1248 1249 \end{itemize} 1250 1251 The Phase 3 requirements are: 1252 1253 \begin{enumerate} 1324 1254 1325 1255 \item The complete Phase~3 analysis shall be performed in $< 2$ 1326 1256 seconds for up to 4 complete FPA images at one time. \VER{TEST}{TLR:17} 1327 1257 1328 \end{enumerate} 1329 1258 \item For images obtained under normal observing conditions, the 1259 resulting astrometric solution shall have a residual scatter of $< 1260 30$ milliarcseconds when calibrated with the AP Survey reference 1261 catalog and $< 100$ milliarcseconds when calibrated with the USNO-B 1262 catalog.\VER{ANALYSIS}{TLR:} 1263 1264 \item For images obtained under normal observing conditions, the 1265 resulting astrometric solution shall have a precision relative to 1266 ICRS of better than 100 milliarcseconds.\VER{ANALYSIS}{TLR:} 1267 1268 \item For images obtained under photometric conditions or minimal 1269 cirrus conditions ($< 0.1$ mag total extinction), the resulting 1270 photometric calibration shall have a relative accuracy of 5 1271 millimagnitudes.\VER{ANALYSIS}{TLR:} 1272 1273 \item For images obtained under photometric conditions or minimal 1274 cirrus conditions ($< 0.1$ mag total extinction), the resulting 1275 photometric calibration shall have an absolution photometric 1276 accuracy of 10 millimagnitudes when calibrated relative to the AP 1277 Survey reference catalog.\VER{ANALYSIS}{TLR:} 1278 1279 \item For images obtained under photometric conditions or minimal 1280 cirrus conditions ($< 0.1$ mag total extinction) and under the moon 1281 conditions listed in Table~\ref{moonconditions}, the resulting sky 1282 background subtraction shall leave behind peak-to-peak residuals $< 1283 1$\% of the input sky flux.\VER{ANALYSIS}{TLR:} 1284 1285 \end{enumerate} 1286 1287 %% Phase 4 1330 1288 \subsubsection{Phase 4 : image combination} 1331 1289 1332 1290 Phase 4 is the image combination stage, in which multiple images of 1333 1291 the same portion of the sky are merged and confronted with the static 1334 sky image. Requirements for the different steps of the process are 1335 given below. 1336 1337 \paragraph{Extract image pixels} 1338 \begin{enumerate} 1339 1340 \item The Phase 4 analysis shall determine the corresponding set of 1341 image pixels for a given sky cell.\TASK 1342 1343 \item The corresponding image pixels shall be extracted from the input 1344 images, using the astrometric information for each OTA and Cell to 1345 determine the exact overlaps.\TASK 1346 1292 sky image. The Phase 4 tasks and functions are as follows: 1293 1294 \begin{itemize} 1295 1296 \item The Phase 4 analysis determines the corresponding set of image 1297 pixels for a given sky cell. 1298 1299 \item These pixels are extracted from the input images, using the 1300 astrometric information for each OTA and Cell to determine the exact 1301 overlaps. 1302 1303 \item The Phase 4 analysis skips any sky cells with fewer than 5\% of 1304 their pixels overlapping the input images. 1305 1306 \item Pixels which have been extracted from the input images are 1307 geometrically warped to match the corresponding pixels in the sky 1308 image. This transformation is based on the measured astrometric 1309 solution for the input images relative to the reference catalog used 1310 to generate the static sky image. The warping may use a 1311 locally-linear astrometric solution to speed the processing. 1312 1313 \item Phase 4 determines the appropriate photometry scaling factors 1314 needed to combine the images photometrically. 1315 1316 \item When multiple images are combined, the group of input pixels 1317 which contribute to an output pixel are examined and pixels from the 1318 group of images which are inconsistent with the ensemble (by an 1319 amount defined by the user-configurable parameters) are identified 1320 and flagged, though this outlier rejection shall be performed 1321 optionally. 1322 1323 \item The resulting collection of pixels is used to construct a single 1324 output image, cleaned of the outliers. 1325 1326 \item The cleaned, combined image is PSF matched with the static sky 1327 image. 1328 1329 \item The static sky image is subtracted from the stacked, cleaned 1330 image, resulting in the difference image (P4$\Delta$ image) 1331 1332 \item The Phase 4 analysis performs object detection on the difference 1333 images. All objects in the difference image above a user-configured 1334 signficance threshold are detected, including both positive and 1335 negative flux objects. The detection threshold may optionally be a 1336 function of the average background flux or the local noise 1337 level. The likely significance threshold is $\sim 3\sigma$. 1338 1339 \item P4$\Delta$ objects have the following object parameters 1340 measured: 1341 \begin{itemize} 1342 \item object centroid and position errors. 1343 \item instrumental PSF magnitude and error. 1344 \item local background level and error. 1345 \item streak L, $\phi$, $\sigma_L$, $\sigma_\phi$. 1346 \item second moments ($\sigma_{\rm min}, \sigma_{maj}$) and their covariance matrix. 1347 \end{itemize} 1348 1349 \item Minimal object classification is performed to distinguish 1350 objects which are consistent with a single PSF, objects which are 1351 inconsistent, and objects which are saturated. 1352 1353 \item The pixels belonging to variable sources are masked in the 1354 input image. 1355 1356 \item A new, cleaned image is constructed from the masked input images 1357 (P4$\Sigma$ image) 1358 1359 \item Object detection is performed on the cleaned, summed image to a 1360 user-configured significance threshold ($\sim 7\sigma$). Only 1361 positive flux object are considered. The detection threshold may 1362 optionally be a function of the average background flux or the local 1363 noise level. 1364 1365 \item P4$\Sigma$ objects have the following object parameters 1366 measured: 1367 \begin{itemize} 1368 \item object centroid and position errors. 1369 \item an extended object position ($x_g, y_g$). 1370 \item instrumental PSF magnitude and error. 1371 \item local background level and error. 1372 \item second moments ($\sigma_{\rm min}, \sigma_{maj}$) and their 1373 covariance matrix. 1374 \item the Petrosian radius, magnitude, axis ratio, and angle. 1375 \item the S\'ersic radius, magnitude, axis ratio, angle, and parameter $\nu$. 1376 \end{itemize} 1377 1378 \item Minimal object classification is performed to distinguish 1379 objects which are consistent with a single PSF, objects which are 1380 inconsistent, and objects which are saturated. 1381 1382 \item Before the image is added to the static sky, it must pass Q/A 1383 tests: 1384 \begin{itemize} 1385 \item the measured photometry scatter for the image must be less 1386 than \tbr{1\%}. 1387 1388 \item the measured astrometry scatter for the image must be less 1389 than \tbr{30 mas}. 1390 \end{itemize} 1391 1392 \item The final, cleaned input image is added to the static sky so 1393 that an incrementally-deeper static sky image may be 1394 made. 1395 \end{itemize} 1396 1397 The Phase 4 requirements are: 1398 1399 \begin{enumerate} 1347 1400 \item The Phase 4 analysis shall not miss any pixels in this match, and 1348 1401 it shall read no more than 20\% more pixels than necessary from the 1349 1402 input images.\VER{TEST}{TLR:17} 1350 1403 1351 \item The Phase 4 analysis shall skip any sky cells with fewer than 5\% 1352 of their pixels overlapping the input images.\VER{TEST}{TLR:17} 1353 \end{enumerate} 1354 1355 \paragraph{Transform pixel coordinates} 1356 \begin{enumerate} 1357 1358 \item Pixels which have been extracted from the input images shall be 1359 mapped to the corresponding pixels in the sky image.\TASK 1360 1361 \item The transformation shall be based on the measured astrometric 1362 solution for the input images relative to the reference catalog used 1363 to generate the static sky image.\VER{TEST}{TLR:3} 1364 1365 \item This warping shall use a locally-linear astrometric solution.\VER{TEST}{TLR:17} 1366 1367 \item The output image shall maintain photometric consistency with the 1368 input image to within 0.2\%.\VER{TEST}{TLR:1} 1369 \end{enumerate} 1370 1371 \paragraph{Flux matching} 1372 1373 The Phase 4 analysis shall determine appropriate photometry scaling 1374 factors needed to combine the images photometrically.\TASK 1375 1376 \paragraph{Image outlier pixel rejection} 1377 \begin{enumerate} 1378 1379 \item When multiple images are combined, the group of input pixels 1380 which contribute to an output pixel shall be examined and pixels from 1381 the group of images which are inconsistent with the ensemble (by an 1382 amount defined by the user-configurable parameters) shall be 1383 identified and flagged.\VER{TEST}{TLR:18} 1384 1385 \item This outlier rejection shall be performed optionally.\TASK 1386 1387 \end{enumerate} 1388 1389 \paragraph{Initial cleaned image} 1390 1391 The resulting collection of pixels shall be used to construct a single 1392 output image, cleaned of the outliers.\VER{TEST}{TLR:18} 1393 1394 \paragraph{PSF matching} 1395 1396 The cleaned, combined image shall be PSF matched with the static sky image.\VER{TEST}{TLR:15} 1397 1398 \paragraph{Image Subtraction} 1399 1400 The static sky image shall be subtracted from the stacked, cleaned 1401 image. \VER{TEST}{TLR:15} 1402 1403 \paragraph{Find objects in the image} 1404 \begin{enumerate} 1405 1406 \item The Phase 4 analysis shall perform object detection on the 1407 difference images.\VER{TEST}{TLR:15} 1408 1409 \item All objects in the difference image shall be detected and the 1410 pixels belonging to variable sources flagged in the input image.\VER{TEST}{TLR:15} 1411 1412 \item The object detection shall detect all objects above a 1413 user-configured threshold.\VER{TEST}{TLR:15} 1414 1415 \item Both positive and negative objects shall be detected: the 1416 specified threshold shall define the absolute value of the detection 1417 thresholds.\VER{TEST}{TLR:15} 1418 1419 \item The detection threshold shall optionally be a function of the 1420 average background flux or the local noise level.\VER{TEST}{TLR:15} 1421 1422 \item The object detection shall measure the following object parameters: 1423 \begin{enumerate} 1424 \item object centroid and position errors\VER{TEST}{TLR:15} 1425 \item instrumental PSF magnitude and error\VER{TEST}{TLR:15} 1426 \item local background level and error\VER{TEST}{TLR:15} 1427 \item streak L, $\phi$, $\sigma_L$, $\sigma_\phi$\VER{TEST}{TLR:15} 1428 \item second moments ($\sigma_{\rm min}, \sigma_{maj}$) and their covariance matrix\VER{TEST}{TLR:15} 1429 \end{enumerate} 1430 1431 \item Minimal object classification shall be performed to distinguish 1432 objects which are consistent with a single PSF, objects which are 1433 inconsistent, and objects which are saturated.\VER{TEST}{TLR:15, TLR:18} 1434 1435 \item The resulting collection of detected objects shall be saved along 1436 with the relevant image metadata (\ie filter, exposure time, etc).\VER{TEST}{TLR:22} 1437 \end{enumerate} 1438 1439 \paragraph{Cleaned Input Image} 1440 \begin{enumerate} 1441 1442 \item The pixels flagged as being from the difference image sources 1443 shall be masked in the input images.\VER{TEST}{TLR:6, TLR:11} 1444 1445 \item A new, cleaned image shall be constructed from the masked input 1446 images.\VER{TEST}{TLR:6, TLR:11} 1447 1448 \end{enumerate} 1449 1450 \paragraph{Find objects in the image} 1451 \begin{enumerate} 1452 1453 \item The Phase 4 analysis shall perform object detection on the 1454 cleaned, summed image.\VER{TEST}{TLR:13} 1455 1456 \item The object detection shall detect all objects above a 1457 user-configured threshold.\VER{TEST}{TLR:13} 1458 1459 \item The threshold shall be a positive value; negative values shall 1460 invoke an error.\VER{TEST}{TLR:13} 1461 1462 \item The detection threshold optionally shall be a function of the 1463 average background flux or the local noise level.\VER{TEST}{TLR:13} 1464 1465 \item The object detection shall measure the following object parameters: 1466 \begin{enumerate} 1467 \item object centroid and position errors\VER{TEST}{TLR:13} 1468 \item an extended object position ($x_g, y_g$)\VER{TEST}{TLR:13} 1469 \item instrumental PSF magnitude and error\VER{TEST}{TLR:13} 1470 \item local background level and error\VER{TEST}{TLR:13} 1471 \item second moments ($\sigma_{\rm min}, \sigma_{maj}$) and their 1472 covariance matrix\VER{TEST}{TLR:13} 1473 \item the Petrosian radius, magnitude, axis ratio, and angle\VER{TEST}{TLR:13} 1474 \item the S\'ersic radius, magnitude, axis ratio, angle, and parameter $\nu$.\VER{TEST}{TLR:13} 1475 \end{enumerate} 1476 1477 \item Minimal object classification shall be performed to distinguish 1478 objects which are consistent with a single PSF, objects which are 1479 inconsistent, and objects which are saturated.\VER{TEST}{TLR:13} 1480 1481 \item The resulting collection of detected objects shall be saved along 1482 with the relevant image metadata (\ie filter, exposure time, etc).\VER{TEST}{TLR:20} 1483 \end{enumerate} 1484 1485 \paragraph{Image Processing Q/A} 1486 1487 Before the image is added to the static sky, it shall pass Q/A tests: 1488 1489 \begin{enumerate} 1490 \item the measured photometry scatter for the image shall be less than 1491 \tbr{1\%}.\VER{TEST}{TLR:1} 1492 1493 \item the measured astrometry scatter for the image shall be less than 1494 \tbr{30 mas}.\VER{TEST}{TLR:3} 1495 1496 \end{enumerate} 1497 1498 \paragraph{Update static sky} 1499 1500 The final, cleaned input image shall be added to the static sky so that 1501 an incrementally-deeper static sky image may be made.\VER{TEST}{TLR:6, TLR:11} 1502 1503 \paragraph{Timing} 1504 The complete Phase~4 analysis shall be performed in $< 38$ seconds for 1505 up to 4 complete FPA images at one time. \VER{TEST}{TLR:17} 1506 1507 \subsubsection{Calibration Stages} 1404 \item The warped images shall maintain photometric consistency with 1405 the input image to within 0.2\%.\VER{TEST}{TLR:1} 1406 1407 \item The sky representation shall degrade the image quality by less 1408 than 10 milliarcseconds added in quadrature to the input image 1409 quality.\VER{TEST}{TLR:1} 1410 1411 \item The complete Phase~4 analysis shall be performed in $< 38$ 1412 seconds for up to 4 complete FPA images at one 1413 time. \VER{TEST}{TLR:17} 1414 1415 \item completeness? 1416 1417 \item contamination? 1418 1419 \end{enumerate} 1420 1421 \subsection{Calibration Stages} 1508 1422 \label{mkcal} 1423 1424 \subsubsection{General Calibration Construction Requirements} 1509 1425 1510 1426 The Calibration analysis stages construct the various types of … … 1521 1437 \end{enumerate} 1522 1438 1523 Requirements for each of the individual calibration analysis stages 1524 are discussed in detail below. 1525 1526 \paragraph{bias images} 1527 \begin{enumerate} 1528 1529 \item The \code{bias} calibration stage shall construct a master bias 1530 image from a collection of raw bias images.\TASK 1531 1532 \item The \code{bias} calibration stage shall correct the input images 1533 based on the overscan region.\TASK 1534 1535 \item The \code{bias} calibration stage shall combine the input images 1536 using the statistic specified by the user, selected from one of the 1439 \subsubsection{Bias Image Creation} 1440 1441 The Bias calibration stage constructs a master bias image from a 1442 collection of raw bias images. The tasks and functions include: 1443 1444 \begin{itemize} 1445 1446 \item The Bias calibration stage corrects the input images based on 1447 the overscan region, determined from either the header or from 1448 metadata. 1449 1450 \item The Bias calibration stage combines the input images using the 1451 statistic specified by the user, selected from one of the following: 1452 sample mean, median, and mode, robust mean, median, and mode, and 1453 the clipped mean and median. 1454 1455 \item The Bias calibration stage construct residual images, in which 1456 the master bias is applied to the input images. 1457 1458 \item Outlier residual images, those for which the residual bias and 1459 variance in the bias image are excessive, are excluded from the 1460 input image stack and the bias image reconstructed. 1461 \end{itemize} 1462 1463 \subsubsection{Dark Image Creation} 1464 1465 The Dark calibration stage shall construct a master dark image from a 1466 collection of raw dark images. The tasks and functions include: 1467 1468 \begin{itemize} 1469 1470 \item The Dark calibration stage raises an error if the input images 1471 have exposure times which deviate by more than 1472 \tbr{2\%}. 1473 1474 \item The Dark calibration stage corrects the input dark images for 1475 the bias. 1476 1477 \item The Dark calibration stage combines the input images using the 1478 statistic specified by the user, selected from one of the following: 1479 sample mean, median, and mode, robust mean, median, and mode, and 1480 the clipped mean and median. 1481 1482 \item The Dark calibration stage constructs residual images, in which 1483 the master dark is applied to the input images. 1484 1485 \item Outlier residual images, those for which the residual level and 1486 variance are excessive, are excluded from the input image stack and 1487 the dark image reconstructed. 1488 \end{itemize} 1489 1490 \subsubsection{Flat-field Image Creation} 1491 1492 The Flat-field calibration stage constructs a master flat-field image 1493 from a collection of raw flat-field images. The tasks and functions 1494 include: 1495 1496 \begin{itemize} 1497 1498 \item The Flat-field calibration stage accepts a group of images from 1499 one of the following flat-field sources: dome, twilight, 1500 night-sky. 1501 1502 \item The flat-field calibration stage raises an error if the 1503 input images in a single stack used more than one of the above 1504 flat-field sources or multiple filters. 1505 1506 \item The Flat-field calibration stage corrects the input flat-field 1507 images for the bias and dark. 1508 1509 \item The Flat-field calibration stage combines the input images using 1510 the statistic specified by the user, selected from one of the 1537 1511 following: sample mean, median, and mode, robust mean, median, and 1538 mode, and the clipped mean and median.\TASK 1539 1540 \item The \code{bias} calibration stage shall construct residual 1541 images, in which the master bias is applied to the input images.\TASK 1542 1543 \item Outlier residual images, those for which the residual bias and 1544 variance in the bias image are excessive ($> 1DN$), shall be excluded 1545 from the input image stack the the bias image reconstructed.\VER{TEST}{TLR:1} 1546 \end{enumerate} 1547 1548 \paragraph{dark images} 1549 \begin{enumerate} 1550 1551 \item The \code{dark} calibration stage shall construct a master dark 1552 image from a collection of raw dark images.\TASK 1553 1554 \item The \code{dark} calibration stage shall raise an error if the 1555 input images have exposure time which deviate by more than 1556 \tbr{2\%}.\VER{TEST}{TLR:1} 1557 1558 \item The \code{dark} calibration stage shall correct the input dark 1559 images for the bias.\TASK 1560 1561 \item The \code{dark} calibration stage shall combine the input images 1562 using the statistic specified by the user, selected from one of the 1563 following: sample mean, median, and mode, robust mean, median, and 1564 mode, and the clipped mean and median.\VER{TEST}{TLR:1} 1565 1566 \item The \code{dark} calibration stage shall construct residual 1567 images, in which the master dark is applied to the input images.\TASK 1568 1569 \item Outlier residual images, those for which the residual level and 1570 variance are excessive ($> 1DN$), shall be excluded from the input 1571 image stack the the dark image reconstructed.\VER{TEST}{TLR:1} 1572 \end{enumerate} 1573 1574 \paragraph{flat-field images} 1575 \begin{enumerate} 1576 1577 \item The \code{flat-field} calibration stage shall construct a master 1578 flat-field image from a collection of raw flat-field images.\VER{TEST}{TLR:1} 1579 1580 \item The \code{flat-field} calibration stage shall accept a group of 1581 images from one of the following flat-field sources: dome, twilight, 1582 night-sky.\VER{TEST}{TLR:1} 1583 1584 \item The \code{flat-field} calibration stage shall raise an error if 1585 the input images in a single stack used more than one of the above 1586 flat-field sources or multiple filters.\TASK 1587 1588 \item The \code{flat-field} calibration stage shall correct the input 1589 flat-field images for the bias and dark.\TASK 1590 1591 \item The \code{flat-field} calibration stage shall combine the input 1592 images using the statistic specified by the user, selected from one 1593 of the following: sample mean, median, and mode, robust mean, 1594 median, and mode, and the clipped mean and median.\VER{TEST}{TLR:1} 1595 1596 \item The \code{flat-field} calibration stage shall construct residual 1597 images, in which the master flat-field is applied to the input 1598 images.\TASK 1512 mode, and the clipped mean and median. 1513 1514 \item The Flat-field calibration stage constructs residual images, in 1515 which the master flat-field is applied to the input images. 1599 1516 1600 1517 \item Outlier residual images, those for which the residual level and 1601 1518 variance are excessive ($> 0.1$\%, or 1.02 times the Poisson limit 1602 of the flat-field image), shall be excluded from the input image 1603 stack the the flat-field image reconstructed.\VER{TEST}{TLR:1} 1604 \end{enumerate} 1605 1606 \paragraph{mask images} 1607 \begin{enumerate} 1608 1609 \item The \code{mask} calibration stage shall construct a bad-pixel 1610 mask from a stack of raw flat-field images and a master flat-field 1611 image.\VER{TEST}{TLR:1} 1612 1613 \item The \code{mask} calibration stage shall mask the pixels which are 1519 of the flat-field image), are excluded from the input image stack 1520 and the flat-field image reconstructed. 1521 \end{itemize} 1522 1523 \subsubsection{Mask Image Creation} 1524 1525 The Mask calibration stage constructs a bad-pixel mask from a stack of 1526 raw flat-field images and a master flat-field image. The tasks and 1527 functions include: 1528 1529 \begin{itemize} 1530 1531 \item The Mask calibration stage masks the pixels which are 1614 1532 inconsistent in the input flats by more than \tbr{1\%}, given 1615 sufficient signal-to-noise in the input flats. \VER{TEST}{TLR:1}1616 1617 \item The \code{mask} calibration stage shallmask the pixels which are1533 sufficient signal-to-noise in the input flats. 1534 1535 \item The Mask calibration stage mask the pixels which are 1618 1536 consistently low or high in the input flats by more than a factor of 1619 \tbr{3} beyond the typical pixel.\VER{TEST}{TLR:1} 1620 1621 \item The \code{mask} calibration stage shall mask the pixels 1622 identified in a table of bad pixels generated externally to the 1623 calibration stage.\TASK 1624 1625 \item The \code{mask} calibration stage shall use multiple bit values 1626 to identify the different types of masked pixels.\TASK 1627 1628 \item The \code{mask} calibration stage shall raise an error if the 1629 input images generate too many bad pixels in the mask.\TASK 1630 \end{enumerate} 1631 1632 \paragraph{fringe frames} 1633 \begin{enumerate} 1634 1635 \item The \code{fringe} calibration stage shall construct a master fringe 1537 \tbr{3} beyond the typical pixel. 1538 1539 \item The Mask calibration stage masks the pixels identified in a 1540 table of bad pixels generated externally to the calibration stage. 1541 1542 \item The Mask calibration stage uses multiple bit values to identify 1543 the different types of masked pixels. 1544 1545 \item The Mask calibration stage raises an error if the input images 1546 generate too many bad pixels in the mask. 1547 \end{itemize} 1548 1549 \subsubsection{Fringe-frame Creation} 1550 1551 The Fringe-frame Creation calibration stage constructs a master fringe 1636 1552 frame from a stack of raw night-time sky images or from a stack of 1637 dome fringe frames.\VER{TEST}{TLR:1, TLR:5} 1638 1639 \item The \code{fringe} calibration stage shall raise an error if the input 1640 stack consists is images generated with more than one type of fringe 1641 source or with multiple filters.\TASK 1642 1643 \item The \code{fringe} calibration stage shall flatten the input images 1644 to remove the pixel-to-pixel sensitivity variations of the detector.\VER{TEST}{TLR:1} 1645 1646 \item The \code{fringe} calibration stage shall measure the fringe amplitude 1647 on the input fringe images.\TASK 1648 1649 \item The \code{fringe} calibration stage shall scale the input fringe images 1650 based on the fringe amplitude.\TASK 1651 1652 \item The \code{fringe} calibration stage shall combine the scaled input 1653 images using the statistic specified by the user, selected from one of 1654 the following: sample mean, median, and mode, robust mean, median, and 1655 mode, and the clipped mean and median.\VER{TEST}{TLR:5} 1656 1657 \item The \code{fringe} calibration stage shall construct residual images, in 1658 which the master fringe image is applied to the input images, along 1659 with all necessary preceding calibration images.\TASK 1660 1661 \item The \code{fringe} calibration stage shall measure the residual fringe 1662 amplitude on the residual images.\TASK 1663 \end{enumerate} 1664 1665 \paragraph{low-spatial-frequency sky models} 1666 1667 The \code{sky model} calibration stage shall construct a sky model 1668 image from a stack of raw night-time sky images.\VER{TEST}{TLR:5} 1669 1670 \paragraph{Flat-field correction frame} 1671 \begin{enumerate} 1672 1673 \item The \code{flat-field correction} calibration stage shall construct a 1674 flat-field correction image from dithered observations of a stellar 1675 field.\VER{TEST}{TLR:1} 1676 1677 \item The \code{flat-field correction} calibration stage shall construct a 1678 flat-field correction image for each filter and camera independently.\TASK 1679 1680 \item The \code{flat-field correction} calibration stage shall construct a 1681 correction image which makes the photometry of multiple observations 1682 of the same stellar source consistent at different locations in the 1683 focal plane.\VER{TEST}{TLR:1} 1684 1685 \item The \code{flat-field correction} calibration stage shall construct 1686 corrected flat-field images using the measured correction.\VER{TEST}{TLR:1} 1687 1688 \item The \code{flat-field correction} calibration stage shall determine the 1689 consistency of the corrected flat-field images using the dithered 1690 stellar field observations flattened with the corrected flat-field 1691 image.\TASK 1692 \end{enumerate} 1693 1694 \paragraph{Non-linearity correction frames} 1695 \begin{enumerate} 1696 1697 \item The \code{non-linear correction} calibration stage shall construct a 1698 non-linear correction from a collection of images of a constant source 1699 with varying exposure times.\VER{TEST}{TLR:1} 1700 1701 \item The \code{non-linear correction} calibration stage shall construct a 1702 non-linear correction which linearizes the detector fluxes $<0.5\%$.\VER{TEST}{TLR:1} 1703 1704 \item The \code{non-linear correction} calibration stage shall determine the 1705 saturation regime, in which the non-linear correction is no longer 1706 consistent to $<0.5\%$.\VER{TEST}{TLR:1} 1707 \end{enumerate} 1708 1709 \paragraph{Telescope Astrometry Parameters} 1710 1711 \begin{enumerate} 1712 \item The IPP Calibration system shall construct static models of the 1553 dome fringe frames. The tasks and functions include: 1554 1555 \begin{itemize} 1556 1557 \item The Fringe-frame Creation calibration stage raises an error if 1558 the input stack consists is images generated with more than one type 1559 of fringe source or with multiple filters. 1560 1561 \item The Fringe-frame Creation calibration stage flattens the input 1562 images to remove the pixel-to-pixel sensitivity variations of the 1563 detector. 1564 1565 \item The Fringe-frame Creation calibration stage measures the fringe 1566 amplitude on the input fringe images. 1567 1568 \item The Fringe-frame Creation calibration stage scales the input 1569 fringe images based on the fringe amplitude. 1570 1571 \item The Fringe-frame Creation calibration stage combines the scaled 1572 input images using the statistic specified by the user, selected 1573 from one of the following: sample mean, median, and mode, robust 1574 mean, median, and mode, and the clipped mean and median. 1575 1576 \item The Fringe-frame Creation calibration stage constructs residual 1577 images, in which the master fringe image is applied to the input 1578 images, along with all necessary preceding calibration images. 1579 1580 \item The Fringe-frame Creation calibration stage measures the 1581 residual fringe amplitude on the residual images. 1582 \end{itemize} 1583 1584 \subsubsection{Low-spatial-frequency Sky Models} 1585 1586 The Sky Model calibration stage constructs a sky model image set from 1587 a stack of raw night-time sky images. 1588 1589 \subsubsection{Flat-field correction Frame Creation} 1590 1591 The Flat-field correction calibration stage constructs a flat-field 1592 correction image from dithered observations of a stellar field. The 1593 tasks and functions include: 1594 1595 \begin{itemize} 1596 1597 \item The Flat-field correction calibration stage constructs a 1598 flat-field correction image from dithered observations of a stellar 1599 field. 1600 1601 \item The Flat-field correction calibration stage constructs a 1602 flat-field correction image for each filter and camera 1603 independently. 1604 1605 \item The Flat-field correction calibration stage constructs a 1606 correction image which makes the photometry of multiple observations 1607 of the same stellar source consistent at different locations in the 1608 focal plane. 1609 1610 \item The Flat-field correction calibration stage constructs corrected 1611 flat-field images using the measured correction. 1612 1613 \item The Flat-field correction calibration stage determines the 1614 consistency of the corrected flat-field images using the dithered 1615 stellar field observations flattened with the corrected flat-field 1616 image. 1617 \end{itemize} 1618 1619 \subsubsection{Non-linearity correction} 1620 1621 The Non-linear correction calibration stage constructs a correction 1622 model for low-level non-linearity effects in the detector. The tasks 1623 and functions include: 1624 1625 \begin{itemize} 1626 1627 \item The Non-linear correction calibration stage constructs a 1628 non-linear correction from a collection of images of a constant 1629 source with varying exposure times. 1630 1631 \item The Non-linear correction calibration stage construct a 1632 non-linear correction which linearizes the detector fluxes 1633 $<0.5\%$. 1634 1635 \item The Non-linear correction calibration stage determines the 1636 saturation regime, in which the non-linear correction is no longer 1637 consistent to $<0.5\%$. 1638 \end{itemize} 1639 1640 \subsubsection{Telescope Astrometry Parameters} 1641 1642 \begin{itemize} 1643 \item The IPP Calibration system constructs static models of the 1713 1644 telescope astrometry parameters (e.g., distortion, detector warps) 1714 once per week. \VER{INSPECT}{TLR:4}1715 1716 \item The IPP Calibration system shall constructstatic models of the1645 once per week. 1646 1647 \item The IPP Calibration system constructs static models of the 1717 1648 telescope astrometry parameters (e.g., distortion, detector warps) 1718 1649 with an accuracy to produce astrometry consistent to 30 1719 milliarcsec. \VER{TEST}{TLR:4}1720 1721 \item The IPP Calibration system shall monitor changes in the1722 telescope astrometry parameters and issue a warning if the1723 parameters change by more than \tbr{2\%}.\VER{INSPECT}{TLR:4}1724 \end{ enumerate}1725 1726 \ paragraph{Zero-Point Monitoring}1727 1728 The IPP Calibration system shall determinetelescope filter and camera1729 zero-points on a \tbd{timescale}with an accuracy sufficient to1650 milliarcsec. 1651 1652 \item The IPP Calibration system monitors changes in the telescope 1653 astrometry parameters and issue a warning if the parameters change 1654 by more than \tbr{2\%}. 1655 \end{itemize} 1656 1657 \subsubsection{Zero-Point Monitoring} 1658 1659 The IPP Calibration system determines telescope filter and camera 1660 zero-points on a nightly basis with an accuracy sufficient to 1730 1661 determine photometry in the native filter systems to 5 millimags. 1731 1732 \subsubsection{Reference Catalog Creation}1733 1734 For PS-1, one of the primary goals is the creation of photometric and1735 astrometric reference catalogs for the general community and for the1736 future Pan-STARRS calibration. The generation of these catalogs is1737 inherently a research project, and will require human control and1738 intervention. The IPP shall provide the data access, manipulation and1739 visualization tools needed to construct these reference catalogs and1740 to assess their quality. In this section, we list the requirements of1741 the tools needed for this effort.1742 1743 \paragraph{Astrometry Reference Creation}1744 1745 \begin{table}1746 \begin{center}1747 \caption{Astrometric Reference Catalogs\label{AstroRefs}}1748 \begin{tabular}{lrrrrl}1749 \hline1750 \hline1751 Name & scatter limit & proper & depth & Nstars & filters \\1752 & (milli-arcsec) & motion? &(mag) & (millions) & \\1753 \hline1754 Hipparcos & 1 & 2 & 7.3 & 0.1 & V \\1755 Tycho2 & 10 & 1 & 11.5 & 2.5 & B,V \\1756 UCAC-2 & 20 & 1 & 16.0 & 48.0 & R \\1757 USNO-A2.0 & 250 & N/A & 19.0? & 526.2 & B,R \\1758 USNO-B1.0 & 200 & 20? & 21.0 & 1042.6 & B,R \\1759 2MASS & 70 & N/A & 15.0? & 470.0 & J,H,K \\1760 \hline1761 \end{tabular}1762 \end{center}1763 \end{table}1764 1765 The IPP will generate an astrometric reference on the basis of the1766 observations obtained by the AP survey. The IPP shall provide the1767 analysis tools needed to generate the master astrometric reference1768 catalog. Much of the required functionality is covered by the AP1769 Database. The specific requirements for the Astrometric Reference1770 creation are listed below:1771 1772 \begin{enumerate}1773 \item The IPP Reference Creation System shall produce an astrometric1774 reference catalog from the extracted objects within 6 months of the1775 end of the AP Survey.\VER{TEST}{TLR:3, TLR:4}1776 1777 \item The IPP Reference Creation System shall produce an astrometric1778 reference catalog with an absolute accuracy of \tbr{100 mas} and a1779 local relative accuracy of \tbr{30 mas} for bright objects.\VER{TEST}{TLR:3}1780 1781 \item The IPP Reference Creation System shall produce an astrometric1782 reference catalog with proper motions measurements for1783 non-solar-system objects with an accuracy of \tbr{20 mas / year} for1784 unsaturated, bright stars.\VER{TEST}{TLR:3}1785 1786 \item The Astrometry Reference creation tools shall return the match between1787 stars observed with Pan-STARRS and any of several astrometric1788 reference catalogs listed in Table~\ref{AstroRefs}.\TASK1789 1790 \item The tools shall convert the reference catalog object coordinates to all1791 of the coordinate frames of relevance in the telescope and camera1792 system:1793 \begin{enumerate}1794 \item Catalog to mean positions\VER{TEST}{TLR:3}1795 \item Mean to apparent positions\VER{TEST}{TLR:3}1796 \item Apparent positions + pointing to tangent plane coordinates\VER{TEST}{TLR:3}1797 \item Apparent positions + pointing to focal plane coordinates\VER{TEST}{TLR:3}1798 \item focal plane to specific detector (OTA)\VER{TEST}{TLR:3}1799 \item specific detector to detector cell\VER{TEST}{TLR:3}1800 \end{enumerate}1801 1802 \item The tools shall provide the necessary calibration data: the telescope1803 and camera optical distortion models and the variation of the image1804 PSF across the camera field, as a function of color.\TASK1805 1806 \item The tools shall fit the observed stellar coordinates to the astrometric1807 reference catalog coordinates to determine improved astrometric1808 solutions for both the stars and the detectors. \TASK1809 1810 \item The tools shall determine improved telescope optical distortion models1811 based on the astrometric solutions. \VER{TEST}{TLR:3}1812 1813 \item The tools shall optionally determine the fit coefficients as a function1814 of position along, or with combinations of magnitude or color. \VER{TEST}{TLR:3}1815 1816 \item The fitting method shall include robust outlier rejection. \VER{TEST}{TLR:3}1817 1818 \item The tools shall identify objects which are detected in the catalog, but1819 not the science image or vice-versa.\TASK1820 1821 \item The tools shall determine average centroiding errors for each object.\TASK1822 1823 \item The tools shall plot the fit residuals against a wide variety of1824 parameters: the object positions, magnitudes, colors, etc.\TASK1825 1826 \item The tools shall allow the fit to exclude subsets of objects from the1827 fits on the basis of these parameters.\TASK1828 1829 \item The tools shall provide coordinates of the guide stars in the1830 same frame of reference as the normal image data to within 301831 mas.\VER{TEST}{TLR:3}1832 1833 \item The tools shall perform the various fitting steps for the guide stars1834 rather than for the normal image data.\TASK1835 \end{enumerate}1836 1837 \paragraph{Photometry Reference Creation}1838 1839 \begin{table}1840 \begin{center}1841 \caption{Photometric Reference Catalogs\label{PhotoRefs}}1842 \begin{tabular}{lrrr}1843 \hline1844 \hline1845 Name & scatter & depth & filters \\1846 & mmag & mag & \\1847 \hline1848 SDSS & 15? & 16? & {\em u,g,r,i,z} \\1849 CFHT-LS & 10? & 18 & {\em u,g,r,i,z} \\1850 Landolt & 10-20 & 15 & {\em U,B,V,R,I} \\1851 \hline1852 \end{tabular}1853 \end{center}1854 \end{table}1855 1856 The IPP will generate a photometric reference catalog on the basis of1857 the observations obtained by the AP survey. The IPP shall provide the1858 analysis tools needed to generate a master photometric reference1859 catalog. Much of the required functionality is covered by the AP1860 Database. The specific requirements for the Photometric Reference1861 creation are listed below:1862 1863 \begin{enumerate}1864 \item The IPP Reference Creation System shall produce a photometric1865 reference catalog from the extracted point-source objects within 61866 months of the end of the AP Survey.\VER{TEST}{TLR:1}1867 1868 \item The IPP Reference Creation System shall produce a photometric1869 reference catalog with a consistency across the sky of \tbr{51870 millimag}.\VER{TEST}{TLR:1}1871 1872 \item The IPP Reference Creation System shall produce a photometric1873 reference catalog with an absolute calibration to the external1874 system (defined by \tbr{SDSS} and the CFHT Legacy Survey Standards)1875 with an accuracy of \tbr{10 millimag} (for bright objects).\VER{TEST}{TLR:1}1876 1877 \item The Photometry Reference creation tools shall return the match between1878 stars observed with Pan-STARRS and any of several photometric1879 reference catalogs listed in Table~\ref{PhotoRefs}.\TASK1880 1881 \item The tools shall convert between different photometric systems, including:1882 \begin{enumerate}1883 \item instrumental to nominal detector magnitude\VER{TEST}{TLR:1}1884 \item nominal detector magnitude to average filter system\VER{TEST}{TLR:1}1885 \item average filter system to reference photometry system\VER{TEST}{TLR:1}1886 \end{enumerate}1887 1888 \item These transformations shall account for color and airmass terms. \VER{TEST}{TLR:1}1889 1890 \item The tools shall measure and apply relative photometry corrections1891 between images.\VER{TEST}{TLR:1}1892 1893 \item The tools shall determine photometric transformation fit coefficients1894 as a function of airmass, magnitude, color and detector coordinates,1895 or with combinations of the above.\TASK1896 1897 \item The fitting method shall include robust outlier rejection.\VER{TEST}{TLR:1}1898 1899 \item The tools shall reject specific objects from the fit on the basis of1900 object locations, instrumental magnitudes, observed and reference1901 errors, and in particular time of the observations. \TASK1902 1903 \item The tools shall plot the fit residuals against a wide variety of1904 parameters, including the object positions, magnitudes, colors, etc.\TASK1905 1906 \item The tools shall provide photometry from the guide stars in the same1907 system as observations of stars from the normal imaging data.\VER{TEST}{TLR:1}1908 1909 \item The tools shall perform the above fitting steps for the guide stars1910 rather than for the normal image data.\TASK1911 \end{enumerate}1912 1662 1913 1663 \subsection{Modules} … … 1968 1718 \subsubsection{External Catalogs} 1969 1719 1970 The IPP AP Database shall be able to interact with the following 1971 externally provided reference catalogs listed in Table~\ref{AstroRefs} 1972 and Table~\ref{PhotoRefs}.\VER{TEST}{TLR:1, TLR:3} 1973 1974 \subsubsection{Analysis Reference Data} 1975 1976 The IPP shall store reference data describing the relevant Pan-STARRS 1977 and IPP components, including the telescope, camera, detectors, 1978 filters, clustered computers, and IPP software parameters. 1720 The IPP AP Database shall be able to interact with the externally 1721 provided reference catalogs listed in Table~\ref{AstroRefs} and 1722 Table~\ref{PhotoRefs}.\VER{TEST}{TLR:1, TLR:3} 1979 1723 1980 1724 \subsubsection{Static Sky Pixel Size} … … 2137 1881 images obtained at a cadence of 1 image per 40 seconds.\VER{TEST}{TLR:17} 2138 1882 2139 \item The IPP shall perform the Phase 2 analysis within an average2140 time of 40 seconds per single Gigapixel camera image. The Phase 2 2141 analysis has been measured to require 3200 GHz-sec on a Pentium-4 2142 machine.\VER{TEST}{TLR:17}2143 2144 \item The IPP shall perform the Phase 4 analysis on a set of 4 input2145 frames within an average time of 180 seconds. The Phase 4 analysis 2146 has been measured to require a total of 7800 GHz-sec on a Pentium-4 2147 machine for a major frame of 4 input Gigapixel camera1883 \item The IPP shall perform the Phase 1 and Phase 2 analyses within an 1884 average time of 40 seconds per single Gigapixel camera image. The 1885 Phase 2 analysis has been measured to require 3200 GHz-sec on a 1886 Pentium-4 machine.\VER{TEST}{TLR:17} 1887 1888 \item The IPP shall perform the Phase 3 and Phase 4 analyses on a set 1889 of 4 input frames within an average time of 180 seconds. The Phase 4 1890 analysis has been measured to require a total of 7800 GHz-sec on a 1891 Pentium-4 machine for a major frame of 4 input Gigapixel camera 2148 1892 images.\VER{TEST}{TLR:17} 2149 1893 \end{enumerate} … … 2198 1942 assumptions of bandwidth and CPU speeds to estimate the number of 2199 1943 nodes required for the IPP. Each CPU is matched with one network 2200 adapter and one disk array. :1944 adapter and one disk array. 2201 1945 \begin{enumerate} 2202 1946 \item The IPP requires at least 40 Phase 2 Nodes (OTA Nodes)\VER{TEST}{TLR:17} … … 2206 1950 \item The IPP requires at least 10 AP DB Nodes\VER{TEST}{TLR:17} 2207 1951 \end{enumerate} 2208 2209 \subsubsection{Availability}2210 2211 The IPP Image Server nodes shall not be offline for more than 12 hours2212 consecutively or 36 hours per year.\VER{ANALYSIS}{TLR:17}2213 1952 2214 1953 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Note:
See TracChangeset
for help on using the changeset viewer.
