Changeset 2544
- Timestamp:
- Nov 30, 2004, 1:16:03 PM (22 years ago)
- Location:
- trunk/doc/design
- Files:
-
- 2 edited
-
ippSDRS.tex (modified) (131 diffs)
-
ippSRS.tex (modified) (35 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/design/ippSDRS.tex
r2241 r2544 1 %%% $Id: ippSDRS.tex,v 1.1 4 2004-10-29 22:00:08eugene Exp $1 %%% $Id: ippSDRS.tex,v 1.15 2004-11-30 23:16:03 eugene Exp $ 2 2 \documentclass[panstarrs]{panstarrs} 3 3 4 4 % basic document variables 5 \title{Pan-STARRS Image Processing Pipeline}6 \subtitle{S upplementary Design Requirements Specification}7 \shorttitle{IPP S DRS}5 \title{Pan-STARRS PS-1 Image Processing Pipeline} 6 \subtitle{System/Subsystem Design Description} 7 \shorttitle{IPP SSDD} 8 8 \author{Eugene A. Magnier, Paul A. Price, Josh Hoblitt} 9 9 \audience{Pan-STARRS PMO} … … 11 11 \project{Pan-STARRS Image Processing Pipeline} 12 12 \organization{Institute for Astronomy} 13 \version{ DR}13 \version{00} 14 14 \docnumber{PSDC-430-011} 15 15 … … 27 27 DR.03 & 2004.03.25 & Section reorganization \\ \hline 28 28 DR.04 & 2004.04.13 & Most sections fleshed out \\ \hline 29 DR.05 & 2004.04.29 & Reorgani sation for consistency \\ \hline29 DR.05 & 2004.04.29 & Reorganization for consistency \\ \hline 30 30 DR.06 & 2004.10.21 & Major revision in prep of PDR \\ \hline 31 31 \RevisionsEnd 32 32 33 \inserttbd 34 \inserttbr 35 \pagebreak 36 37 \tableofcontents 38 \pagebreak 39 33 40 \listoffigures 34 35 \pagebreak36 37 \tableofcontents38 41 \pagebreak 39 42 \pagenumbering{arabic} … … 89 92 \subsection{Document Overview} 90 93 91 The Pan-STARRS IPP S oftware Requirements Specification contains the92 complete system requirementsof the Pan-STARRS PS-1 IPP in order to93 achieve the top-level performance and operational requirements94 specified by the SCD. The requirements flow begun in the SGS and 95 continued in the SCD is further developed in this SRS to provide96 additional derived system and subsystem requirements.94 The Pan-STARRS IPP System/Subsystem Design Description (SSDD) contains 95 the complete design description of the Pan-STARRS PS-1 IPP in order to 96 achieve the requirements specified by the Pan-STARRS PS-1 IPP Software 97 Requirements Specification (SRS; PSDC-430-005). The requirements flow 98 begun in the SGS and SCD and continued in the SRS is used to guide the 99 design presented here. 97 100 98 101 \subsection{Requirements Definitions} … … 103 106 that series is implied. 104 107 105 Open issues (TBDs) in this document are marked \tbd{in bold red}. 106 107 Quantities which should be reviewed (TBRs) are marked \tbr{in bold 108 blue}. 108 Open issues (TBDs) in this document are marked {\bf \color{red} in 109 bold red}. 110 111 Quantities which should be reviewed (TBRs) are marked {\bf 112 \color{blue} in bold blue}. 109 113 110 114 \subsubsection{``Shall''} When used in this specification, the word … … 123 127 124 128 \DocumentsInternalSection 125 PSDC-130-001 & PS-1 Design Reference Mission \\ \hline 129 PSDC-230-001 & PS-1 Design Reference Mission \\ \hline 130 PSDC-230-002 & PS-1 System Concept Definition \\ \hline 131 PSDC-400-006 & The Pan-STARRS IPP Computational Challenge \\ \hline 126 132 PSDC-430-004 & Pan-STARRS IPP C Code Conventions \\ \hline 127 PSDC-430-006 & Pan-STARRS IPP ADD \\ \hline 128 PSDC-430-007 & Pan-STARRS IPP PSLib SDR \\ \hline 133 PSDC-430-005 & Pan-STARRS IPP PS-1 Software Requirements Specification \\ \hline 134 PSDC-430-006 & Pan-STARRS IPP Algorithm Design Document \\ \hline 135 PSDC-430-007 & Pan-STARRS IPP PSLib Supplementary Design Requirements Specification \\ \hline 136 PSDC-430-010 & Pan-STARRS IPP Perl Code Conventions \\ \hline 137 PSDC-430-012 & Pan-STARRS IPP Modules Supplementary Design Requirements Specification \\ \hline 138 PSDC-430-014 & Pan-STARRS IPP PS-1 Cluster Support \\ \hline 129 139 \DocumentsExternalSection 130 140 Posix Standard & Open Group Based Specifications Issue 6, IEEE Std 1003.1, 2003 \\ … … 140 150 Pan-STARRS. It also is responsible for combining all of the science 141 151 images in a given filter into a single representation of the 142 non-variable component of the night sky called the ``Static Sky''. To143 achieve these goals, the IPP also performs other analysis functions to 144 generate the calibrations needed in the science image processing and 145 to occasionally use the derived data to generate improved astrometric 146 a nd photometric reference catalogs. It also provides the152 non-variable component of the night sky defined as the ``Static Sky''. 153 To achieve these goals, the IPP also performs other analysis functions 154 to generate the calibrations needed in the science image processing 155 and to occasionally use the derived data to generate improved 156 astrometric and photometric reference catalogs. It also provides the 147 157 infrastructure needed to store the incoming data and the resulting 148 158 data products. … … 166 176 transient objects. 3) the Published Science Products Subsystem 167 177 (PSPS), which will receive all data products of interest to the 168 outside world, and will act as the long-term archive and publishing 169 clearinghouse.178 community external to the Pan-STARRS data processing systems, and will 179 act as the long-term archive and publishing clearinghouse. 170 180 171 181 The IPP receives data from two Pan-STARRS subsystems: the Camera, from 172 182 which it receives the large volume of image data, and OTIS 173 (Observatory, Teles ope and Infrastructure Subsystem), from which it183 (Observatory, Telescope and Infrastructure Subsystem), from which it 174 184 receives metadata describing the images and the environmental 175 185 conditions. The primary IPP hardware system on which the software 176 operates will not be located at the summit. Instead, because of177 thermal, power, and space constraints, the hardware will likely be186 operates will probably not be located at the summit. Instead, because 187 of thermal, power, and space constraints, the hardware will likely be 178 188 located in a facility off the mountain. A subset of processing tasks 179 189 may eventually be assigned to machines at the summit if justified by … … 186 196 187 197 This document defines the design requirements of the IPP for the PS-1 188 prototype telescope. Even so, much of the IPP design for PS-4 will be198 prototype telescope. Much of the IPP design for PS-4 will be 189 199 identical to or closely based on the PS-1 implementation. The 190 software organization and the infrastructure systems will be 191 identical, with minor improvements in details. The range analysis 192 steps to be performed will be nearly identical, with some additional 193 details added for PS-4 to improve the accuracy. 194 195 In terms of the IPP, PS-1 differs from the complete PS-4 system in 196 several important ways. First, with only one telescope and camera, 197 the data throughput rate is substantially reduce to a maximum of 1 198 64-OTA image per 40 seconds rather than 4. Since PS-1 is a prototype 199 for testing the Pan-STARRS hardware and software subsystems, the 200 observing strategy is not a fixed quantity. The PS-1 Design Reference 201 Mission (PSDC-xxx) provides some guidelines for the types of projects 202 to be performed, including starting an AP Survey which will eventually 203 cover the entire $3\pi$ steradians of the sky accessible to PS-4. As 204 a prototype, it is expected that much of the data collected by PS-1 205 will be processed multiple times to test and tune the analysis steps. 206 This difference in approach has implications for the storage required 207 by PS-1: rather than delete images soon after they have been used, raw 208 images must be stored for at least the first 18 months of PS-1 209 operations. We have used the PS-1 Design Reference Mission as a 210 baseline for these storage requirements to drive our hardware design. 200 software organization and the infrastructure systems are expected to 201 be identical, with minor improvements in details. The type of 202 analysis steps to be performed will be nearly identical, with some 203 additional details added for PS-4 to improve the accuracy. 204 205 Although generally very similar, in terms of the IPP PS-1 differs from 206 the complete PS-4 system in several specific ways. First, with only 207 one telescope and camera, the data throughput rate is substantially 208 reduced to a maximum of 1 64-OTA image per 40 seconds rather than 4. 209 Since PS-1 is a prototype for testing the Pan-STARRS hardware and 210 software subsystems, the observing strategy is not a fixed quantity. 211 The PS-1 Design Reference Mission (PSDC-230-001) provides some 212 guidelines for the types of observing tests which will probably be 213 performed, including possibly starting an Astrometric and Photometric 214 Survey which will eventually cover the entire $3\pi$ steradians of the 215 sky accessible to PS-4. As a prototype, it is expected that much of 216 the data collected by PS-1 will be processed multiple times to test 217 and tune the analysis steps. Compare with PS-4, this difference in 218 approach has implications for the storage required by PS-1: rather 219 than delete images soon after they have been used, raw images from 220 demonstration observations must be stored for at least the first two 221 years of PS-1 operations. The PS-1 Design Reference Mission is used 222 as an upper limit for these storage requirements to drive the hardware 223 design. 211 224 212 225 \subsection{System Design Decisions} 213 226 214 227 Since Pan-STARRS is a survey project, all data from the telescopes 215 will be uniformly analy sed by the Pan-STARRS Image Processing Pipeline216 (IPP) and the appropriate resulting data products made available to228 will be uniformly analyzed by the Pan-STARRS Image Processing Pipeline 229 (IPP), and the appropriate resulting data products made available to 217 230 internal and external science analysis systems as they become 218 231 available. The processing performed by the IPP on the science images … … 223 236 object analysis of the static sky images. In addition, the IPP will 224 237 produce improved astrometric and photometric reference catalogs on an 225 occasional basis as needed. The output data products from the IPP 226 c onsist of the calibration images, reduced images from the individual227 telescopes, combined images, difference images, the static sky image, 228 objectphotometry, and reference astrometry and photometry.229 230 The requirements for the IPP, as identified in the IPP SRS (PSDC-REF)231 fall into several broad categories: Data analysis precision, 232 throughput, system reliability, flexibility, testability, and 233 traceability. The details of the analysis tasks are specified in238 as-needed basis. The output data products from the IPP consist of the 239 calibration images, reduced images from the individual telescopes, 240 combined images, difference images, the static sky image, object 241 photometry, and reference astrometry and photometry. 242 243 The requirements for the IPP, as identified in the PS-1 IPP SRS 244 (PSDC-430-005) fall into several broad categories: data analysis 245 precision, throughput, system reliability, flexibility, testability, 246 and traceability. The details of the analysis tasks are specified in 234 247 order to achieve the precision. The architectural design as discussed 235 248 below is motivated by the need for reliability and flexibility. The 236 hardware organization and the distributed / parallel processing model237 ismotivated by the throughput requirements. The need for flexibility249 hardware organization and the distributed/parallel processing model is 250 motivated by the throughput requirements. The need for flexibility 238 251 and testability drives the software organization. The need for simple 239 252 testing procedures drives both the software organization and the … … 255 268 OTA number 61 from exposure 654321 to produce a specific set of output 256 269 data products. The analysis stages are discussed in detail in 257 Section~\ref{ IPP:AnalysisStages}.258 259 Depending on the particular stage, it may process individual images, 260 collections of images, or derived data products. Because of the261 nature of the image data, many of the analysis stages can be run in 262 parallel. For example, the analysis of a chip in one image does not 263 depend on the results from another chip.270 Section~\ref{sec:AnalysisStages}. 271 272 A particular stage may process individual images, collections of 273 images, or derived data products. Because of the nature of the image 274 data, many of the analysis stages can be run in parallel if needed to 275 increase the processing throughput. For example, the analysis of a 276 chip in one image does not depend on the results from another chip. 264 277 265 278 \subsection{Architectural Components} … … 268 281 \begin{center} 269 282 \resizebox{6in}{!}{\includegraphics{pics/IPPoverview}} 270 \caption{ \label{ overview} IPP System Overview}283 \caption{ \label{fig:overview} IPP System Overview} 271 284 \end{center} 272 285 \end{figure} 273 286 274 287 In order to achieve the required functionality, the IPP provides an 275 infrastructure within which the Analysis Stages above are exectuted.276 In order to facilitate the subsystem testing, we have dividedthe IPP277 software infrastructure into a number of clearly-defined architectural278 software units, listedas follows:288 infrastructure within which the Analysis Stages described above are 289 executed. In order to facilitate the subsystem testing, the IPP 290 software infrastructure has been divided into a number of 291 clearly-defined architectural software units as follows: 279 292 280 293 \begin{itemize} … … 288 301 restricted to imaging data: it is capable of storing any large data 289 302 files which are not well-suited for inclusion in a more structured 290 relational database and for which access needs to be widely303 relational database, and for which access needs to be widely 291 304 available beyond the individual process which created the file. 292 305 … … 295 308 needed to perform the IPP analyses. The metadata may include the 296 309 summary weather information for each night, or details about the 297 filters, camera, telescopes, etc. 310 filters, camera, telescopes, etc. Note that the IPP Metadata 311 Database is not required to retain all archival engineering data 312 from all of Pan-STARRS; other Pan-STARRS subsystems use their own 313 internal databases to store engineering metadata and only the 314 necessary subset is transferred to the IPP Metadata Database. 298 315 299 316 \item {\bf Astrometry \& Photometry Database (AP DB):} This component … … 304 321 query and manipulate the objects and detections. 305 322 306 \item {\bf IPP Controller:} In order to perform the analysis stages307 required by the IPP, it is necessary to use distributed computing308 processes on a large number of computers. The IPP Controller309 manages the collection of analysis tasks performed on these310 machines.323 \item {\bf IPP Controller:} In order to achieve the required 324 processing throughput for the IPP analysis stages, it is necessary 325 to use distributed computing processes on a large number of 326 computers. The IPP Controller manages the collection of analysis 327 tasks performed on these machines. 311 328 312 329 \item {\bf IPP Scheduler:} This component is a decision-making … … 318 335 319 336 The relationship between these software units is shown in 320 Figure~\ref{ overview}. This figure also shows the interactions337 Figure~\ref{fig:overview}. This figure also shows the interactions 321 338 between the IPP and other Pan-STARRS systems. The architectural 322 components are discussed in detail in 323 Section~\ref{IPP:ArchComponents}. 339 components are discussed in detail in Section~\ref{sec:ArchComponents}. 324 340 325 341 \begin{figure} 326 342 \begin{center} 327 343 \resizebox{4.5in}{!}{\includegraphics{pics/IPPhardware}} 328 \caption{ \label{ hardware} IPP Hardware Organization}344 \caption{ \label{fig:hardware} IPP Hardware Organization} 329 345 \end{center} 330 346 \end{figure} … … 332 348 \subsection{IPP Hardware Organization} 333 349 334 The IPP needssubstantial computer resources, both in terms of350 The IPP will utilize substantial computer resources, both in terms of 335 351 computational power and in terms of data storage and network 336 352 bandwidth. The IPP requires relatively large amounts of data storage … … 354 370 the static sky storage nodes. 355 371 356 Figure~\ref{ hardware} shows ourbasic concept for the hardware372 Figure~\ref{fig:hardware} presents the basic concept for the hardware 357 373 organization for the IPP. This diagram shows the two types of compute 358 nodes: OTA-level processing and storage nodes and static sky374 nodes: (1) OTA-level processing and storage nodes and (2) Static Sky 359 375 processing and storage nodes. Also shown are two switches which 360 376 divide the network into OTA and Static-Sky portions. In such an 361 organization, the inter switch communication must meet the throughput377 organization, the inter-switch communication must meet the throughput 362 378 needs between these network portions (though a single switch may also 363 379 be used if its backplane capacity is sufficient). The additional data … … 367 383 368 384 \section{System Design : Architectural Components} 385 \label{sec:ArchComponents} 369 386 370 387 \subsection{IPP Image Server} 388 389 \subsubsection{Corresponding Requirements} 390 391 The Image Server must meet the requirements specified in Section 3.4.1 392 of the Pan-STARRS PS-1 IPP SRS (PSDC-430-005). The specified design 393 is chosen to meet requirements 3.4.1.3, and 3.4.1.5. The other three 394 requirements (3.4.1.1, 3.4.1.2, and 3.4.1.4) depend on the volume and 395 capabilities of the hardware, and are addressed in 396 Section~\ref{sec:Hardware}. 371 397 372 398 \subsubsection{Image Server Overview} … … 378 404 Server include the raw images, the calibration images, intermediate 379 405 processing stage images as needed, final processed images, difference 380 images, image subsections, and any large non-imaging data files needed406 images, image subsections, and any large non-imaging data files needed 381 407 by the IPP. The IPP Image Server must retain the files for as long as 382 408 they are needed by the IPP. … … 396 422 There are three data concepts relevant to the IPP Image Server: 397 423 \begin{itemize} 398 \item {\bf storage object} This represents a single, unique data424 \item {\bf Storage object:} This represents a single, unique data 399 425 entity in the Image Server. 400 426 401 \item {\bf instance} A single copy of the storage object in the Image427 \item {\bf Instance:} A single copy of the storage object in the Image 402 428 Server. In general, a given storage object may have several instances 403 429 in the Image Server, normally on different computer nodes. 404 430 405 \item {\bf file ID} This is the identifier of a particular storage431 \item {\bf File ID:} This is the identifier of a particular storage 406 432 object in the Image Server. The file ID is simply a unique string, 407 433 equivalent to the filename in a UNIX file system. … … 421 447 on some schedule. 422 448 423 The IPP Image Server consists of the following components: 449 As shown in Figure~\ref{fig:ImageServer}, the IPP Image Server 450 consists of the following components: 424 451 425 452 \begin{itemize} … … 428 455 \item Image Server daemon 429 456 \item Image Server client APIs 430 \item Image Server maint ainence tools457 \item Image Server maintenance tools (not shown) 431 458 \end{itemize} 432 459 … … 442 469 443 470 Clients interact with the IPP Image Server via a small number of C 444 APIs (Bindings are also provided for Perl and Python and UNIX shell445 commands in some cases ). The client commands are:471 APIs. Bindings are also provided for Perl and Python and UNIX shell 472 commands in some cases. The client commands are: 446 473 447 474 \begin{itemize} … … 497 524 hardware resources. A {\tt mysql} database engine is used to manage 498 525 the database table. The database tables defined for the Image Server 499 are listed in Table~\ref{ ImageServerTables}, and their contents are500 listed in Appendix A. This database engine need not the same one as501 the one used for otheIPP subsystems.526 are listed in Table~\ref{tab:ImageServerTables}, and their contents are 527 listed in Appendix~\ref{sec:ImageServerTableContents}. This database 528 engine need not be the same one used for other IPP subsystems. 502 529 % 503 \begin{table} 504 \begin{center} 505 \caption{Image Server Database Tables\label{ ImageServerTables}}530 \begin{table}[ht] 531 \begin{center} 532 \caption{Image Server Database Tables\label{tab:ImageServerTables}} 506 533 \begin{tabular}{ll} 507 534 \hline … … 529 556 530 557 The IPP Image Server provides a collection of administration tools 531 which allow for maint ainence. These are operations which may be558 which allow for maintenance. These are operations which may be 532 559 automatically scheduled by the IPP or which may be initiated by a 533 human via a command-shell interface. The maint ainence functions534 include migrating data between nodes to re balance the available space560 human via a command-shell interface. The maintenance functions 561 include migrating data between nodes to re-balance the available space 535 562 (this would only occur for instances which have not been placed on a 536 563 specific node by the client API). Other functions include checking … … 542 569 543 570 \subsection{Metadata Database} 544 \label{Metadata} 571 \label{sec:Metadata} 572 573 \subsubsection{Corresponding Requirements} 574 575 The Metadata Database must meet the requirements specified in Section 576 3.4.2 of the Pan-STARRS PS-1 IPP SRS (PSDC-430-005). The specified 577 design is chosen to meet requirements 3.4.2.1, 3.4.2.2, 3.4.2.3, 578 3.4.2.4, 3.4.2.5. 579 580 \subsubsection{Overview} 545 581 546 582 The IPP Metadata Database acts as a repository for non-pixel data … … 558 594 Metadata Database may be collected and inserted by a separate, 559 595 dedicated process. Metadata which is large in volume or poorly 560 structure may also be stored in an appropriate container file (FITS596 structured may also be stored in an appropriate container file (FITS 561 597 Table, FITS Header, XML File) in the Image Server with the Metadata DB 562 598 providing pointers to these files. … … 568 604 \begin{table}[hb] 569 605 \begin{center} 570 \caption{Metadata Database Tables\label{ MetadataDBTables}}606 \caption{Metadata Database Tables\label{tab:MetadataDBTables}} 571 607 \begin{tabular}{ll} 572 608 \hline … … 597 633 \subsubsection{Metadata Tables} 598 634 599 The contents of the Metadata Database will not be completely specified 600 until the complete collection of data analysis scripts are available. 601 Even so, we can identify the likely collection of long-term tables, 602 and some of the temporary processing tables. 603 Table~\ref{MetadtaDBTables} lists the Metadata tables identified to 635 Table~\ref{tab:MetadataDBTables} lists the Metadata tables identified to 604 636 date for the Metadata Database. The contents of these tables are 605 outlined in Appendix~\ref{MetadataContents}, with examples for the 606 data entries and thier data types in many cases. 637 outlined in Appendix~\ref{sec:MetadataTableContents}, with examples for 638 the data entries and their data types in many cases. Additional 639 tables will be added as necessary as the data analysis scripts are 640 fleshed out in detail. The Metadata Database, with a flat data 641 organization, is flexible enough to add additional information as it 642 is identified. 607 643 608 644 \subsubsection{Metadata Queries} 609 645 610 646 The IPP provides simple queries to the Metadata Database tables using 611 auto coded APIs. These queries return a single row or a collection of647 auto-coded APIs. These queries return a single row or a collection of 612 648 rows based on the primary key. The format of the API is identical for 613 649 all Metadata tables. New tables and APIs can be added to the IPP 614 system by adding to the autocoding table description files. See 615 Appendix~\ref{Autocode} for futher information. 650 system by adding to the auto-code table description files. The 651 auto-code API includes read and write access permissions to be set 652 for each table independently. See Appendix~\ref{sec:AutocodeIO} for 653 further information. 616 654 617 655 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 619 657 \subsection{AP Database} 620 658 659 \subsubsection{Corresponding Requirements} 660 661 The AP Database must meet the requirements specified in Section 3.4.3 662 of the Pan-STARRS PS-1 IPP SRS (PSDC-430-005). The specified design 663 is chosen to meet requirements 3.4.3.1 and 3.4.3.2. In order to meet 664 the throughput requirements, the AP Database will be distributed 665 across 10 Nodes independent of the Image Server Nodes. An alternative 666 organization of the database which will be studied will have the AP 667 Database co-located with the Image Server Phase 4 Nodes. 668 621 669 \subsubsection{Overview} 622 670 623 The AP (Astrometry \& Photometry) Database is a mechanism to store624 data related to astronomical objects derived from various sources with 625 avariety of associations. The AP Database deals with two related626 concepts: {\em objects} and {\em detections}. The objectsare627 descriptions of astronomical objects while the detections are the628 specific measurements of those objects, typically measured from671 The AP (Astrometry \& Photometry) Database is a CSCI which stores data 672 related to astronomical objects derived from various sources with a 673 variety of associations. The AP Database deals with two related 674 concepts: {\em objects} and {\em detections}. The {\em objects} are 675 descriptions of astronomical objects while the {\em detections} are 676 the specific measurements of those objects, typically measured from 629 677 astronomical images. A collection of {\em detections} may be used to 630 678 derive average quantities which describe a particular {\em object}. A 631 third class of object information which must also be considered are632 those supplied by external references. Thesemay be treated as {\em679 third class of measurement to be considered are those supplied by 680 external references. Such measurements may be treated as {\em 633 681 detections}, with the caveat that access to the raw measurements and 634 682 metadata are usually unavailable: the reported measurements and errors … … 637 685 The AP Database stores the collections of detections which were 638 686 derived from specific images from any of the analysis stages. It 639 provides a mechanism to determine and (in conjunction with the Image 640 Server) locate the image from which a specific detection was derived. 641 The AP Database also makes it possible to extract all detections 642 derived from a specific image and to determine quantities such as the 643 pixel coordinates of the detection on the image. 687 provides a mechanism to determine the image from which a specific 688 detection was derived, and in conjunction with the Image Server locate 689 the corresponding data file. The AP Database also makes it possible 690 to extract all detections derived from a specific image and to 691 determine quantities such as the pixel coordinates of the detection on 692 the image. 644 693 645 694 The AP Database also has the capability to associate multiple … … 648 697 649 698 First, the most distant stars, compact galaxies, and QSOs will have 650 nearly fixed locations relative to other nearby stars, with only small651 deviations for individual measurements. The association between699 nearly fixed locations relative to other distant stars, with only 700 small deviations for individual measurements. The association between 652 701 multiple detections of such objects is made on the basis of their 653 702 coincident positions. The AP Database determines the average position … … 658 707 of such objects are linked by their orbits, and depend on both the 659 708 position and the time of the image. The AP Database does not attempt 660 to make this link , whichis the role of the MOPS system. However, it709 to make this link; this is the role of the MOPS system. However, it 661 710 has the ability to accept identifications made externally with 662 711 specified detections and to return the identifier of the moving object … … 667 716 moving object detections from other types of queries. 668 717 669 Third, stars in the general vicinity of the solar system fall in718 Third, objects in the general vicinity of the solar system fall in 670 719 between these first two classes of objects. Their proper motion and 671 parallax response is significant enough ($> 1$ arcsec in 1 year) that720 parallax response is significant enough ($>0.2$ arcsec in 1 year) that 672 721 they are not well-described by an average location and a collection of 673 722 offsets. These objects are described by a distance and a proper … … 679 728 be associated with a specific astronomical object of any of the above 680 729 classes and are treated as orphans. Most of these will be spurious 681 (not represent real objects), some will be from solar system objects682 for which orbits are not yet determined, some will be from faint stars 683 near the detection limits, some will be from short-term transients 684 which have only been detected once. The AP Database maintains these 685 detections until they have been associated with one of the objects 686 above. The AP Database provides mechanisms by which individual 687 detections may be migrated back and forth between the orphan state and 688 association with an astronomical object.730 (not representing real objects), some will be from solar system 731 objects for which orbits are not yet determined, some will be from 732 faint stars near the detection limits, and some will be from 733 short-term transients which have only been detected once. The AP 734 Database maintains these detections until they have been associated 735 with one of the objects above. The AP Database provides mechanisms by 736 which individual detections may be migrated back and forth between the 737 orphan state and association with an astronomical object. 689 738 690 739 For every object, and all orphaned detections, the AP Database also 691 provides the capability to determine the images which observedthe740 provides the capability to determine the images containing the 692 741 location of the object but for which no detection was made. The 693 742 minimum set of information which must be carried for these … … 695 744 696 745 The AP Database also stores the relationships between various 697 photometric systems and, in some cases, the evolution of that 698 relationship. It provides mechanisms to convert between the measured 699 instrumental magnitude of a detection with a specific filter, 700 detector, and telescope, and at a particular time and the implied 701 magnitude in the average Pan-STARRS photometry system, given a 702 determined set of calibrations. It also provides the capability to 703 convert magnitudes in one system to the magnitudes in another system; 704 an example of such a conversion is between the average Pan-STARRS 705 filter systems and the various reference systems appropriate for those 706 filters. 746 photometric systems and the evolution of that relationship. It 747 provides mechanisms to convert between the measured instrumental 748 magnitude of a detection with a specific filter, detector, and 749 telescope, and at a particular time and the implied magnitude in the 750 average Pan-STARRS photometry system, given a determined set of 751 calibrations. It also provides the capability to convert magnitudes 752 in one system to the magnitudes in another system; an example of such 753 a conversion is between the average Pan-STARRS filter systems and the 754 various reference systems appropriate for those filters. 707 755 708 756 \begin{figure} … … 710 758 \resizebox{4.5in}{!}{\includegraphics{pics/APDB}} 711 759 \caption{AP DB components} 712 \label{fig:APDB Regions}760 \label{fig:APDBComponents} 713 761 \end{center} 714 762 \end{figure} … … 726 774 time and date of the detection, etc. 727 775 728 The IPP AP Database consists of the following components: 776 As shown in Figure~\ref{fig:APDBComponents}, the IPP AP Database 777 consists of the following components: 729 778 730 779 \begin{itemize} … … 737 786 \subsubsection{AP Database Tables} 738 787 739 Table~\ref{ APDBTables} lists the tables used by the AP Database. The788 Table~\ref{tab:APDBTables} lists the tables used by the AP Database. The 740 789 contents of these tables are outlined in 741 Appendix~\ref{APDBTableContents}. Below, we discuss how these tables 742 are used by the AP Database software. Several of the tables are not 743 just simple tables in the database but are instead divided into many 744 subtables, each of which represents a portion of the sky. These 745 subtables may also be distributed across different computers to 746 distribute the processing load. 790 Appendix~\ref{sec:APDBTableContents}. Below, the use of these tables by 791 the AP Database software is discussed below. Several of the tables 792 are not just simple tables in the database but are instead table 793 groups divided into many subtables, each of which represents a portion 794 of the sky (a {\tt region}). These subtables may also be distributed 795 across different computers to distribute the processing load. 796 797 \paragraph{Images Table Group} 747 798 748 799 The {\tt Images} table group lists all of the images which provided 749 the data in the AP Database. These tables are subdivided by region. 750 In general, the images listed in this table correspond to the Chips. 751 This group of tables includes sufficient astrometric parameters to 752 represent the coordinates of the detections to a sufficient accuracy. 800 the data in the AP Database. These tables are subdivided by region on 801 the sky. In general, the images listed in this table correspond to 802 the Chips. This group of tables includes sufficient astrometric 803 parameters to represent the coordinates of the detections to a 804 sufficient accuracy. Parallel to the Images table is the Mosaic 805 table. This table is very similar to the Images table, but defines 806 the Mosaic which corresponds to a group of Images. The parameters 807 include the astrometric information needed to define the camera 808 distortion. 809 810 \paragraph{Image Overlaps Table Group} 753 811 754 812 The specific subtable of {\tt Images} which contains a given image is 755 the one which contains the center pixel \tbr{or 0,0 pixel} of that756 image. An additional table group, {\tt Image Overlaps} (with the same 757 subtable organization as the {\tt Images} subtables), lists images 758 which overlap that specific subtable. Thus, given a particular 759 coordinate, in order to find that images which overlap that 760 coordinate, it is necessary to search the images in the {\tt Images} 761 subtable which includes that coordinate, and all images in the {\tt 762 ImageOverlaps} subtable forthat coordinate.813 the one which contains the center pixel of that image. An additional 814 table group, {\tt Image Overlaps} (with the same subtable organization 815 as the {\tt Images} subtables), lists images which overlap that 816 specific subtable. Thus, given a particular coordinate, in order to 817 find that images which overlap that coordinate, it is necessary to 818 search the images in the {\tt Images} subtable which includes that 819 coordinate, and all images in the {\tt ImageOverlaps} subtable for 820 that coordinate. 763 821 764 822 \begin{table}[hb] 765 823 \begin{center} 766 \caption{AP Database Tables\label{ APDBTables}}824 \caption{AP Database Tables\label{tab:APDBTables}} 767 825 \begin{tabular}{ll} 768 826 \hline … … 770 828 {\bf Table Name} & {\bf Description} \\ 771 829 \hline 772 Images & The images that have objects in the DB. \\773 Image Overlaps & Image regions which are touched by specific images. \\774 Objects & The objects --- average properties of multiple detections of the same object. \\775 Average Magnitudes & Average photometry in multiple filters \\776 Matched Detections & Detections of sources in an image identified with an Object.\\777 Orphaned Detections & Detections of sources in an image notidentified with an Object. \\778 Non-detections & Non-detections of objects in an image. \\779 Region Table & spatial distribution of tables\\780 Filters & Filters understood by the system.\\781 Photcodes & Transformations between different photometric systems\\782 Database Machines & computers used to store the tables \\783 % Zero Points & Transformations between different photometric systems \\784 % Distortion Models & Transformations between different photometric systems \\785 % Solar System Objects & Identification of solar system objects \\830 Images & The images that have objects in the DB. \\ 831 Image Overlaps & Image regions which are touched by specific images. \\ 832 Objects & The objects --- average properties of multiple detections of the same object. \\ 833 Average Magnitudes & Average photometry in multiple filters \\ 834 Solar System Objects & Identification of solar system objects \\ 835 Matched Detections & Detections of sources in an image identified with an Object. \\ 836 Orphaned Detections & Detections of sources in an image not identified with an Object. \\ 837 Non-detections & Non-detections of objects in an image. \\ 838 Regions & spatial distribution of tables \\ 839 Filters & Filters understood by the system. \\ 840 Photcodes & Transformations between different photometric systems \\ 841 Zero Points & History of Zero-point \& Airmass terms \\ 842 Distortion Models & History of Optical Distortion terms \\ 843 Database Hosts & computers used to store the tables \\ 786 844 \hline 787 845 \end{tabular} 788 846 \end{center} 789 847 \end{table} 848 849 \paragraph{Objects Table Group} 790 850 791 851 The {\tt Objects} table group (also divided by region) stores the … … 797 857 be stored in a separate table. 798 858 799 A related table, also divided in the same regions, is the {\tt Average 800 Magnitudes} table. In this table, there are multiple rows per average 859 \paragraph{Average Magnitudes Table Group} 860 861 A related table, also divided into the same regions, is the {\tt 862 Average Magnitudes} table. In this table, there are multiple rows per 801 863 object, one for each of the primary filters of interest for which 802 864 photometric averaging is performed. This organization makes the 803 865 number of primary (averaged) filters a configurable value. 866 867 \paragraph{Matched Detections Table Group} 804 868 805 869 The {\tt Matched Detections} table stores all of the measurements of … … 814 878 quantities for these types of detections.) 815 879 880 \paragraph{Orphaned Detections Table Group} 881 816 882 The {\tt Orphaned Detections} table stores the detections which have 817 883 not been correlated with an existing object. This table is only 818 884 populated for objects below a configuration-specified signal-to-noise 819 limit (e g5$\sigma$). Bright orphaned detections are assigned an885 limit (e.g., 5$\sigma$). Bright orphaned detections are assigned an 820 886 object and added to the {\tt Matched Detections} table. 887 888 \paragraph{Non-detections Table Group} 821 889 822 890 The {\tt Non-detections} table stores information about detection … … 827 895 non-detection statistics. 828 896 897 \paragraph{Regions Table} 898 829 899 The {\tt Regions} table is used to subdivide the tables of images, 830 900 objects, and detections, etc, as discussed above. The AP Database 831 901 divides the sky into a hierarchy of regions (portions of the sky) each 832 of which is in turn sub -divided into smaller portions. Since nearly902 of which is in turn subdivided into smaller portions. Since nearly 833 903 all interactions with the AP Database performed by the IPP are limited 834 904 in spatial coverage, subdividing the tables allows a specific … … 846 916 detection data, the {\tt Regions} table allows for multiple computers 847 917 to serve the database tables. The region file specifies the machine 848 which stores the specific table. Figure~\ref{ABDBRegions} illustrates 849 schematically the subdivision of the sky and the association between 850 different levels of the hierarchy with different subtables. 918 which stores the specific table. Figure~\ref{fig:APDBRegions} 919 illustrates schematically the subdivision of the sky and the 920 association between different levels of the hierarchy with different 921 subtables. 851 922 852 923 \begin{figure} … … 857 928 \end{center} 858 929 \end{figure} 930 931 \paragraph{Other Reference Tables} 859 932 860 933 The {\tt Filters} table identifies all of the physical filters … … 877 950 878 951 {\bf Option A:} A client chooses one of the machines and sends its 879 query or data to be inserted to that machine. The server then uses 880 the region table to determine which machines contain the relevant 881 portion of the sky. The data to be inserted is divided into 882 corresponding region chunks and sent to the appropriate servers. In 883 the case of queries, the queries are redirected to the appropriate 884 server(s). The original server may collect the results and return 885 them to the original client. 952 query or data to that machine. The server then uses the region table 953 to determine which machines contain the relevant portion of the sky. 954 Data to be added to the database is divided into corresponding region 955 chunks and sent to the appropriate servers. Queries are redirected to 956 the appropriate server(s). The original server may collect the 957 results and return them to the original client. 886 958 887 959 {\bf Option B:} The client downloads the region table and performs the … … 893 965 and making each server symmetric. The smaller tables (ie, Region, 894 966 Filters, etc) could either be downloaded from a single server or 895 replicated to all AP DB servers. 967 replicated to all AP DB servers. For these reasons, Option A will be 968 used for the PS-1 IPP.. 896 969 897 970 \subsubsection{AP Database engine} … … 922 995 to the {\tt Matched Detections} table. Any faint unmatched detections 923 996 are added to the {\tt Orphaned Detections} table. This division is 924 important because it lets us automatically associate new detections925 with existing bright objects and limits the I/O volume required to 926 make the detections. In general, there will be many few {\tt Objects} 927 than {\tt Detections}, and there will be fewer bright orphans than 928 faint orphans.997 important because it allows the automatic association of new 998 detections with existing bright objects while limiting the I/O volume 999 required to make the detections. In general, there will be many fewer 1000 {\tt Objects} than {\tt Detections}, and there will be fewer bright 1001 orphans than faint orphans. 929 1002 930 1003 \paragraph{Insert Reference Objects (addrefs)} … … 941 1014 This operation uses the overlaps of images and multiple observations 942 1015 of the same objects to determine the relative photometry zero-points 943 for a collection of images. This is a task which would be run much944 more infrequently than the object insertion tasks. 1016 for a collection of images. This is a task that wil be run much more 1017 infrequently than the object insertion tasks. 945 1018 946 1019 \paragraph{Determine Consistent Photometry Zero Points (uniphot)} … … 951 1024 atmospheric stability. 952 1025 953 \paragraph{Determine Distortion Model (mosastro)}1026 \paragraph{Determine Distortion and Static Astrometry Model (mosastro)} 954 1027 955 1028 This operation uses the reference and image detections to determine an 956 optical distortion model for the camera. 1029 optical distortion model for the camera and static astrometry model 1030 components. The astrometry model includes: (1) field distortion 1031 introduced by the telescope optics, which is a smoothly-varying 1032 function of the field position relative to the center of the telescope 1033 boresite coordinates. (2) focal plane geometry, which includes the 1034 chip positions and rotations in the focal relative to the boresite, 1035 along with chip-dependent plate-scale modifications needed to 1036 represent tilts or warps of the individual detectors relative to the 1037 ideal flat focal plane. . 957 1038 958 1039 \begin{table} 959 1040 \begin{center} 960 \caption{AP Detection Classes \& Object Parameters\label{ APdetections}}1041 \caption{AP Detection Classes \& Object Parameters\label{tab:APdetections}} 961 1042 \begin{tabular}{lrrrr} 962 1043 \hline … … 978 1059 \end{table} 979 1060 980 \subsubsection{ Notes}981 982 discuss AP DB throughput issues 983 984 how does the AP Database know about the relationship between a 985 collection of chips? 986 987 what is astrometry representation in image table? 3rd order polynomial 988 across the chip? 989 990 does the AP Database know about FPA, Chip, Distortion Model, etc? I 991 th ink it probably needs to if it is going to solve for distortion992 models. however, this operation may be a combination of AP DB 993 interaction and MD DB interaction.1061 \subsubsection{Throughput} 1062 1063 The AP Database design partly driven by the need to make the 1064 detection-object associations quickly and to processes the incoming 1065 detections at a sufficiently high rate to meet the throughput 1066 requirements. For each upload of the object detections from a 1067 complete FPA, the AP Database must match roughly $1.4 \times 10^{6}$ 1068 detections from an FPA with roughly $6.4 \times 10^{6}$ objects, 1069 including orphaned bright detections. This corresponds to roughly 640 1070 MB, if each object uses 100 bytes for its descriptive informations 1071 (more than is currently specified in the Object table). With a 1072 throughput of 100 MB/s for reads from a RAID, the AP Database can 1073 perform the data read in a fraction of a second if the data is 1074 distributed across 10 computers. 994 1075 995 1076 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 996 1077 997 1078 \subsection{Controller} 1079 \label{sec:Controller} 1080 1081 \subsubsection{Corresponding Requirements} 1082 1083 The Controller must meet the requirements specified in Section 3.4.4 1084 of the Pan-STARRS PS-1 IPP SRS (PSDC-430-005). The design must meet 1085 requirements 3.4.4.1 - 3.4.4.7. In particular, the Controller / Node 1086 Agent architecture is chosen to control the I/O flow between the 1087 Controller and the individual processes so that blocking on the I/O 1088 from many remote processes does not saturate the Controller 1089 processing. 1090 1091 \subsubsection{Overview} 998 1092 999 1093 \begin{figure} … … 1027 1121 manage background tasks or if the IPP Controller should attempt to 1028 1122 send one task per CPU and let the operating system handle the I/O 1029 load. 1123 load. The relationship between the different components of the 1124 Controller is illustrated in Figure~\ref{fig:Controller} and discussed 1125 below. 1030 1126 1031 1127 \subsubsection{Nodes} 1032 1128 1033 The Controller maintains a table of processing computers (`Nodes')1034 available to it and tracks the status of these Nodes. Nodes managed 1035 by the IPP Controller are allowed to be in one of several states, and 1036 the IPP Controller must interact with it in an appropriate way for 1037 each of those states. A computer may be {\tt alive}, {\tt dead} or 1038 {\tt off}. If the computer is {\tt alive}, it responds to commands 1039 from the IPP Controller and may be used for tasks subject to other 1040 constraints. If it is {\tt dead}, the computer is not responsive and1041 must not be used for executing tasks. The IPP Controller must 1042 identify computers which have died (not responding) and occasionally1043 test them to see if they are {\tt alive} again. Computers which are 1044 {\tt off} are not available for tasks and must not be tested. 1045 Computers may be set to the {\tt off} or {\tt dead} states by external 1046 subsystems; it is the responsibility of the IPP Controller to return a 1047 computer to the {\ttalive} state if possible.1129 The Controller maintains a table of available processing computers 1130 (`Nodes') and tracks the status of these Nodes. Nodes managed by the 1131 IPP Controller are allowed to be in one of several states, and the IPP 1132 Controller must interact with it in an appropriate way for each of 1133 those states. A Node may be {\tt alive}, {\tt dead} or {\tt off}. 1134 If the Node is {\tt alive}, it responds to commands from the IPP 1135 Controller and may be used for tasks subject to other constraints. If 1136 it is {\tt dead}, the Node is not responsive and must not be used 1137 for executing tasks. The IPP Controller must identify Nodes which 1138 have died (not responding) and occasionally test them to see if they 1139 are {\tt alive} again. Nodes which are {\tt off} are not 1140 available for tasks and must not be tested. Nodes may be set to 1141 the {\tt off} or {\tt dead} states by external subsystems; it is the 1142 responsibility of the IPP Controller to return a Node to the {\tt 1143 alive} state if possible. 1048 1144 1049 1145 The IPP Controller must honor requests (normally from the users) to 1050 1146 change the mode of any computing node on demand between {\tt off} and 1051 {\tt dead}. This would normally be done after a computerhas been1147 {\tt dead}. This would normally be done after a Node has been 1052 1148 rebooted and is released to the IPP Controller for its use. It must 1053 1149 also be able to change the list of allowed tasks as requested by 1054 1150 external commands. 1055 1151 1056 Two example scenarios illustrate the transition between these states. 1057 First, imagine a computer crashes. At this point the IPP Controller 1058 should detect that the computer is no longer responsive and mark it 1059 {\tt dead}. It should occasionally try to re-establish communication 1060 with the computer, potentially with longer and longer delays between 1061 attempts. A human could be notified if the computer seems to remain 1062 {\tt dead} for a very long time. In another scenario, a person needs 1063 to work on a computer. They notify the IPP Controller that the 1064 machine is {\tt off}, perhaps with a prior notification that the 1065 machine should be prepared to go off. When work on the machine is 1066 complete, it should be placed in the {\tt dead} state. Only when the 1067 person is done working and testing the machine, and tells the IPP 1068 Controller that the machine is now {\tt dead} can the IPP Controller 1069 attempt to re-start communications and processing on that computer. 1152 Two example scenarios illustrate the transition between these states, 1153 and the basic concept of operations for the IPP Controller. First, 1154 imagine a computer crashes. At this point the IPP Controller should 1155 detect that the Node is no longer responsive and mark it as {\tt 1156 dead}. It should occasionally try to re-establish communication with 1157 the Node, potentially with longer and longer delays between attempts. 1158 A human could be notified if the Node seems to remain {\tt dead} for a 1159 very long time. In another scenario, a person needs to work on a 1160 Node. They notify the IPP Controller that the machine is {\tt off}, 1161 perhaps with a prior notification that the machine should be prepared 1162 to go off. When work on the machine is complete, it should be placed 1163 in the {\tt dead} state. Only when the person is done working and 1164 testing the machine, and tells the IPP Controller that the machine is 1165 now {\tt dead} can the IPP Controller attempt to re-start 1166 communications and re-new processing operations on that Node. 1070 1167 1071 1168 \subsubsection{Node Agents} 1072 1169 1073 1170 When the Controller starts, it attempts to launch a Node Agent on each 1074 of the available processing Nodes. Modes which are not responsive are1075 placed marked as {\tt dead} so they may be retried. A Node Agent runs 1076 on each of the individual nodes to execute the tasks as directed by 1077 theController. The Node Agents communicate with the Controller via a1171 of the available processing Nodes. Nodes which are not responsive are 1172 marked as {\tt dead} so they may be re-tried. A Node Agent runs on 1173 each of the individual nodes to execute the tasks as directed by the 1174 Controller. The Node Agents communicate with the Controller via a 1078 1175 socket connection. 1079 1176 1080 A Node Agent (which is only on Node in the {\tt alive} state) may be1081 in one of four modes: {\tt idle}, {\tt busy}, {\tt done}, {\tt crash}. 1082 A Node Agent which is {\tt busy} currently has a task assigned to it 1083 which is executing. The IPP Controller may only assign one task to a 1084 Node at a time. A Node Agent which is in the {\tt idle} state may 1085 have a task assigned to it. When the Node Agent detects that a tasks 1086 has finished, it changes to either the {\tt done} or {\tt crash}1087 states depending on the outcome of the process execution. The IPP 1088 Controller must also respect a list of task restrictions which may 1089 re quire specific tasks to run on specific CPUs or exclude specific1090 tasks from specific CPUs.1177 A Node Agent (which is only running on a Node in the {\tt alive} 1178 state) may be in one of four modes: {\tt idle}, {\tt busy}, {\tt 1179 done}, {\tt crash}. A Node Agent which is {\tt busy} currently has a 1180 task assigned to it which is executing. The IPP Controller may only 1181 assign one task to a Node at a time. A Node Agent which is in the 1182 {\tt idle} state may have a task assigned to it. When the Node Agent 1183 detects that a tasks has finished, it changes to either the {\tt done} 1184 or {\tt crash} states depending on the outcome of the process 1185 execution. The IPP Controller must also respect a list of task 1186 restrictions which may require specific tasks to run on specific CPUs 1187 or exclude specific tasks from specific CPUs. 1091 1188 1092 1189 A task being executed by the Node is run in the UNIX user space as a … … 1100 1197 1101 1198 The Node Agent returns its state ({\tt idle}, {\tt busy}, {\tt done}, 1102 {\tt crash '}) and the exit status of the current processing task, if1199 {\tt crash}) and the exit status of the current processing task, if 1103 1200 available. The reported exit state, if the process has completed 1104 1201 without crashing, is the UNIX exit state reported by the task: 0--256 … … 1120 1217 \paragraph{Kill task } 1121 1218 1122 The Node Agent should send a kill signal ( signal 9 or 15) to the1123 current processing task. When the processing task has exited, the 1124 Node Agent should set its state to {\tt crash}.1219 The Node Agent should send a kill signal (\code{KILL} or \code{TERM}) 1220 to the current processing task. When the processing task has exited, 1221 the Node Agent should set its state to {\tt crash}. 1125 1222 1126 1223 \paragraph{Clear task} 1127 1224 1128 1225 The Node Agent should set its state {\tt idle}. If a processing stage 1129 is currently running, it should be killed ( signal 9 or 15) before the1130 task is cleared.1226 is currently running, it should be killed (\code{KILL} or \code{TERM}) 1227 before the task is cleared. 1131 1228 1132 1229 \paragraph{Start processing stage} … … 1145 1242 valid resource regardless of the node on which the task is executed. 1146 1243 Input and output data resources must be unique where necessary to 1147 avoid conflicts. \tbd{It is the responsibility of the programs to 1148 wait for network lags (ie, NFS delays)}. The IPP Controller gives 1149 each task a unique identifier, which is returned to the requesting 1150 entity. The requestor may then use that ID to obtain status 1151 information on that task or to send control signals to the specific 1152 task. 1244 avoid conflicts. It is the responsibility of the task to wait for 1245 network lags (ie, NFS delays). The IPP Controller gives each task a 1246 unique identifier, which is returned to the requesting entity. The 1247 requestor may then use that ID to obtain status information on that 1248 task or to send control signals to the specific task. 1153 1249 1154 1250 Task requests may specify a desired node for the task execution. The … … 1163 1259 1164 1260 Task requests may specify an urgency level. The IPP Controller 1165 determines the priority of the task on the basis of both the priority1261 determines the priority of the task on the basis of both the urgency 1166 1262 and the age of the request. An executing task must be completed on a 1167 1263 CPU before any new task is started on that CPU, regardless of 1168 priority. Tasks may be assigned a priority of 0 in which case they 1169 are maintained in the queue and never executed. 1264 priority. The urgency levels range from 0 to 2. Tasks with an 1265 urgency of 1 are scheduled whenever they reach the top of the stack. 1266 Tasks with an urgency of 2 are sent immediately to the top of the 1267 stack. Tasks assigned a priority of 0 are maintained in the queue and 1268 never executed. 1170 1269 1171 1270 It may be useful for the Controller to distinguish between tasks … … 1185 1284 completed. 1186 1285 1187 \subsubsection{ ExternalInterfaces}1286 \subsubsection{Controller Interfaces} 1188 1287 1189 1288 The IPP Controller must accept commands from other IPP subsystems. … … 1237 1336 \subsection{Scheduler} 1238 1337 1338 \subsubsection{Corresponding Requirements} 1339 1340 The Scheduler must meet the requirements specified in Section 3.4.5 of 1341 the Pan-STARRS PS-1 IPP SRS (PSDC-430-005). The design must meet 1342 requirements 3.4.5.1 - 3.4.5.7. In particular, the Task / Test 1343 division is chosen to prevent the Scheduler from blocking while an 1344 analysis process is performed. Scheduling requirements will be met by 1345 defining appropriate Test periods for the different Tasks. 1346 1347 \subsubsection{Overview} 1348 1239 1349 The IPP is responsible for a variety of analysis jobs: processing of 1240 1350 the science images through several stages; routine assessment of the … … 1250 1360 and initiate the actions. 1251 1361 1252 The IPP Scheduler acts as an intermediary between several components 1253 of the IPP and also between the IPP and external agents such as OTIS 1254 and the users who must monitor the behavior of the IPP. The IPP 1255 Scheduler may be viewed as the central brain of the IPP. 1256 Figure~\ref{Scheduler} illustrates the design of the IPP Scheduler. 1362 The IPP Scheduler acts as an interface between several components of 1363 the IPP and also between the IPP and external agents such as OTIS and 1364 the users who must monitor the behavior of the IPP. The IPP Scheduler 1365 may be viewed as the central brain of the IPP. 1366 Figure~\ref{fig:Scheduler} illustrates the design of the IPP 1367 Scheduler. 1257 1368 1258 1369 \subsubsection{Scheduler Tasks and Tests} … … 1281 1392 \begin{center} 1282 1393 \resizebox{6in}{!}{\includegraphics{pics/Scheduler}} 1283 \caption{ \label{ Scheduler} IPP Scheduler}1394 \caption{ \label{fig:Scheduler} IPP Scheduler} 1284 1395 \end{center} 1285 1396 \end{figure} … … 1288 1399 While the IPP Scheduler chooses the tasks to be performed, it is the 1289 1400 IPP Controller's responsibility to manage the specific tasks executing 1290 on a given processing node. This division of responsibilit es allows1291 us to isolate and encapsulate the functionality of the IPP Scheduler 1292 and the IPP Controller. With this separation, the IPP Controller does 1293 not need to have any information about the details of the tasks which 1294 itexecutes, while the IPP Scheduler does not need to monitor the1401 on a given processing node. This division of responsibilities allows 1402 the different functionalities of the IPP Scheduler and the IPP 1403 Controller to be isolated and encapsulated. With this separation, the 1404 IPP Controller does not information about the details of the tasks it 1405 executes, while the IPP Scheduler does not need to monitor the 1295 1406 computer hardware. 1296 1407 … … 1298 1409 bi-directional; the IPP Scheduler sends tasks to the IPP Controller, 1299 1410 while the IPP Controller informs the IPP Scheduler of the outcome of 1300 those tasks. It is not specified whether the IPP Scheduler andIPP1301 Controller are components of a single software system or interacting1302 but distinct software components.1411 those tasks. For the PS-1 IPP, the IPP Scheduler and the IPP 1412 Controller are distinct, interacting software components. The 1413 interface mechanisms are described in Section~\ref{sec:interfaces}. 1303 1414 1304 1415 \subsubsection{Task Rules} … … 1306 1417 The IPP Scheduler takes as input a collection of rules which define 1307 1418 the dependency of tasks on certain tests. The IPP Scheduler must 1308 choose between several types of analysis tasks based on those rul s and1309 on results of the tests. The timescale on which different tasks (and 1310 their related tests) are executed may vary from 10s of seconds to1311 hours, days, or even week. The list of tasks which the IPP Scheduler1312 must decide between, and the relevant timescale, follow:1419 choose between several types of analysis tasks based on those rules 1420 and on results of the tests. The timescale on which different tasks 1421 (and their related tests) are executed may vary from 10s of seconds to 1422 hours, days, or even as long as a week. The list of tasks which the 1423 IPP Scheduler must decide between, and the relevant timescale, follow: 1313 1424 \begin{itemize} 1314 1425 \item moving data from the Summit pixel server ($\sim 30$ second timescales) … … 1318 1429 \item constructing new detrend images ($\sim$ weekly) 1319 1430 \end{itemize} 1320 The scheduler may be viewed as a complex state machine. Ourgoal is1431 The scheduler may be viewed as a complex state machine. The goal is 1321 1432 to design the scheduler so that rules may be specified independently 1322 from the engine which parses the rules to dete mine which specific jobs1433 from the engine which parses the rules to determine which specific jobs 1323 1434 to send to the controller. 1324 1435 1325 1436 \subsubsection{User Interface} 1326 1437 1327 The IPP Scheduler provides a user interface which allows a human1438 The IPP Scheduler shall possess a user interface which allows a human 1328 1439 operator, or other processes, to monitor the current state of the 1329 1440 Scheduler. Users have the option to specify that a particular task or 1330 set of tasks is of higher or lower priority than the norm, or to 1331 schedule a particular tasks on a different timescale from the basic 1332 rule. 1333 1334 The IPP Scheduler defines the operating state of the IPP. When the 1335 IPP is in the {\em automatic state}, the IPP Scheduler performs the 1441 set of tasks is of higher or lower urgency (as defined in 1442 Section~\ref{sec:Controller}) than the norm, or to schedule a 1443 particular tasks on a different timescale from the basic rule. 1444 1445 The IPP Scheduler defines the operating state of the IPP and shares 1446 the same set of states: 1447 \begin{itemize} 1448 \item active state 1449 \item interactive state 1450 \item paused state 1451 \end{itemize} 1452 When the IPP Scheduler is in the {\em active state}, it performs the 1336 1453 most appropriate of all possible tasks at a particular time. When the 1337 IPP is in the {\em interactive state}, the IPP Scheduler performs only1338 the requested action regardless of the outcome of the decision trees. 1339 In addition, in the interactive state, the IPP Scheduler must only 1340 perform the requested actions and not attempt to perform the other 1341 normally-required actions. The only exception to this exclusion is 1342 that, in the interactive state, data is still copied from the summit 1343 s ystem. An additional IPP state is the {\em paused state}, intended1344 for tests or maintenance, in which case the IPP Scheduler does not 1345 perform even the data copy tasks. Every task is performed on demand 1346 by the user. A user command sets the IPP Scheduler in one of these 1347 th ree states, {\em automatic}, {\em interactive}, and {\em paused}.1454 IPP Scheduler is in the {\em interactive state}, it performs only a 1455 specific requested action regardless of the outcome of the decision 1456 trees. In addition, in the interactive state, the IPP Scheduler must 1457 only perform the requested actions and not attempt to perform the 1458 other normally-required actions. The only exception to this exclusion 1459 is that, in the interactive state, data is still copied from the 1460 summit system. An additional IPP state is the {\em paused state}, 1461 intended for tests or maintenance, in which case the IPP Scheduler 1462 does not perform even the data copy tasks. Every task is performed on 1463 demand by the user. A user command sets the IPP Scheduler in one of 1464 these three states, {\em active}, {\em interactive}, and {\em paused}. 1348 1465 1349 1466 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1350 1467 1351 1468 \section{System Design : Science Analysis Tasks and Stages} 1352 1353 In this section, we discuss the design of the science analysis stages 1354 which perform the fundamental image analysis steps of the IPP. The 1355 IPP science image processing stages perform analyses on the night-sky 1469 \label{sec:AnalysisStages} 1470 1471 This section describes the design of the science analysis stages which 1472 perform the fundamental image analysis steps of the IPP. The IPP 1473 science image processing stages perform analyses on the night-sky 1356 1474 science images to extract the science data from these images. These 1357 consist of: Phase 1, the image processing preparation stage; Phase 2, 1358 the image reduction stage; Phase 3, the exposure analysis stage; and 1359 Phase 4, the image combination stage. These analysis tasks must 1360 process the images in a timely manner so that the incoming data stream 1361 will not overload the IPP Image Server. The decision to execute a 1362 specific pipeline for a specific dataset is made by the Scheduler, 1363 which sends the infomation to the Controller. The Controller executes 1364 the pipeline for the data on an appropriate machine and monitors the 1365 success or failure of the processing stage. 1475 consist of: 1476 \begin{itemize} 1477 \item Phase 1, the image processing preparation stage, 1478 \item Phase 2, the image reduction stage 1479 \item Phase 3, the exposure analysis stage 1480 \item Phase 4, the image combination stage. 1481 \end{itemize} 1482 These analysis tasks must process the images in a timely manner so 1483 that the incoming data stream will not overload the IPP Image Server. 1484 The decision to execute a specific pipeline for a specific dataset is 1485 made by the Scheduler, which sends the information to the Controller. 1486 The Controller executes the pipeline for the data on an appropriate 1487 machine and monitors the success or failure of the processing stage. 1366 1488 1367 1489 The analysis stages are written as UNIX commands, which may be … … 1384 1506 1385 1507 The recipe is loaded as part of the runtime configuration information 1386 loaded when the analysis script starts. We define four levels of1387 runtime configuration information. The {\tt site} configuration1508 loaded when the analysis script starts. Four levels of runtime 1509 configuration information are defined. The {\tt site} configuration 1388 1510 defines values specific to the particular installation of the 1389 1511 software. For example, the name of the machine which hosts the … … 1408 1530 also be specified on the command line. Examples of the recipe and 1409 1531 other runtime configuration options are given in 1410 Appendix~\ref{ RuntimeConfig}.1532 Appendix~\ref{sec:RuntimeConfig}. 1411 1533 1412 1534 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 1422 1544 magnification. The guide star coordinates are loaded from the 1423 1545 Metadata database. These calculations are performed by comparing the 1424 observed guide star detector coo dinates with the known astrometic1546 observed guide star detector coordinates with the known astrometric 1425 1547 positions of these same stars as reported by an external astrometric 1426 1548 reference. The accuracy of the resulting astrometric solution is … … 1440 1562 detection to determine the detector coordinates of those bright stars 1441 1563 which are not saturated but which are significantly above the 1442 background level. By target ting known locations in the image files,1564 background level. By targeting known locations in the image files, 1443 1565 only a small amount of data will have to be read. 1444 1566 … … 1455 1577 phase. It is acceptable for a small number of invalid overlaps to be 1456 1578 identified as these will be excluded in Phase 4. Static Sky cells 1457 which do not have sufficient science image overlap \tbr{$< 5\%$} need1458 notbe processed because the few new measured pixels do not add1579 which do not have sufficient science image overlap ($< 5\%$) need not 1580 be processed because the few new measured pixels do not add 1459 1581 significantly to the Static Sky. 1460 1582 1461 \subsubsection{Notes} 1583 \subsubsection{Examples} 1584 1585 Examples of Phase 1 as called from the command line, with different 1586 types of images: 1462 1587 1463 1588 \begin{verbatim} … … 1505 1630 \subsubsection{Load Images} 1506 1631 1507 The Phase 2 analysis must load the science image to be analy sed into1632 The Phase 2 analysis must load the science image to be analyzed into 1508 1633 memory, as well as the corresponding metadata (either from the image 1509 1634 header and/or from the IPP Metadata Database). It must use the … … 1520 1645 1521 1646 Science images which have been obtained with Orthogonal-Transfer 1522 Guiding have had th ier pixel response smoothed by the image correction1647 Guiding have had their pixel response smoothed by the image correction 1523 1648 motion. For these images, some of the detrend images need to be 1524 1649 convolved by the same OT kernel, so that they accurately represent the … … 1539 1664 fringe frame(s) by the OT convolution kernel. Specific flags in the 1540 1665 static bad pixel mask are also grown by the outline of the OT 1541 convolution kernel (see Section \ref{ap:masks}).1666 convolution kernel (see Section~\ref{sec:masks}). 1542 1667 1543 1668 \subsubsection{Bias Correction / Overscan Subtraction} 1544 1669 1545 1670 The image bias must be subtracted. Since different detectors behave in 1546 different ways, several options for model ling the bias are available.1671 different ways, several options for modeling the bias are available. 1547 1672 The bias is measured from the image overscan region. The bias 1548 1673 subtraction method must be capable of subtracting a single constant 1549 1674 from the complete image, or to subtract a 1-D bias which varies as a 1550 1675 function along the overscan. The function used to represent the 1551 overscan region may be a spline or a chebychev polynomial derived from1676 overscan region may be a spline or a Chebychev polynomial derived from 1552 1677 the data values along the overscan. The values used to determine both 1553 1678 the single constant or the inputs to the spline and polynomial fits … … 1562 1687 1563 1688 \subparagraph{Flag bad and saturated pixels} 1689 \label{sec:masks} 1564 1690 1565 1691 A static bad pixel mask is used to identify pixels which are known to … … 1567 1693 image. Bad pixels which are charge traps are grown by the extent of 1568 1694 the OT convolution kernel. Bad pixels above a charge trap (i.e.\ bad 1569 colum s) must not be grown, since they were not affected by pixel1695 columns) must not be grown, since they were not affected by pixel 1570 1696 shifting, but only became bad at read-out. 1571 1697 … … 1633 1759 artifacts generated by bright stars: bleeding columns, ghosts, or 1634 1760 other localized reflection effects. This process also produces a 1635 super binned image of the background map which may be used as a1761 super-binned image of the background map which may be used as a 1636 1762 debugging diagnostic. 1637 1763 … … 1647 1773 \subsubsection{Detect and Measure objects} 1648 1774 1649 After the image have been processed by the prece eding steps, the Phase1775 After the image have been processed by the preceding steps, the Phase 1650 1776 2 analysis performs a basic object detection analysis. Objects on the 1651 1777 flat-fielded object image are found, and general parameters are 1652 1778 measured. Object detection is performed at several stages by the IPP, 1653 1779 with different object parameters measured in each case. 1654 Table~\ref{ APdetections} gives a list of the different detection1780 Table~\ref{tab:APdetections} gives a list of the different detection 1655 1781 stages and the object parameters measured for those stages. For the 1656 1782 Phase 2 analysis, the object parameters are: the object centroid and 1657 the position covari ence matrix, the instrumental PSF magnitude and1783 the position covariance matrix, the instrumental PSF magnitude and 1658 1784 error, local background level and error, a measurement of the 1659 1785 star-galaxy separation, and a measurement of the object shape … … 1693 1819 (either stars with poorly determined proper motion or spurious 1694 1820 matches). The resulting astrometric solution is consistent across the 1695 OTA field to within \tbr{0.2 arcsec}.1821 OTA field to within 1.0 arcsec. 1696 1822 1697 1823 \subsubsection{Perform Photometry} … … 1719 1845 %\begin{center} 1720 1846 %\resizebox{6in}{!}{\includegraphics{pics/phase2}} 1721 %\caption{ \label{ phase2} Phase 2 dataflow - this diagram is old: update}1847 %\caption{ \label{fig:phase2} Phase 2 dataflow - this diagram is old: update} 1722 1848 %\end{center} 1723 1849 %\end{figure} … … 1753 1879 center, followed by a rotation to the average rotation of the FPA and 1754 1880 adjustment for the central plate scale. The free parameters in this 1755 stage are the boresite coordi ates ($R_o, D_o$), the field rotation1881 stage are the boresite coordinates ($R_o, D_o$), the field rotation 1756 1882 ($\theta_o$) and the plate scale ($\rho_o$), and are fitted in Phase 1757 1883 1. These tangent plane coordinates are then distorted by the optical … … 1778 1904 local reference catalog. This analysis may only be performed if a 1779 1905 local reference is available. Note that improved relative photometry 1780 calculations may be performed in the absen se of a reference catalog on1906 calculations may be performed in the absence of a reference catalog on 1781 1907 the basis of image overlaps in the AP Database {\em after} the 1782 1908 detections have been added to the Database. Such a relative … … 1784 1910 performed as an independent analysis process. Given the presence of a 1785 1911 local photometry reference, the zero point variations across the field 1786 may be measured, and possibly model led. If the zero-point variations1912 may be measured, and possibly modeled. If the zero-point variations 1787 1913 are excessive, then the image is marked as non-photometric by the 1788 1914 analysis. … … 1810 1936 same number of pixels as an OTA (4k x 4k) and represent a portion of a 1811 1937 local tangent plane projection. In order to meet the image 1812 degr edation requirements, the pixel scale of the static sky is planned1938 degradation requirements, the pixel scale of the static sky is planned 1813 1939 to be 0.2\arcsec, somewhat smaller than the 0.3\arcsec\ raw image 1814 1940 pixel scale. … … 1849 1975 between the input image and the static sky image. This will be done 1850 1976 by solving for a best-fit image kernel which minimizes the difference 1851 image using a technique equivalent to the Allard-Lupton method. The1852 modification we make is that, rather than represent the components of1853 the image difference kernel as a combination of Gaussians, we will 1854 represent the kernel as a combination of pixels. This method also 1855 a utomatically determines a photometric match between the static sky1856 image and the input science image.1977 image using a technique equivalent to the Allard-Lupton method. One 1978 modification for the IPP is to represent the kernel as a combination 1979 of independent pixels rather than represent the components of the 1980 image difference kernel as a combination of Gaussians. This method 1981 also automatically determines a photometric match between the static 1982 sky image and the input science image. 1857 1983 1858 1984 \subsubsection{Object Detection and Measurement} … … 1860 1986 Objects in the difference image are detected and a specific set of 1861 1987 object parameters are measured from these detections. 1862 Table~\ref{ APdetections} gives a list of the different detection1988 Table~\ref{tab:APdetections} gives a list of the different detection 1863 1989 stages and the object parameters measured for those stages. For the 1864 1990 Phase 4 difference image (P4$\Delta$), the measured object parameters 1865 consist of: the object centroid and the position covari ence matrix,1991 consist of: the object centroid and the position covariance matrix, 1866 1992 the instrumental PSF magnitude and error, local background level and 1867 1993 error, a measurement of the star-galaxy separation, and a measurement … … 1878 2004 Objects in the cleaned, summed image are detected and a specific set 1879 2005 of object parameters are measured from these detections. 1880 Table~\ref{ APdetections} gives a list of the different detection2006 Table~\ref{tab:APdetections} gives a list of the different detection 1881 2007 stages and the object parameters measured for those stages. For the 1882 2008 Phase 4 summed image (P4$\Sigma$), the measured object parameters 1883 consist of: the object centroid and the position covari ence matrix,2009 consist of: the object centroid and the position covariance matrix, 1884 2010 the instrumental PSF magnitude and error, local background level and 1885 2011 error, a measurement of the star-galaxy separation, a measurement of … … 1921 2047 %\begin{center} 1922 2048 %\resizebox{6in}{!}{\includegraphics{pics/phase4}} 1923 %\caption{ \label{ phase4} Phase 4 dataflow}2049 %\caption{ \label{fig:phase4} Phase 4 dataflow} 1924 2050 %\end{center} 1925 2051 %\end{figure} … … 1940 2066 The Calibration analysis stages may be performed on whatever 1941 2067 timescales are appropriate and necessary to maintain the quality and 1942 relevance of the calibration images. Below, we list the specific1943 calibration data which must be constructed in the calibration analysis 1944 stages. 2068 relevance of the calibration images. The specific calibration data 2069 which must be constructed in the calibration analysis stages is listed 2070 below. 1945 2071 1946 2072 The IPP must generate basic calibration images using the raw bias, … … 2073 2199 thin-film interference must also be detected and corrected. Models of 2074 2200 this background structure may be a necessary input to the correction 2075 proce edure. The IPP must have the capability of generating image2201 procedure. The IPP must have the capability of generating image 2076 2202 models of the large-scale structure patterns observed with the 2077 2203 telescope … … 2086 2212 moved to a variety of locations on the detector in a sequence of 2087 2213 images. The flat-field correction frames analysis stage makes use of 2088 target ted observations following a specified dither pattern, and2214 targeted observations following a specified dither pattern, and 2089 2215 extracts the photometered objects from the AP Database to determine 2090 2216 the necessary photometric corrections. The resulting image is applied … … 2092 2218 performed by applying the correction to the basic master flat-field 2093 2219 image, applying that flat-field image to the dithered photometry 2094 observations, and performing the object detections. Compari on of the2220 observations, and performing the object detections. Comparison of the 2095 2221 photometry of individual stars at different locations on the mosaic 2096 2222 will demonstrate the consistency of the flat-field image. … … 2110 2236 \section{System Design : Miscellaneous Tasks} 2111 2237 2112 In this section, we discuss additional operations which are performed 2113 by the IPP but which do not fall under the analysis of the science 2114 images or the creation of the calibration images. 2238 This section discusses additional operations which are performed by 2239 the IPP but which do not fall under the analysis of the science images 2240 or the creation of the calibration images. 2115 2241 2116 2242 \subsection{Retrieval} … … 2128 2254 performed in the real-time analysis. The currently envisioned 2129 2255 parameters to be measured for every object are listed in 2130 Table~\ref{ APdetections}. The parameters include the object centroid2131 and the position covari ence matrix, the instrumental PSF magnitude and2256 Table~\ref{tab:APdetections}. The parameters include the object centroid 2257 and the position covariance matrix, the instrumental PSF magnitude and 2132 2258 error, local background level and error, a measurement of the 2133 2259 star-galaxy separation, a measurement of the object shape ($\sigma_x, … … 2200 2326 \subsection{Pan-STARRS Library} 2201 2327 2202 The Pan-STARRS Library will consist of C structures describing the basic2203 data types needed by the IPP and C functions which perform the basic 2204 data manipulation operations. Note that a subset of the library2328 The Pan-STARRS Library will consist of C structures describing the 2329 basic data types needed by the IPP and C functions which perform the 2330 basic data manipulation operations. Note that a subset of the library 2205 2331 functions will be provided with SWIG interfaces as well to allow for 2206 2332 their use in the creation of the processing stages. Examples of the 2207 Pan-STARRS Library are fourier transforms and transforming between pixel 2208 and celestial coordinates. 2209 2210 \subsection{Modules} 2333 Pan-STARRS Library are Fourier transforms and transforming between 2334 pixel and celestial coordinates. The details of the Pan-STARRS 2335 Library are specified in the document Pan-STARRS IPP PSLib 2336 Supplementary Design Requirements Specification (PSDC-430-007), which 2337 also addresses coding requirements detailed in the IPP PS-1 SRS 2338 (PSDC-430-005), Section 3.3. 2339 2340 \subsection{IPP Modules} 2211 2341 2212 2342 The IPP analysis stages are broken down into modules which represent 2213 2343 specific functional operations. The modules will be written in C 2214 using the Pan-STARRS Library functions and will be grouped into a Pan-STARRS 2215 Module Library. The modules will be provided with SWIG interfaces to 2216 all public APIs for their use in processing stages. Examples of 2217 modules are overscan subtraction and image combination. Some modules 2218 (e.g.\ find objects on an image) will be used by multiple stages. 2219 2220 \subsection{Stages} 2344 using the Pan-STARRS Library functions and will be grouped into a 2345 Pan-STARRS Module Library. The modules will be provided with SWIG 2346 interfaces to all public APIs for their use in processing stages. 2347 Examples of modules are overscan subtraction and image combination. 2348 Some modules (e.g.\ find objects on an image) will be used by multiple 2349 stages. The details of the Pan-STARRS Modules are specified in the 2350 document Pan-STARRS IPP Modules Supplementary Design Requirements 2351 Specification (PSDC-430-012), which also addresses coding requirements 2352 detailed in the IPP PS-1 SRS (PSDC-430-005), Section 3.3. 2353 2354 \subsection{IPP Stages} 2221 2355 2222 2356 The major IPP processing tasks are organized into stages, which … … 2232 2366 2233 2367 \section{Interfaces} 2368 \label{sec:interfaces} 2234 2369 2235 2370 \subsection{Internal Interfaces} … … 2256 2391 2257 2392 FITS Tables will be used to store and transport tabular data, 2258 especially large queries from database subsystems. The Auto coding2259 technique discussed in Appendix~\ref{ Autocode} is used to define many2393 especially large queries from database subsystems. The Auto-coding 2394 technique discussed in Appendix~\ref{sec:AutocodeIO} is used to define many 2260 2395 different table interactions. 2261 2396 … … 2269 2404 interface to the databases. 2270 2405 2406 Within IPP and Pan-STARRS in general, process-to-process communication 2407 will be defined through auto-coded APIs which support a limited and 2408 validated communication protocol. The APIs will be coded based on a 2409 table which defines the allowed command set and the grammar to be 2410 used. This mechanism will allow a single code block to define 2411 inter-process communication methods for many Pan-STARRS subsystems, 2412 including, within the IPP, the Scheduler-Controller communications. 2413 2271 2414 \subsection{External Interfaces} 2272 2415 2273 2416 This subsection describes the interfaces between the IPP and other 2274 2417 Pan-STARRS systems and the external clients. The interfaces are 2275 illustrated in Figure~\ref{ overview}.2418 illustrated in Figure~\ref{fig:overview}. 2276 2419 2277 2420 \subsubsection{OTIS} … … 2294 2437 \subsubsection{PSPS} 2295 2438 2296 The details of the transfer mechanism have \tbd{not been worked out}. 2297 The data to be transfered include: 2439 Data will be sent to PSPS from the IPP as part of a daily or weekly 2440 analysis process on the Static Sky. The data will be pushed from the 2441 IPP to PSPS when they are available. The data to be transfered 2442 include: 2298 2443 \begin{itemize} 2299 \item Static Sky images 2300 \item Postage Stamps 2301 \item Metadata tables 2302 \item Detections \& Object associations. 2444 \item Static Sky images - to be transferred as FITS images or 2445 FITS triangular image regions. 2446 \item Postage Stamps - to be transferred as FITS images. 2447 \item Metadata tables - to be transferred as FITS tables 2448 \item Detections \& Object associations - to be transferred as FITS tables. 2303 2449 \end{itemize} 2304 2450 2305 2451 \subsubsection{MOPS} 2306 2452 2307 The details of the transfer mechanism have \tbd{not been worked out}. 2308 The data to be transfered include: 2453 Data will be sent to MOPS from the IPP as part of the Phase 4 2454 analysis. The data will be pushed from the IPP to MOPS when they are 2455 available. The data to be transfered include: 2309 2456 \begin{itemize} 2310 \item Image Metadata tables 2311 \item Orphaned Detections 2457 \item Image Metadata tables - to be transferred as FITS tables 2458 \item Orphaned Detections - to be transferred as FITS tables 2312 2459 \end{itemize} 2313 2460 2314 2461 \subsubsection{Other Preferred Client Science Pipelines} 2315 2462 2316 The details of the transfer mechanism have \tbd{not been worked out}. 2463 These cannot be completely defined until the Clients are defined and 2464 their requirements are specified. The expectation is that the data 2465 products will be the same as for the MOPS. The data will be pushed 2466 from the IPP to the Client Science Pipeline when they are available. 2317 2467 2318 2468 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2319 2469 2320 2470 \section{Computer Hardware} 2471 \label{sec:Hardware} 2321 2472 2322 2473 \subsection{PS-1 Cluster Design} … … 2333 2484 support the Metadata DB and the AP DB. 2334 2485 2335 The IPP PS-1 SRS (PSDC-xxx) specifies the processing throughput 2336 requirements for the IPP. We have performed benchmark tests of the 2337 processing needs in order to achieve this throughput. The details of 2338 this study are presented in the IPP Hardware Analysis (PSDC-xxx), 2339 which we summarize here. The analysis measures the processing time 2340 (excluding I/O) for both Phase 2 and Phase 4 on an Intel Pentium 4 2341 processor, and expresses the processing time in GHz-seconds, under the 2342 assumption that a machine with the same architecture and twice the 2343 processor speed with perform the same analysis in half the time. This 2344 is probably a valid assumption within a limited range on hardware 2345 using the same architecture. We independently find that 32-bit Pentium 2346 processors perform somewhat slower (up to a factor of 2) than 2347 equivalently rated 64 bit Opeteron processors. This discrepancy makes 2348 our numbers somewhat conservative, but may only compensate for the 2349 simplistic analysis we have performed. 2350 2351 Our benchmarks show that the Phase 2 analysis takes 12000 GHz-seconds 2352 for a complete major frame (4 FPAs) while the Phase 4 analysis takes 2353 7800 GHz-seconds for the same major frame. We also examine the total 2354 data I/O required for each processing node both locally to disk and 2355 across the network to other machines. These numbers in turn depend on 2356 whether the data is optimally stored on the OTA nodes (raw images 2357 matched to their calibration images) or if the data are randomized. 2358 There are also differences in the analysis for how many bits and 2359 images are used in the processing. For PS-1, the `minimal' data set 2360 is approrpiate, resulting in a total Phase 2 I/O of 21 GBs per major 2361 frame and a total Phase 4 I/O of 36 GBs. We will use the randomized 2362 numbers as a conservative estimate, and assume the network is the 2363 dominant I/O bottleneck. 2364 2365 The analysis assumes each CPU is associated with one RAID array 2366 (maximum throughput 110 MB/sec) and one network controller (maximum 2367 throughput 70 MB/s) and that each one is a 2.2 GHz processor. In this 2368 case, given the CPU load and I/O throughput above, the Phase 2 will 2369 require a total of 190 seconds of I/O and 5500 seconds of processing 2370 distributed across the cluster. Likewise, the Phase 4 analysis will 2371 require a total of 330 sec of I/O and 3500 seconds of processing. 2372 Given the 160 seconds available per major frame, these numbers imply a 2373 total of 63 processors are needed to keep up with the processing and 2374 I/O load. 2375 2376 The other major driver on the IPP PS-1 cluster are the data storage 2377 requirements. We are required to store the entire AP Survey data and 2378 the IVP data, and to have storage enough to represent the Static Sky 2379 by the end of the two year mission. These storage requirements as a 2380 function of time are shown in Figure~\ref{StorageProfile}. Based on 2381 the PS-1 Design Reference Mission (PSDC-xxx), by the end of the 2382 second year, we will have total storage needs of 850 TB for raw images 2383 and the Static Sky, and an additional \tbd{XXX} TB for the AP DB 2384 storage. 2385 2386 To meet these requirements, we have designed the IPP cluster to use 2387 fat bricks which will be capable of holding 24 disks each. Before 2388 PS-1 goes on line, we will purchase enough disks to fill 1/3 of the 2389 disk slots. After 9 months (2006 Sept), we will purchase the next 1/3 2390 of the disks, and the remaining disks 9 months after that (2007 June). 2391 We have made conservative estimates of the available disk sizes at 2392 these purchase dates (400 GB, 600 GB, and 900 GB), allowing us to 2393 determine the number of computers needed to meet the storage 2394 specification. We will purchase 80 computers, with the storage 2395 profile shown in the figure, ending at a total capacity (after 2396 discounting volume for RAID overhead and binary vs digital terabytes) 2397 of 950 TBs. The 80 computers will easily meet the processing and I/O 2398 requirements given the above need to 63 processors. 2399 2400 There are two competing trades we will also want to make. First, we 2401 will want to duplicate data to multiple machines in the network to 2402 protect against catastrophic failures on a single machine. This 2403 double the total data space needed. To compensate, however, we will 2404 also employ compression to data, especially data which is older. 2405 These two factors will tend to cancel each other, so we have ignored 2406 both in out calculations above. 2407 2408 \tbd{switch information} 2486 The IPP PS-1 SRS (PSDC-430-005) specifies the processing throughput 2487 requirements for the IPP. Benchmark tests of the IPP processing 2488 algorithms have been used to drive the design needed to achieve the 2489 throughput requirements. The details of this study are presented in 2490 the IPP Computational Challenge (PSDC-400-006), summarized here. The 2491 analysis measures the processing time (excluding I/O) for both Phase 2 2492 and Phase 4 on an Intel Pentium 4 processor, and expresses the 2493 processing time in GHz-seconds, under the assumption that a machine 2494 with the same architecture and twice the processor speed will perform 2495 the same analysis in half the time. This is probably a valid 2496 assumption within a limited range on hardware using the same 2497 architecture. Independent tests show that 32-bit Pentium processors 2498 perform somewhat slower (up to a factor of 2) than equivalently rated 2499 64 bit Opteron processors. This discrepancy makes the measured 2500 numbers somewhat conservative, and compensates for the simplified 2501 analysis performed. The benchmarks show that the Phase 2 analysis 2502 takes 12000 GHz-seconds for a complete major frame (4 FPAs) while the 2503 Phase 4 analysis takes 7800 GHz-seconds for the same major frame. 2504 2505 The total data I/O required for each processing node, both locally to 2506 disk and across the network to other machines, has also been measured. 2507 These numbers in turn depend on whether the data is optimally stored 2508 on the OTA nodes (raw images matched to their calibration images) or 2509 if the data are randomized across the storage nodes. There are also 2510 differences in the analysis for the number of bits per pixel and the 2511 number of calibration images used in the processing. For PS-1, the 2512 `minimal' data set is appropriate, resulting in a total Phase 2 I/O of 2513 21 GBs per major frame and a total Phase 4 I/O of 36 GBs. The 2514 randomized numbers are used as a conservative estimate, under the 2515 assumption the network, not local disk access, is the dominant I/O 2516 bottleneck. 2517 2518 The analysis assumes each CPU (rated at 2.2 GHz) is associated with 2519 one RAID array (maximum throughput 110 MB/sec) and one network 2520 controller (maximum throughput 70 MB/s). In this case, given the CPU 2521 load and I/O throughput above, Phase 2 will require a total of 190 2522 seconds of I/O and 5500 seconds of processing distributed across the 2523 cluster. Likewise, the Phase 4 analysis will require a total of 330 2524 sec of I/O and 3500 seconds of processing. Given the 160 seconds 2525 available per major frame, these numbers imply a total of 63 2526 processors are needed to keep up with the processing and I/O load. 2527 2528 The other major driver on the IPP PS-1 cluster is the data storage 2529 requirements. It is necessary to store the raw images from the entire 2530 AP Survey, the MOPS Verification Program (MVP) and the IPP 2531 Verification Program (IVP), and to have storage enough to represent 2532 the Static Sky by the end of the two year mission. These storage 2533 requirements as a function of time are shown in 2534 Figure~\ref{fig:StorageProfile}. Based on the PS-1 Design Reference 2535 Mission (PSDC-230-001), by the end of the second year, the total 2536 storage requirements for raw images and the Static Sky will be 850 TB, 2537 along with and an additional 55 TB needed for the AP DB storage 2538 2539 To meet these requirements, the IPP cluster is designed to use fat 2540 bricks which will be capable of holding 24 disks each. The 5U / 24 2541 disk rack mount computer cases are one of the highest density 2542 solutions currently available. A 4U / 36 disk box is also available 2543 and will be considered. The disk purchases will be staggered in three 2544 waves. Before PS-1 goes on the sky, the first 1/3 of the disks (600 2545 disks total) will be purchased. Since the lead time for disks is 2546 fairly short, the purchase will be made only when other portions of 2547 Pan-STARRS are clearly on a timeline to success. After 9 months 2548 (tentatively 2006 September), the next 1/3 of the disks will 2549 purchased, and the remaining disks 9 months after that (tentatively 2550 2007 June). Using conservative estimates of the available disk sizes 2551 at these purchase dates (400 GB, 600 GB, and 900 GB), and allocating 1 2552 of 12 disks to the RAID and 10\% of the volume to file system and 2553 binary Gigabyte overheads, the disk purchases outlined above result in 2554 a total volume after the last purchase of 950 TB. This meets the 2555 requirements with 10\% spare excess. The disk volume profile is also 2556 shown in Figure~\ref{fig:StorageProfile} and shows that the disk space 2557 will be available in the time it is required. 2558 2559 The total number of computers to be purchased is 80. This provides 2560 the 1800 disk slots and more than enough processors to meet the 2561 processing requirements. This also leaves 5 live spare machines. 2562 2563 There are two details which are not included in the analysis above: 2564 compression and replication. Compression of the older raw data will 2565 reduce the volume requirements by a factor of roughly two. However, 2566 replication of the data across the network is necessary to ensure the 2567 data against catastrophic failures on a single machine. Replication 2568 doubles the total data space needed. These two factors will tend to 2569 cancel each other, and are ignored in the calculations above. 2570 2571 The IPP PS-1 clusters will have the following allocations of computers 2572 from this cluster: 2573 \begin{itemize} 2574 \item Phase 2 Nodes: 32 2575 \item Phase 4 Nodes: 30 2576 \item AP Database: 10 2577 \item Metadata Database: 1 2578 \item Image Server Database: 1 2579 \item Controller / Scheduler: 1 2580 \end{itemize} 2581 This distribution meets the projections for computational power for 2582 each of these data systems, and leaves 5 computers as live spares for 2583 redundancy. 2409 2584 2410 2585 \subsection{PS-1 Cluster Expected Reliability} 2411 2586 2412 With 80 computers and 1920 disks, we must be cautious about component 2413 failures and their impact on operations and data integrity. There are 2414 several factors which mitigate our exposure to hardware failures. 2415 First, the use of RAID controllers and RAID-5 striping of the data 2416 will protect the data on a single RAID set against the failure of a 2417 single disk in the array. Second, our plan to have duplication across 2418 the cluster will protect us against catastrophic failures. Finally, 2419 the flexibility of the distributed computing plan makes it trivial to 2420 handle the loss of individual machines as the system can automatically 2421 redistribute the load across the cluster. 2422 2423 The components which are most likely to fail in our experience are, in 2424 order: hard drives, ram, power supplies, and other components. The 2425 hard drive failure rate is by far the dominant concern as it 2426 potentially affects the data integrity. 2587 With 80 computers and 1920 disks, component failures are inevitable. 2588 The cluster design and management must be chosen to minimize their 2589 impact on operations and data integrity. 2590 2591 There are several factors which reduce the cluster's exposure to 2592 hardware failures. First, the use of RAID controllers and RAID-5 2593 striping of the data will protect the data on a single RAID set 2594 against the failure of a single disk in the array. Second, 2595 duplication of data across the cluster will protect against 2596 catastrophic failures of the array (loss of two disks, loss of the 2597 array controller card). Finally, the flexibility of the distributed 2598 computing plan minimizes the impact the loss of individual machines 2599 has on operations by making changes in the data and processing 2600 assignments on the cluster a trivial matter. 2601 2602 The components which are most likely to fail in the experience of our 2603 team are, in order: hard drives, RAID controllers, ram, power 2604 supplies, and other components. The hard drive and RAID controller 2605 failure rates are by far the dominant concerns as they potentially 2606 affects the data integrity. 2427 2607 2428 2608 Most sources (REFS: UCSD article, Samsung White Paper) currently imply 2429 2609 hard disk failure rates (MTBF) in the range 400,000 hours and 500,000 2430 hours. We take these as an upper limit, and instead adopt a 2431 conservative value of 100,000 hours. With 1920 disk, this MTBF 2432 implies a failure of one disk every 2.2 days. Since the disks are in 2433 a RAID which reports the disk failures immediately and drops the array 2434 into degraded mode, these failures will not have a huge impact on the 2435 operations, and recovery time is only 10s of minutes. This failure 2436 rate implies that we should be checking for hard disk failures daily. 2437 \tbd{is it necessary to catch failures at night or can the system run 2438 with a degraded disk?}. A catastrophic failure for the array would 2439 require two of the 12 disks to fail before the first failed disk is 2440 replaced. If we assume that maintainence is poor and it is possible 2441 for a disk to take 1 week to be replaced, we calculate a probability 2442 of a catastrophe of 1.8\% each time a disk fails. Combined with the 2443 disk failure rate, we can expect a RAID catastrophe 6 times over the 2 2444 year operation of PS-1. We can use these numbers as a guideline for 2445 our level of support needed to avoid these RAID failures. Note that 2446 these 6 failures should not cause loss of data since the data is 2447 duplicated across the cluster, but they require over 1 day for 2448 recovery (as the entire array must be replicated across the network). 2449 2450 \subsection{PS-1 Cluster Support} 2610 hours. These are used as an upper limit, with the more historically 2611 conservative value of 100,000 hours used instead. With 1920 disk, 2612 this MTBF implies a failure of one disk every 2.2 days. Since the 2613 disks are in a RAID which reports the disk failures immediately and 2614 drops the array into degraded mode, these failures will not have a 2615 huge impact on the operations, and recovery time is only 10s of 2616 minutes. This failure rate implies that the maintenance plan must 2617 include checks for hard disk failures on a daily basis, and should 2618 make use of email notification and early warning information (ie, 2619 SMART messages). 2620 2621 A catastrophic failure for the array would require two of the 12 disks 2622 to fail before the first failed disk is replaced. Assuming that 2623 maintenance is poor and it is possible for a disk to take 1 week to 2624 be replaced, the probability of a catastrophe is 1.8\% each time the 2625 first disk fails. Combined with the disk failure rate, RAID 2626 catastrophes are expected 6 times over the 2 year operation of PS-1. 2627 These numbers can be used as a guideline for the level of support 2628 needed to avoid these RAID failures. Note that these 6 failures 2629 should not cause loss of data since the data is duplicated across the 2630 cluster, but they require over 1 day for recovery (as the entire array 2631 must be replicated across the network). 2632 2633 A detailed IPP computer cluster commissioning and maintenance plan is 2634 specified in the document `Pan-STARRS PS-1 IPP Cluster Support' 2635 (PSDC-430-014). 2451 2636 2452 2637 \begin{figure} 2453 2638 \begin{center} 2454 2639 \resizebox{6in}{!}{\includegraphics[angle=-90]{pics/ps1_ipp_storage.ps}} 2455 \caption{ \label{ StorageProfile} Storage Profile}2640 \caption{ \label{fig:StorageProfile} Storage Profile} 2456 2641 \end{center} 2457 2642 \end{figure} … … 2460 2645 2461 2646 \clearpage 2462 2463 \section{Appendices} 2464 2465 \subsection{Image Server Database Table Contents} 2466 \label{ImageServerTableContents} 2467 2468 Tables~\ref{ImageServerTables:SO} - \ref{ImageServerTables:VOL} list 2647 \appendix 2648 \section{Image Server Database Table Contents} 2649 \label{sec:ImageServerTableContents} 2650 2651 Tables~\ref{tab:ImageServerTables:SO} - \ref{tab:ImageServerTables:VOL} list 2469 2652 the basic contents of the Image Server database tables. 2470 2653 2471 2654 \begin{table}[bh] 2472 2655 \begin{center} 2473 \caption{Storage Object Table Contents\label{ ImageServerTables:SO}}2656 \caption{Storage Object Table Contents\label{tab:ImageServerTables:SO}} 2474 2657 \begin{tabular}{lll} 2475 2658 \hline … … 2488 2671 \begin{table}[bh] 2489 2672 \begin{center} 2490 \caption{Instance Table Contents\label{ ImageServerTables:INT}}2673 \caption{Instance Table Contents\label{tab:ImageServerTables:INT}} 2491 2674 \begin{tabular}{lll} 2492 2675 \hline … … 2508 2691 \begin{table}[bh] 2509 2692 \begin{center} 2510 \caption{Volume Table Contents\label{ ImageServerTables:VOL}}2693 \caption{Volume Table Contents\label{tab:ImageServerTables:VOL}} 2511 2694 \begin{tabular}{lll} 2512 2695 \hline … … 2515 2698 \hline 2516 2699 \code{vol_id} & integer & internal volume identifier \\ 2517 \code{uri} & string & node name ?\\2700 \code{uri} & string & node name \\ 2518 2701 \hline 2519 2702 \end{tabular} … … 2522 2705 \clearpage 2523 2706 2524 \s ubsection{Metadata Database Table Contents}2525 \label{ MetadataTableContents}2526 2527 Tables~\ref{ WeatherTable} -- \ref{overlaps} list the basic contents of2528 each of the Metadata Database tables listed in Section~\ref{ Metadata}.2707 \section{Metadata Database Table Contents} 2708 \label{sec:MetadataTableContents} 2709 2710 Tables~\ref{tab:WeatherTable} -- \ref{tab:overlaps} list the basic contents of 2711 each of the Metadata Database tables listed in Section~\ref{sec:Metadata}. 2529 2712 2530 2713 \begin{table}[bh] 2531 2714 \begin{center} 2532 \caption{Weather Table: some sample weather points\label{ WeatherTable}}2715 \caption{Weather Table: some sample weather points\label{tab:WeatherTable}} 2533 2716 \begin{tabular}{lll} 2534 2717 \hline … … 2549 2732 \begin{table}[bh] 2550 2733 \begin{center} 2551 \caption{SkyProbe Transparency Table (sample entries)\label{ SkyprobeBVTable}}2734 \caption{SkyProbe Transparency Table (sample entries)\label{tab:SkyprobeBVTable}} 2552 2735 \begin{tabular}{lll} 2553 2736 \hline … … 2569 2752 \begin{table}[bh] 2570 2753 \begin{center} 2571 \caption{Skyprobe Line Absorption Table (sample entries)\label{ SkyprobeATable}}2754 \caption{Skyprobe Line Absorption Table (sample entries)\label{tab:SkyprobeATable}} 2572 2755 \begin{tabular}{lll} 2573 2756 \hline … … 2592 2775 \begin{table}[bh] 2593 2776 \begin{center} 2594 \caption{Skyprobe Line Emission Table (sample entries)\label{ SkyprobeETable}}2777 \caption{Skyprobe Line Emission Table (sample entries)\label{tab:SkyprobeETable}} 2595 2778 \begin{tabular}{lll} 2596 2779 \hline … … 2613 2796 \begin{table}[bh] 2614 2797 \begin{center} 2615 \caption{DIMM Measurements Table\label{ DimmTable}}2798 \caption{DIMM Measurements Table\label{tab:DimmTable}} 2616 2799 \begin{tabular}{lll} 2617 2800 \hline … … 2634 2817 \begin{table}[bh] 2635 2818 \begin{center} 2636 \caption{Near IR Wide-field Camera Results Table\label{ NIR-Table}}2819 \caption{Near IR Wide-field Camera Results Table\label{tab:NIR-Table}} 2637 2820 \begin{tabular}{lll} 2638 2821 \hline … … 2653 2836 \begin{table}[bh] 2654 2837 \begin{center} 2655 \caption{Dome Status Table\label{ DomeStatusTable}}2838 \caption{Dome Status Table\label{tab:DomeStatusTable}} 2656 2839 \begin{tabular}{lll} 2657 2840 \hline … … 2671 2854 \begin{table}[bh] 2672 2855 \begin{center} 2673 \caption{Telescope Status\label{ TelescopeStatusTable}}2856 \caption{Telescope Status\label{tab:TelescopeStatusTable}} 2674 2857 \begin{tabular}{lll} 2675 2858 \hline … … 2690 2873 \begin{table}[bh] 2691 2874 \begin{center} 2692 \caption{Raw FPA Images\label{ RawFPAs}}2875 \caption{Raw FPA Images\label{tab:RawFPAs}} 2693 2876 \begin{tabular}{lll} 2694 2877 \hline … … 2720 2903 \begin{table}[bh] 2721 2904 \begin{center} 2722 \caption{Pending Science Chips\label{ PendingChips}}2905 \caption{Pending Science Chips\label{tab:PendingChips}} 2723 2906 \begin{tabular}{lll} 2724 2907 \hline … … 2736 2919 \begin{table}[bh] 2737 2920 \begin{center} 2738 \caption{Processed Science Chips\label{ ProcessedChips}}2921 \caption{Processed Science Chips\label{tab:ProcessedChips}} 2739 2922 \begin{tabular}{lll} 2740 2923 \hline … … 2753 2936 \begin{table}[bh] 2754 2937 \begin{center} 2755 \caption{Observation Group Information\label{ OBS}}2938 \caption{Observation Group Information\label{tab:OBSGroup}} 2756 2939 \begin{tabular}{lll} 2757 2940 \hline … … 2763 2946 Type & string & Type of observation. \\ 2764 2947 Status & string & Status of the observation group. \\ 2765 \tbd{etc}& \\2948 etc & \\ 2766 2949 \hline 2767 2950 \end{tabular} … … 2771 2954 \begin{table}[bh] 2772 2955 \begin{center} 2773 \caption{Observation Frame Information\label{ OBS}}2956 \caption{Observation Frame Information\label{tab:OBSFrame}} 2774 2957 \begin{tabular}{lll} 2775 2958 \hline … … 2781 2964 Type & string & Type of observation. \\ 2782 2965 Status & string & Status of the observation group. \\ 2783 \tbd{etc}& \\2966 etc & \\ 2784 2967 \hline 2785 2968 \end{tabular} … … 2789 2972 \begin{table}[bh] 2790 2973 \begin{center} 2791 \caption{Science Processing Stats\label{ PSStats}}2974 \caption{Science Processing Stats\label{tab:PSStats}} 2792 2975 \begin{tabular}{lll} 2793 2976 \hline … … 2827 3010 \begin{table}[bh] 2828 3011 \begin{center} 2829 \caption{Chip / Sky overlaps\label{ overlaps}}3012 \caption{Chip / Sky overlaps\label{tab:overlaps}} 2830 3013 \begin{tabular}{lll} 2831 3014 \hline … … 2843 3026 \begin{table}[bh] 2844 3027 \begin{center} 2845 \caption{Processed Sky-Cell stats\label{ ProcessedSky}}3028 \caption{Processed Sky-Cell stats\label{tab:ProcessedSky}} 2846 3029 \begin{tabular}{lll} 2847 3030 \hline … … 2850 3033 \hline 2851 3034 Input Chips & string & Identification numbers of the chips used to produce the sky cell. \\ 2852 PSF adjustments & string & \tbd{Adjustments to the PSF.}\\3035 PSF adjustments & string & Adjustments to the PSF. \\ 2853 3036 CR rejection stats & string & Statistics from the CR rejection (number of CRs, distribution, limiting flux). \\ 2854 3037 Image comb params & string & Parameters used for the image combination. \\ … … 2865 3048 \clearpage 2866 3049 2867 \subsection{AP Database Table Contents} 2868 \label{APDBTableContents} 2869 2870 \tbd{Table contents to be defined} 3050 \section{AP Database Table Contents} 3051 \label{sec:APDBTableContents} 3052 3053 \begin{table}[bh] 3054 \begin{center} 3055 \caption{Images\label{tab:images}} 3056 \begin{tabular}{lll} 3057 \hline 3058 \hline 3059 {\bf Column Name} & {\bf Datatype } & {\bf Description} \\ 3060 \hline 3061 Image ID & & \\ 3062 time/date & & \\ 3063 Exposure Time & & \\ 3064 Nstars & & \\ 3065 NX & & \\ 3066 NY & & \\ 3067 photcode & & \\ 3068 Mcal & & \\ 3069 Mcal error & & \\ 3070 Mcal chisq & & \\ 3071 Airmass & & \\ 3072 Astrometry & & \\ 3073 PSF & & \\ 3074 flags & & \\ 3075 Camera & & \\ 3076 \hline 3077 \end{tabular} 3078 \end{center} 3079 \end{table} 3080 3081 \begin{table}[bh] 3082 \begin{center} 3083 \caption{Image Overlaps\label{tab:ImageOverlaps}} 3084 \begin{tabular}{lll} 3085 \hline 3086 \hline 3087 {\bf Column Name} & {\bf Datatype } & {\bf Description} \\ 3088 \hline 3089 Image ID & & \\ 3090 Region Table & & \\ 3091 \hline 3092 \end{tabular} 3093 \end{center} 3094 \end{table} 3095 3096 \begin{table}[bh] 3097 \begin{center} 3098 \caption{Objects\label{tab:Objects}} 3099 \begin{tabular}{lll} 3100 \hline 3101 \hline 3102 {\bf Column Name} & {\bf Datatype } & {\bf Description} \\ 3103 \hline 3104 ID & & \\ 3105 $\alpha$ & & \\ 3106 $\delta$ & & \\ 3107 $\mu_{\alpha}$ & & \\ 3108 $\mu_{\delta}$ & & \\ 3109 $\sigma_{\alpha}$ & & \\ 3110 $\sigma_{\delta}$ & & \\ 3111 $\chi^2$ position & & \\ 3112 $N_{\rm det}$ & & \\ 3113 $N_{\rm miss}$ & & \\ 3114 flags & & \\ 3115 \hline 3116 \end{tabular} 3117 \end{center} 3118 \end{table} 3119 3120 \begin{table}[bh] 3121 \begin{center} 3122 \caption{Average Magnitudes\label{tab:AveMags}} 3123 \begin{tabular}{lll} 3124 \hline 3125 \hline 3126 {\bf Column Name} & {\bf Datatype } & {\bf Description} \\ 3127 \hline 3128 object ID & & \\ 3129 $M_{\rm int}$ & & \\ 3130 $M_{\rm ext}$ & & \\ 3131 $\chi^2_{\rm mag}$& & \\ 3132 $\sigma_{\rm mag}$& & \\ 3133 photcode & & \\ 3134 \hline 3135 \end{tabular} 3136 \end{center} 3137 \end{table} 3138 3139 \begin{table}[bh] 3140 \begin{center} 3141 \caption{Solar System Objects\label{tab:SSObjs}} 3142 \begin{tabular}{lll} 3143 \hline 3144 \hline 3145 {\bf Column Name} & {\bf Datatype } & {\bf Description} \\ 3146 \hline 3147 SSO ID & & \\ 3148 $N_{\rm det}$ & & \\ 3149 \hline 3150 \end{tabular} 3151 \end{center} 3152 \end{table} 3153 3154 \begin{table}[bh] 3155 \begin{center} 3156 \caption{Matched Detections\label{tab:Detections}} 3157 \begin{tabular}{lll} 3158 \hline 3159 \hline 3160 {\bf Column Name} & {\bf Datatype } & {\bf Description} \\ 3161 \hline 3162 $\alpha$ & & \\ 3163 $\delta$ & & \\ 3164 $\sigma_{\alpha}$ & & \\ 3165 $\sigma_{\delta}$ & & \\ 3166 $M_{\rm inst}$ & & \\ 3167 $M_{\rm cal}$ & & \\ 3168 $\sigma_{\rm mag}$& & \\ 3169 photcode & & \\ 3170 type & & \\ 3171 flags & & \\ 3172 time/date & & \\ 3173 airmass & & \\ 3174 $\sigma_{x}$ & & \\ 3175 $\sigma_{y}$ & & \\ 3176 $\theta$ & & \\ 3177 object ID & & \\ 3178 exptime & & \\ 3179 sky & & \\ 3180 $\sigma_{\rm sky}$& & \\ 3181 etc & & \\ 3182 \hline 3183 \end{tabular} 3184 \end{center} 3185 \end{table} 3186 3187 \begin{table}[bh] 3188 \begin{center} 3189 \caption{Orphaned Detections\label{tab:Orphans}} 3190 \begin{tabular}{lll} 3191 \hline 3192 \hline 3193 {\bf Column Name} & {\bf Datatype } & {\bf Description} \\ 3194 \hline 3195 $\alpha$ & & \\ 3196 $\delta$ & & \\ 3197 $\sigma_{\alpha}$ & & \\ 3198 $\sigma_{\delta}$ & & \\ 3199 $M_{\rm inst}$ & & \\ 3200 $M_{\rm cal}$ & & \\ 3201 $\sigma_{\rm mag}$& & \\ 3202 photcode & & \\ 3203 type & & \\ 3204 flags & & \\ 3205 time/date & & \\ 3206 airmass & & \\ 3207 $\sigma_{x}$ & & \\ 3208 $\sigma_{y}$ & & \\ 3209 $\theta$ & & \\ 3210 exptime & & \\ 3211 sky & & \\ 3212 $\sigma_{\rm sky}$& & \\ 3213 etc & & \\ 3214 \hline 3215 \end{tabular} 3216 \end{center} 3217 \end{table} 3218 3219 \begin{table}[bh] 3220 \begin{center} 3221 \caption{Non-detections\label{tab:NonDetects}} 3222 \begin{tabular}{lll} 3223 \hline 3224 \hline 3225 {\bf Column Name} & {\bf Datatype } & {\bf Description} \\ 3226 \hline 3227 object ID & & \\ 3228 $N_{\rm non-det}$ & & \\ 3229 last time/date & & \\ 3230 last mag & & \\ 3231 faintest time/date & & \\ 3232 faintest mag & & \\ 3233 \hline 3234 \end{tabular} 3235 \end{center} 3236 \end{table} 3237 3238 \begin{table}[bh] 3239 \begin{center} 3240 \caption{Regions\label{tab:Regions}} 3241 \begin{tabular}{lll} 3242 \hline 3243 \hline 3244 {\bf Column Name} & {\bf Datatype } & {\bf Description} \\ 3245 \hline 3246 $\alpha_0$ & & \\ 3247 $\alpha_1$ & & \\ 3248 $\delta_0$ & & \\ 3249 $\delta_1$ & & \\ 3250 Region ID & & \\ 3251 Parent ID & & \\ 3252 Nchildren & & \\ 3253 Images & & \\ 3254 Objects & & \\ 3255 Detections & & \\ 3256 \hline 3257 \end{tabular} 3258 \end{center} 3259 \end{table} 3260 3261 \begin{table}[bh] 3262 \begin{center} 3263 \caption{Filters\label{tab:Filters}} 3264 \begin{tabular}{lll} 3265 \hline 3266 \hline 3267 {\bf Column Name} & {\bf Datatype } & {\bf Description} \\ 3268 \hline 3269 Filter ID & & \\ 3270 Filter name & & \\ 3271 Photcode & & \\ 3272 $\lambda_0$ & & \\ 3273 $\delta_\lambda$ & & \\ 3274 $\epsilon$ & & \\ 3275 transmission curve& & \\ 3276 time/date & & \\ 3277 \hline 3278 \end{tabular} 3279 \end{center} 3280 \end{table} 3281 3282 \begin{table}[bh] 3283 \begin{center} 3284 \caption{Photcodes\label{tab:Photcodes}} 3285 \begin{tabular}{lll} 3286 \hline 3287 \hline 3288 {\bf Column Name} & {\bf Datatype } & {\bf Description} \\ 3289 \hline 3290 Photcode & & \\ 3291 Telescope & & \\ 3292 Camera & & \\ 3293 Detector & & \\ 3294 Filter & & \\ 3295 Nominal ZP & & \\ 3296 airmass terms & & \\ 3297 color terms & & \\ 3298 Target & & \\ 3299 \hline 3300 \end{tabular} 3301 \end{center} 3302 \end{table} 3303 3304 \begin{table}[bh] 3305 \begin{center} 3306 \caption{Zero Point History\label{tab:Zpts}} 3307 \begin{tabular}{lll} 3308 \hline 3309 \hline 3310 {\bf Column Name} & {\bf Datatype } & {\bf Description} \\ 3311 \hline 3312 Photcode & & \\ 3313 start Time/date & & \\ 3314 end Time/date & & \\ 3315 Zero Points & & \\ 3316 airmass & & \\ 3317 color & & \\ 3318 error & & \\ 3319 N measurements & & \\ 3320 N stars & & \\ 3321 photom ref set & & \\ 3322 \hline 3323 \end{tabular} 3324 \end{center} 3325 \end{table} 3326 3327 \begin{table}[bh] 3328 \begin{center} 3329 \caption{Distortion History\label{tab:Distortions}} 3330 \begin{tabular}{lll} 3331 \hline 3332 \hline 3333 {\bf Column Name} & {\bf Datatype } & {\bf Description} \\ 3334 \hline 3335 Camera & & \\ 3336 Telescope & & \\ 3337 distortion terms & & \\ 3338 time/date & & \\ 3339 residuals / error & & \\ 3340 N stars & & \\ 3341 N images & & \\ 3342 astrom ref set & & \\ 3343 \hline 3344 \end{tabular} 3345 \end{center} 3346 \end{table} 3347 3348 \begin{table}[bh] 3349 \begin{center} 3350 \caption{Database Hosts\label{tab:APDBHosts}} 3351 \begin{tabular}{lll} 3352 \hline 3353 \hline 3354 {\bf Column Name} & {\bf Datatype } & {\bf Description} \\ 3355 \hline 3356 machine name & & \\ 3357 machine ID & & \\ 3358 \hline 3359 \end{tabular} 3360 \end{center} 3361 \end{table} 2871 3362 2872 3363 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2873 3364 2874 \s ubsection{Software Runtime Configuration Issues}2875 \label{ RuntimeConfig}3365 \section{Software Runtime Configuration Issues} 3366 \label{sec:RuntimeConfig} 2876 3367 2877 3368 The IPP Software requires extensive runtime configuration information. … … 2881 3372 Metadata Database or in configuration files available to the user. 2882 3373 Both methods are implemented in the current design. In either method, 2883 the necessary parameters are identical. In this section, we discuss2884 thecontents of specific portions of the runtime configuration.2885 2886 \subs ubsection{Camera Definition Information}3374 the necessary parameters are identical. This section discusses the 3375 contents of specific portions of the runtime configuration. 3376 3377 \subsection{Camera Definition Information} 2887 3378 2888 3379 Every camera which may be analysed by the IPP has differences in how … … 2910 3401 keywords for the same information at different times (major readout 2911 3402 software upgrades, for example, can be accompanied by keyword 2912 revisions). In addition, within Pan-STARRS and the IPP, we would like2913 the capability to refer to the Metadata database as the authoratative 2914 sources of some of these entries rather than the image headers. Given 2915 this circumstance, it is at least necessary to define the appropriate 2916 source for a given data concept appropriate to data from a specific 2917 camera. 3403 revisions). In addition, within Pan-STARRS and the IPP, it is 3404 necessary to have the capability to refer to the Metadata database as 3405 the authoratative sources of some of these entries rather than the 3406 image headers. Given this circumstance, it is at least necessary to 3407 define the appropriate source for a given data concept appropriate to 3408 data from a specific camera. 2918 3409 2919 3410 The second problem arises when actually performing an analysis. In … … 2933 3424 In order to facilitate the operation of the IPP with a variety of 2934 3425 cameras, and to allow the software the flexibility to change the 2935 camera defintion dynamically, we define a collection of software2936 runtime configuration information which defines a given camera. This 2937 information is represented below in the form of the PSLib Metadata 2938 Config file, but may be stored in the Metadata Database or in an 2939 alternate format as appropriate. 2940 2941 We start by noting that the a single camera is represented as a Focal 2942 Plane Array (FPA), divided into Chips, divided into Cells. For a 2943 single FPA, all imaging data is stored in a FITS file or a collection 2944 of FITS files. Software needs to know where in a given file or set of 2945 files to find a particular Cell, what Cells to expect, what chips to 2946 expect, and the relationships between those entities, etc. 3426 camera defintion dynamically, the IPP includes a collection of 3427 software runtime configuration information which defines a given 3428 camera. This information is represented below in the form of the 3429 PSLib Metadata Config file, but may be stored in the Metadata Database 3430 or in an alternate format as appropriate. 3431 3432 The a single camera is represented as a Focal Plane Array (FPA), 3433 divided into Chips, divided into Cells. For a single FPA, all imaging 3434 data is stored in a FITS file or a collection of FITS files. Software 3435 needs to know where in a given file or set of files to find a 3436 particular Cell, what Cells to expect, what chips to expect, and the 3437 relationships between those entities, etc. 2947 3438 2948 3439 A single camera configuration file (or dataset) represents the … … 2955 3446 NCELL S32 NN 2956 3447 NCHIP S32 NN 2957 EXPTIME-SRC STR HD:EXPTIME # need to specify PHU vs EXTNAME ?3448 EXPTIME-SRC STR HD:EXPTIME # need to specify PHU vs EXTNAME 2958 3449 EXPTIME-KEY STR EXPTIME 2959 3450 DATE-KEY STR DATE-OBS … … 2965 3456 \end{verbatim} 2966 3457 2967 \subs ubsection{Analysis Recipe Information}3458 \subsection{Analysis Recipe Information} 2968 3459 2969 3460 In order to maintain flexibility in the analysis details, the IPP uses … … 2975 3466 these may specify a specific value, or they may specify lookup methods 2976 3467 (database locations, or header locations). The specifies of each 2977 depends on the context. Below , we provide an example recipe file for2978 the bias subtraction portion of Phase 2, giving several alternative 2979 options for certain entries. Note that, for example, the overscan 2980 subtraction may be specified as using a particular region given in the 2981 recipe file, oron the basis of a particular header keyword.3468 depends on the context. Below is an example recipe file for the bias 3469 subtraction portion of Phase 2, giving several alternative options for 3470 certain entries. Note that, for example, the overscan subtraction may 3471 be specified as using a particular region given in the recipe file, or 3472 on the basis of a particular header keyword. 2982 3473 2983 3474 \begin{verbatim} … … 3003 3494 \end{verbatim} 3004 3495 3005 \subsection{I/O Code Autogeneration} 3006 3007 Within IPP, we have a number of data collections which have multiple 3008 representations. We define a tool to automatically generate code to 3009 provide I/O APIs to read and write these data and data structures to 3010 carry them within program. Within the IPP, we will use database 3011 tables (ie, in the Metadata Database), FITS Tables (to exchange bulk 3012 data), and XML (to exchange more complete datasets). 3496 \section{I/O Code Autogeneration} 3497 \label{sec:AutocodeIO} 3498 3499 The IPP includes a number of data collections which have multiple 3500 representations. A software tool will be used to automatically 3501 generate code to provide I/O APIs to read and write these data and to 3502 define the data structures used to carry them within a program. 3503 Within the IPP, examples of these different data entities include 3504 database tables (ie, in the Metadata Database), FITS Tables (to 3505 exchange bulk data), and XML (to exchange more complete datasets). 3013 3506 3014 3507 I/O API Autocode template (example.def): … … 3046 3539 \end{verbatim} 3047 3540 3048 \bibliographystyle{plain} 3049 \bibliography{panstarrs} 3541 %\bibliographystyle{plain} 3542 %\bibliography{panstarrs} 3543 3544 \input{glossary.tex} 3050 3545 3051 3546 \end{document} -
trunk/doc/design/ippSRS.tex
r2241 r2544 1 %%% $Id: ippSRS.tex,v 1.1 2 2004-10-29 22:00:08eugene Exp $1 %%% $Id: ippSRS.tex,v 1.13 2004-11-30 23:16:03 eugene Exp $ 2 2 \documentclass[panstarrs,spec]{panstarrs} 3 3 4 4 % basic document variables 5 \title{Pan-STARRS Image Processing Pipeline}5 \title{Pan-STARRS PS-1 Image Processing Pipeline} 6 6 \subtitle{Software Requirements Specification} 7 7 \shorttitle{IPP SRS} … … 11 11 \project{Pan-STARRS Image Processing Pipeline} 12 12 \organization{Institute for Astronomy} 13 \version{ DR}13 \version{01} 14 14 \docnumber{PSDC-430-005} 15 15 … … 34 34 \RevisionsStart 35 35 % version Date Description 36 DR.01 & 2004.01.01 & First draft \\ \hline37 DR.02 & 2004.03.10 & Second draft \\ \hline38 DR.03 & 2004.04.13 & Most paragraphs fleshed out \\ \hline39 DR.04 & 2004.04.27 & Basic text frozen for internal review \\ \hline40 DR.05 & 2004.05.24 & Incorporating comments from internal review \\ \hline41 DR.06& 2004.08.06 & Revisions in prep of SRR \\ \hline42 DR.06 & 2004.10.22& Revisions based on SRR \\ \hline36 % DR.01 & 2004.01.01 & First draft \\ \hline 37 % DR.02 & 2004.03.10 & Second draft \\ \hline 38 % DR.03 & 2004.04.13 & Most paragraphs fleshed out \\ \hline 39 % DR.04 & 2004.04.27 & Basic text frozen for internal review \\ \hline 40 % DR.05 & 2004.05.24 & Incorporating comments from internal review \\ \hline 41 00 & 2004.08.06 & Revisions in prep of SRR \\ \hline 42 01 & 2004.10.29 & Revisions based on SRR \\ \hline 43 43 \RevisionsEnd 44 44 … … 121 121 that series is implied. 122 122 123 Open issues (TBDs) in this document are marked \tbd{in bold red}. 124 125 Quantities which should be reviewed (TBRs) are marked \tbr{in bold 126 blue}. 123 Open issues (TBDs) in this document are marked {\bf \color{red} in 124 bold red}. 125 126 Quantities which should be reviewed (TBRs) are marked {\bf 127 \color{blue} in bold blue}. 127 128 128 129 \subsubsection{``Shall''} When used in this specification, the word … … 141 142 142 143 \DocumentsInternalSection 143 PSDC-130-001 & PS-1 Design Reference Mission \\ \hline 144 PSDC-130-xxx & PS-1 SCD \\ \hline 145 PSDC-430-004 & Pan-STARRS IPP C Code Conventions \\ \hline 146 PSDC-430-006 & Pan-STARRS IPP ADD \\ \hline 147 PSDC-430-006 & Pan-STARRS IPP SDRS \\ \hline 148 PSDC-430-007 & Pan-STARRS IPP PSLib SDRS \\ \hline 144 PSDC-230-001 & PS-1 Design Reference Mission \\ \hline 145 PSDC-230-002 & PS-1 System Concept Definition \\ \hline 146 PSDC-400-006 & The Pan-STARRS IPP Computational Challenge \\ \hline 147 PSDC-430-004 & Pan-STARRS PS-1 IPP C Code Conventions \\ \hline 148 PSDC-430-006 & Pan-STARRS PS-1 IPP Algorithm Design Document \\ \hline 149 PSDC-430-007 & Pan-STARRS PS-1 IPP PSLib Supplementary Design Requirements Specification \\ \hline 150 PSDC-430-010 & Pan-STARRS PS-1 IPP Perl Code Conventions \\ \hline 151 PSDC-430-011 & Pan-STARRS PS-1 IPP System/Subsystem Design Description \\ \hline 152 PSDC-430-012 & Pan-STARRS PS-1 IPP Modules Supplementary Design Requirements Specification \\ \hline 149 153 \DocumentsExternalSection 150 154 Posix Standard & Open Group Based Specifications Issue 6, IEEE Std 1003.1, 2003 \\ … … 179 183 The Pan-STARRS System Concept Definition (SCD) specifies the derived 180 184 top-level requirements for the IPP, which we reproduce here (with 181 numbering consistent with this document):185 numbering consistent within this document): 182 186 183 187 \begin{enumerate} … … 261 265 \label{TLR:15} 262 266 263 \item The IPP shall degrade the stacked image by no more than \tbr{10264 milliarcseconds (FWHM added in quadrature) }over the theoretical267 \item The IPP shall degrade the stacked image by no more than 150 268 milliarcseconds (FWHM added in quadrature) over the theoretical 265 269 limit for the stack under infinite 266 270 sampling.\VER{ANALYSIS}{SCD:3.5.2} … … 269 273 \item The IPP shall perform the processing of science images to the 270 274 level of transient detection and static sky inclusion at a rate such 271 that exposures taken at an \tbr{average cadence of 40 seconds} do272 notaccumulate in the processing buffer (average throughput275 that exposures taken at an average cadence of 40 seconds do not 276 accumulate in the processing buffer (average throughput 273 277 requirement).\VER{TEST}{SCD:3.2.2.3} 274 278 \label{TLR:17} … … 281 285 282 286 \item The IPP shall perform transient detection to a completeness of 283 99\% at the completeness for transient detections with a significan t287 99\% at the completeness for transient detections with a significance 284 288 $> 5\sigma$.\VER{ANALYSIS}{SCD:xxx} 285 289 … … 300 304 \label{TLR:21} 301 305 302 \item The IPP shall provide access to preferred Pan-STARRS science clients to the 303 detected transient objects within \tbr{5 minutes}.\VER{TEST}{SCD:3.5.10} 306 \item The IPP shall provide access to preferred Pan-STARRS science 307 clients to the detected transient objects within 15 minutes with at 308 least 85\% reliability.\VER{TEST}{SCD:3.5.10} 304 309 \label{TLR:22} 305 310 … … 375 380 \item Because the delivered code is required to run on UNIX machines, the delivered code shall be in compliance with the language-independent UNIX operating system standard POSIX (Open Group Based Specifications Issue 6, IEEE Std 1003.1, 2004).\VER{INSPECT}{allocated} 376 381 \item Source code files shall use the UNIX line-break convention (line-feed only). \VER{INSPECT}{allocated} 377 \item C coding style shall adhere to the standard defined in the document `Pan-STARRS C-coding standard' (PSDC-430-004). \VER{INSPECT}{allocated}378 \item Perl coding shall follow the standard defined in the document \tbd{`Pan-STARRS Perl-coding standard' (PSDC-430-0XX)}.\VER{INSPECT}{allocated}382 \item C coding style shall adhere to the standard defined in the document `Pan-STARRS IPP C-coding standard' (PSDC-430-004). \VER{INSPECT}{allocated} 383 \item Perl coding shall follow the standard defined in the document `Pan-STARRS IPP Perl-coding standard' (PSDC-430-010).\VER{INSPECT}{allocated} 379 384 \end{enumerate} 380 385 … … 501 506 \subsubsection{Software Configuration} 502 507 503 \paragraph{Version Management} 504 505 The IPP software configuration management system shall ensure that 506 validated versions of both internal and external software are used 507 when the software is compiled.\VER{TEST}{allocated} 508 509 \paragraph{Optional Modes} 510 511 The IPP software configuration management system shall provide 512 optionally selected software version sets under compilation 513 conditions. For example, compilation of the software for test 514 purposes with a non-standard FFT tool shall be an 515 option.\VER{TEST}{allocated} 508 The IPP software configuration management system shall follow the 509 processes outlined by the Pan-STARRS IPP Software Configuration 510 Management Place (PSDC-430-003).\VER{INSPECT}{allocated} 516 511 517 512 \subsection{Architectural Components} … … 525 520 526 521 As discussed in the Pan-STARRS System Concept Definition 527 (PSDC-250-002), the IPP is organized into a number of clearly-defined 528 software elements. The SCD provides a detailed description of the 529 roles and responsibilities of these subsystems. In brief, the IPP 530 consists of: a collection of science analysis programs which perform 531 the stages of the data analysis; a set of architectural components 532 which provide the infrastructure needed to run the analysis programs; 533 and a collection of hardware on which all of the software elements 534 exist and operate. 522 (PSDC-230-002), the IPP is organized into a number of clearly-defined 523 software elements. The SCD provides a detailed description of these 524 subsystems. In brief, the IPP consists of: a collection of science 525 analysis programs which perform the stages of the data analysis; a set 526 of architectural components which provide the infrastructure needed to 527 run the analysis programs; and a collection of hardware on which all 528 of the software elements exist and operate. 535 529 536 530 The architectural components consist of: … … 546 540 it is no longer needed by other portions of the IPP. 547 541 542 \item {\bf IPP Metadata Database:} This component is used to store all 543 other data which are neither image files nor astronomical object 544 data. The Metadata Database is the authoritative source for all 545 metadata data, including metadata which may be duplicated elsewhere, 546 such as in the headers of images in the image database. 547 548 548 \item {\bf Astrometry \& Photometry Database (AP):} This component is 549 549 used to store and manipulate astronomical objects detected in images … … 554 554 needed to interpret the object data. 555 555 556 \item {\bf IPP Metadata Database:} This component is used to store all557 other data which are neither image files nor astronomical object558 data. The Metadata Database is the authoritative source for all559 metadata data, including metadata which may be duplicated elsewhere,560 such as in the headers of images in the image database.561 562 556 \item {\bf IPP Controller:} In order to perform the analysis stages 563 557 required by the IPP, it is necessary to use distributed computing … … 588 582 \begin{enumerate} 589 583 \item The IPP Image Server shall accept raw images from the summit at 590 a sustained rate of 1 exposure (2~GB) per \tbr{40 seconds.}584 a sustained rate of 1 exposure (2~GB) per 40 seconds. 591 585 \VER{TEST}{TLR:17, TLR:23} 592 586 … … 597 591 reference to the specified image.\VER{TEST}{allocated} 598 592 599 \item The IPP Image Server shall provide a total data capacity of 300600 TB after the first year of PS-1 operations and 900 TB after the593 \item The IPP Image Server shall provide a total data capacity of 400 594 TB after the first year of PS-1 operations and 750 TB after the 601 595 second year of operations.\VER{INSPECT}{} 602 596 … … 607 601 \end{enumerate} 608 602 609 \subsubsection{AP Database}610 611 %%% Table: AP DB parameters612 \begin{table}613 \begin{center}614 \caption{AP Detection Classes \& Object Parameters\label{APdetections}}615 \begin{tabular}{lrrrr}616 \hline617 \hline618 Object Parameter & P2 & P4$\Sigma$ & P4$\Delta$ & SS \\619 \hline620 PSF x,y, covar, $\alpha,\delta$ & + & + & + & + \\621 PSF mag, $\sigma_{\rm mag}$ & + & + & + & + \\622 star/gal sep & + & + & + & + \\623 $\sigma_x$, $\sigma_y$, $\theta$ & + & + & + & + \\624 local sky data & + & + & + & + \\625 Petrosian R, M, $R_{50}$, $R_{90}$ & - & + & - & + \\626 S\'ersic R, M, AB, $\phi$, $\nu$ & - & + & - & + \\627 W.L. $\gamma_1$, $\gamma_2$, pol. terms & - & - & - & + \\628 exp. spaced aps., Poisson noise, variance & - & - & - & + \\629 \hline630 \end{tabular}631 \end{center}632 \end{table}633 634 %%% Table: AP DB Throughput635 \begin{table}636 \begin{center}637 \caption{AP Data Volume and Throughput Requirements\label{APrates}}638 \begin{tabular}{lrrr}639 \hline640 \hline641 Quantity & P2 & P4$\Sigma$ & P4$\Delta$ \\642 \hline643 detection limit & $20 \sigma$ & $5 \sigma$ & $3 \sigma$ \\644 depth (r') & 21.8 & 24.0 & 24.5 \\645 bytes star$^{-1}$ & 64 & 100 & 64 \\646 stars deg$^{-2}$ ($|b|>10$) & $2.0 \times 10^5$ & $8.0 \times 10^5$ & $2.0 \times 10^5$ \\647 stars FPA$^{-1}$ ($|b|>10$) & $1.4 \times 10^6$ & $5.6 \times 10^6$ & $1.4 \times 10^6$ \\648 stars sec$^{-1}$ ($|b|>10$) & $3.5 \times 10^4$ & $3.5 \times 10^4$ & $8.8 \times 10^3$ \\649 MB sec$^{-1}$ & 2.3 & 3.5 & 0.6 \\650 AP total TB & 7.7 & - & - \\651 IVP total TB & 13 & 20 & 3 \\652 MOPS total TB & 4 & 6 & 1 \\653 PS-1 total TB & 25 & 26 & 4 \\654 \hline655 \end{tabular}656 \end{center}657 \end{table}658 659 %% IPP AP DB Requirements660 The IPP AP Database has the following performance requirements:661 662 \begin{enumerate}663 \item The AP Database shall accept new detections at the rate664 generated by the telescope from the Phase 2 and Phase 4 analysis.665 Except within 10 degrees of the galactic plane, the AP Database666 shall keep up with the incoming rates. The expected rates are667 listed in Table~\ref{APrates}, along with the total data volume668 required for storage space over the PS-1 lifetime.\VER{TEST}{TLR:2,669 TLR:3, TLR:22}670 671 \item The AP Database shall provide access to external Pan-STARRS672 clients to the detected objects within \tbr{5 minute} after the673 image is obtained.\VER{TEST}{TLR:22}674 \label{IPP:DeReq:29c}675 \end{enumerate}676 677 603 \subsubsection{Metadata Database} 604 605 %% Metadata DB Requirements 606 607 The Metadata Database has the following requirements: 608 609 \begin{enumerate} 610 \item The IPP Metadata Database shall accept metadata from the summit 611 at a nightly average rate of 1 MB per 40 second.\VER{TEST}{TLR:17, 612 TLR:21, TLR:25} 613 614 \item The Metadata Database queries shall have a latency of $< 0.1$ 615 seconds.\VER{TEST}{TLR:17} 616 617 \item The Metadata Database shall be capable of at least 100 queries 618 per second.\VER{TEST}{TLR:17} 619 620 \item The Metadata Database shall be capable of accepting a total data 621 volume after 2 years of operation of 280 GB. \VER{INSPECT}{TLR:25} 622 623 \item The Metadata Database shall restrict write access of the 624 scientific parameters to a different group from the software and 625 hardware configuration parameters.\VER{TEST}{allocated} 626 \end{enumerate} 678 627 679 628 %% Table: Metadata data classes … … 702 651 \end{table} 703 652 704 %% Metadata DB Requirements 705 706 The Metadata Database has the following requirements: 707 708 \begin{enumerate} 709 \item The IPP Metadata Database shall accept metadata from the summit 710 at a sustained rate of \tbr{1 MB per 40 second.}\VER{TEST}{TLR:17, 711 TLR:21, TLR:25} 712 713 \item The Metadata Database queries shall have a latency of $< 0.1$ 714 seconds.\VER{TEST}{TLR:17} 715 716 \item The Metadata Database shall be capable of at least 100 queries 717 per second.\VER{TEST}{TLR:17} 718 719 \item The Metadata Database shall be capable of accepting a total data 720 volume after 2 years of operation of 280 GB. \VER{INSPECT}{TLR:25} 721 722 \item The Metadata Database shall restrict write access of the 723 scientific parameters to a different group from the software and 724 hardware configuration parameters.\VER{TEST}{allocated} 725 \end{enumerate} 653 \subsubsection{AP Database} 654 655 %% IPP AP DB Requirements 656 The IPP AP Database has the following performance requirements: 657 658 \begin{enumerate} 659 \item The AP Database shall accept new detections at the rate 660 generated by the telescope from the Phase 2 and Phase 4 analysis. 661 Except within 10 degrees of the galactic plane, the AP Database 662 shall keep up with the incoming rates. The expected rates are 663 listed in Table~\ref{APrates}, along with the total data volume 664 required for storage space over the PS-1 lifetime.\VER{TEST}{TLR:2, 665 TLR:3, TLR:22} 666 667 \item The AP Database shall provide access to external Pan-STARRS 668 clients to the detected transient objects within 15 minutes after 669 the image is obtained with an 85\% reliability.\VER{TEST}{TLR:22} 670 \label{IPP:DeReq:29c} 671 \end{enumerate} 672 673 %%% Table: AP DB parameters 674 \begin{table}[hb] 675 \begin{center} 676 \caption{AP Detection Classes \& Object Parameters\label{APdetections}} 677 \begin{tabular}{lrrrr} 678 \hline 679 \hline 680 Object Parameter & P2 & P4$\Sigma$ & P4$\Delta$ & SS \\ 681 \hline 682 PSF x,y, covar, $\alpha,\delta$ & + & + & + & + \\ 683 PSF mag, $\sigma_{\rm mag}$ & + & + & + & + \\ 684 star/gal sep & + & + & + & + \\ 685 $\sigma_x$, $\sigma_y$, $\theta$ & + & + & + & + \\ 686 local sky data & + & + & + & + \\ 687 Petrosian R, M, $R_{50}$, $R_{90}$ & - & + & - & + \\ 688 S\'ersic R, M, AB, $\phi$, $\nu$ & - & + & - & + \\ 689 W.L. $\gamma_1$, $\gamma_2$, pol. terms & - & - & - & + \\ 690 exp. spaced aps., Poisson noise, variance & - & - & - & + \\ 691 \hline 692 \end{tabular} 693 \end{center} 694 \end{table} 695 696 %%% Table: AP DB Throughput 697 \begin{table} 698 \begin{center} 699 \caption{AP Data Volume and Throughput Requirements\label{APrates}} 700 \begin{tabular}{lrrr} 701 \hline 702 \hline 703 Quantity & P2 & P4$\Sigma$ & P4$\Delta$ \\ 704 \hline 705 detection limit & $20 \sigma$ & $5 \sigma$ & $3 \sigma$ \\ 706 depth (r') & 21.8 & 24.0 & 24.5 \\ 707 bytes star$^{-1}$ & 64 & 100 & 64 \\ 708 stars deg$^{-2}$ ($|b|>10$) & $2.0 \times 10^5$ & $8.0 \times 10^5$ & $2.0 \times 10^5$ \\ 709 stars FPA$^{-1}$ ($|b|>10$) & $1.4 \times 10^6$ & $5.6 \times 10^6$ & $1.4 \times 10^6$ \\ 710 stars sec$^{-1}$ ($|b|>10$) & $3.5 \times 10^4$ & $3.5 \times 10^4$ & $8.8 \times 10^3$ \\ 711 MB sec$^{-1}$ & 2.3 & 3.5 & 0.6 \\ 712 AP total TB & 7.7 & - & - \\ 713 IVP total TB & 13 & 20 & 3 \\ 714 MOPS total TB & 4 & 6 & 1 \\ 715 PS-1 total TB & 25 & 26 & 4 \\ 716 \hline 717 \end{tabular} 718 \end{center} 719 \end{table} 726 720 727 721 \subsubsection{Controller} … … 810 804 \begin{enumerate} 811 805 \item The IPP Science Analysis shall pre-process the science images 812 with the master calibration images at a sustained rate of 1 exposure813 (2~GB) per \tbr{40 seconds}.\VER{TEST}{TLR:17}806 with the master calibration images at a nightly average rate of 1 807 exposure (2~GB) per 40 seconds.\VER{TEST}{TLR:17} 814 808 815 809 \item The IPP Science Analysis shall merge multiple pre-processed 816 810 science images into stacked images with corresponding signal-to-noise 817 maps at a sustained rate of 1 exposure (2~GB) per \tbr{40 seconds}.\VER{TEST}{TLR:17} 811 maps at a nightly average rate of 1 exposure (2~GB) per 40 812 seconds.\VER{TEST}{TLR:17} 818 813 819 814 \item The IPP Science Analysis shall excise pixels from the input … … 823 818 \item The IPP Science Analysis shall merge the cleaned images into the 824 819 static sky image, and update the corresponding exposure (S/N) maps, 825 at a sustained rate of 1 exposure (2~GB) per \tbr{40 seconds}.\VER{TEST}{TLR:17} 820 at a nightly average rate of 1 exposure (2~GB) per 40 821 seconds.\VER{TEST}{TLR:17} 826 822 827 823 \item The maximum latency between the acquisition of an image and the 828 824 completion of the science image analysis is set by the science 829 825 requirements of the fast transient recovery programs. The science 830 image analysis shall process images to detection transients within 831 \tbr{5 min} of their acquisition.\VER{TEST}{TLR:22} 826 image analysis shall process images to the detection of transients 827 within 15 min of their acquisition with an 85\% 828 reliability.\VER{TEST}{TLR:22} 832 829 833 830 \item The science image analysis stages shall processes up to 1000 … … 905 902 images which are not undersampled. \VER{TEST}{TLR:18} 906 903 907 \item The resulting astrometric solution shall be consistent across the908 OTA field to within \tbr{100 milli-arcsec}.\VER{TEST}{TLR:4}909 904 \end{enumerate} 910 905 … … 926 921 resulting astrometric solution shall have a residual scatter of $< 927 922 30$ milliarcseconds when calibrated with the AP Survey reference 928 catalog and $< 100$ milliarcseconds when calibrated with the USNO-B929 catalog.\VER{ANALYSIS}{TLR: }923 catalog and $< 200$ milliarcseconds when calibrated with the USNO-B 924 catalog.\VER{ANALYSIS}{TLR:4} 930 925 931 926 \item For images obtained under normal observing conditions, the 932 resulting astrometric solution shall have a precision relative to933 ICRS of better than 100 milliarcseconds.\VER{ANALYSIS}{TLR:}927 resulting astrometric solution shall have systematic errors relative 928 to ICRS of $< 100 milliarcseconds$.\VER{ANALYSIS}{TLR:3} 934 929 935 930 \item For images obtained under photometric conditions or minimal 936 931 cirrus conditions ($< 0.1$ mag total extinction), the resulting 937 932 photometric calibration shall have a relative accuracy of 5 938 millimagnitudes.\VER{ANALYSIS}{TLR: }933 millimagnitudes.\VER{ANALYSIS}{TLR:1} 939 934 940 935 \item For images obtained under photometric conditions or minimal … … 942 937 photometric calibration shall have an absolution photometric 943 938 accuracy of 10 millimagnitudes when calibrated relative to the AP 944 Survey reference catalog.\VER{ANALYSIS}{TLR: }939 Survey reference catalog.\VER{ANALYSIS}{TLR:1} 945 940 946 941 \item For images obtained under photometric conditions or minimal … … 948 943 conditions listed in Table~\ref{moonconditions}, the resulting sky 949 944 background subtraction shall leave behind peak-to-peak residuals $< 950 1$\% of the input sky flux.\VER{ANALYSIS}{TLR: }945 1$\% of the input sky flux.\VER{ANALYSIS}{TLR:1} 951 946 952 947 \end{enumerate} … … 968 963 969 964 \item The sky representation shall degrade the image quality by less 970 than 1 0 milliarcseconds added in quadrature to the input image965 than 150 milliarcseconds added in quadrature to the input image 971 966 quality.\VER{TEST}{TLR:1} 972 967 … … 975 970 time. \VER{TEST}{TLR:17} 976 971 977 \item \tbd{completeness} 978 979 \item \tbd{contamination} 972 \item The Phase 4 analysis shall have a transient detection 973 completeness of 99\% for detections with a significance $> 5\sigma$. 974 975 \item The Phase 4 analysis shall have a false detection rate of $< 976 5\%$ for transients detections with a significance $> 5\sigma$. 980 977 981 978 \end{enumerate} … … 1025 1022 The required set of Pan-STARRS modules and their functionality is 1026 1023 specified in the document `Pan-STARRS Image Processing Pipeline Modules 1027 Supplementary Design Requirements' (PSDC-430- xxx), and details of1024 Supplementary Design Requirements' (PSDC-430-012), and details of 1028 1025 specific algorithms are specified in the document `Pan-STARRS Image 1029 1026 Processing Pipeline Algorithm Design Document' (PSDC-430-006). … … 1072 1069 \subsubsection{External Catalogs} 1073 1070 1071 \begin{table} 1072 \begin{center} 1073 \caption{Astrometric Reference Catalogs\label{AstroRefs}} 1074 \begin{tabular}{lrrrrl} 1075 \hline 1076 \hline 1077 Name & scatter limit & proper & depth & Nstars & filters \\ 1078 & (milliarcsec) & motion &(mag) & (millions) & \\ 1079 \hline 1080 Hipparcos & 1 & 2 & 7.3 & 0.1 & {\em V} \\ 1081 Tycho2 & 10 & 1 & 11.5 & 2.5 & {\em B,V} \\ 1082 UCAC-2 & 20 & 1 & 16.0 & 48.0 & {\em R} \\ 1083 USNO-A2.0 & 250 & N/A & 19.0 & 526.2 & {\em B,R} \\ 1084 USNO-B1.0 & 200 & 20 & 21.0 & 1042.6 & {\em B,R} \\ 1085 2MASS & 70 & N/A & 16.0 & 470.0 & {\em J,H,K} \\ 1086 \hline 1087 \end{tabular} 1088 \end{center} 1089 \end{table} 1090 1091 \begin{table} 1092 \begin{center} 1093 \caption{Photometric Reference Catalogs\label{PhotoRefs}} 1094 \begin{tabular}{lrrr} 1095 \hline 1096 \hline 1097 Name & scatter & depth & filters \\ 1098 & mmag & mag & \\ 1099 \hline 1100 SDSS & 15 & 16 & {\em u,g,r,i,z} \\ 1101 CFHT-LS & 10 & 18 & {\em u,g,r,i,z} \\ 1102 Landolt & 10-20 & 15 & {\em U,B,V,R,I} \\ 1103 \hline 1104 \end{tabular} 1105 \end{center} 1106 \end{table} 1107 1074 1108 The IPP AP Database shall be able to interact with the externally 1075 1109 provided reference catalogs listed in Table~\ref{AstroRefs} and … … 1078 1112 \subsubsection{Static Sky Pixel Size} 1079 1113 1080 The IPP static sky shall have a pixel scale of \tbr{0.2\arcsec}. 1114 The IPP static sky shall have a pixel scale of 1115 0.2\arcsec.\VER{ANALYSIS}{TLR:16} 1081 1116 1082 1117 \subsection{External Interfaces} … … 1182 1217 \hline 1183 1218 \hline 1184 Raw data & 200 TB \\1219 Raw data & 400 TB \\ 1185 1220 static sky & 350 TB \\ 1186 1221 calibration frames & 2.8 TB \\ … … 1188 1223 AP db & 55 TB \\ 1189 1224 \hline 1190 total & 610 TB \\1225 total & 810 TB \\ 1191 1226 \hline 1192 1227 \end{tabular} … … 1204 1239 \begin{enumerate} 1205 1240 \item The IPP shall store all raw images from the first year from the 1206 AP and IVP surveys. This corresponds to 175,000 images, or 175 TB, 1207 assuming 1 GB per image with compression. The IPP will require 1208 space for 200 TB of raw imagery to store the data from these two 1209 survey components along with raw calibration, test, and short-term 1210 storage of other raw images not in the AP and IVP 1211 surveys.\VER{INSPECT}{TLR:23} 1241 AP and IVP surveys. This corresponds to 180,000 images, or 360 TB, 1242 assuming 2 GB per image. The IPP will require space for 400 TB of 1243 raw imagery to store the data from these two survey components along 1244 with raw calibration, test, and short-term storage of other raw 1245 images not in the AP and IVP surveys.\VER{INSPECT}{TLR:23} 1212 1246 1213 1247 \item The IPP shall store a single copy of the complete static sky in … … 1226 1260 represent at most 2 terabytes. \VER{INSPECT}{TLR:25} 1227 1261 1228 \item The IPP shall have storage capacity for a total of 610 TB of data. 1262 \item The IPP shall have storage capacity for a total of 810 TB of 1263 data by the end of PS-1. 1229 1264 \end{enumerate} 1230 1265 … … 1353 1388 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1354 1389 1355 \section{Appendices} 1390 \clearpage 1391 \appendix 1356 1392 1357 1393 \bibliographystyle{plain}
Note:
See TracChangeset
for help on using the changeset viewer.
