Changeset 529
- Timestamp:
- Apr 27, 2004, 8:38:31 AM (22 years ago)
- File:
-
- 1 edited
-
trunk/doc/design/specs.tex (modified) (56 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/design/specs.tex
r514 r529 1 %%% $Id: specs.tex,v 1. 6 2004-04-23 21:57:43eugene Exp $1 %%% $Id: specs.tex,v 1.7 2004-04-27 18:38:31 eugene Exp $ 2 2 \documentclass[panstarrs]{panstarrs} 3 3 … … 63 63 limited by network bandwidth. 64 64 65 \subsubsection{Definitions} 66 67 \paragraph{``Must''} When used in this specification, the word 68 ``must'' refers to an explicit requirement of a system component or 69 the complete system. 70 71 \paragraph{``Should''} When used in this specification, the word 72 ``should'' refers to a desired chracteristic of a system component or 73 the complete system. 74 75 \paragraph{``Will''} When used in this specification, the word 76 ``will'' provides information about a characteristic of a related 77 system component or a complete related system. 65 78 66 79 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 79 92 \section{Requirements} 80 93 81 \subsection{Required States and Modes} 82 83 The IPP has 3 states: active, paused, and interactive. 84 85 \begin{itemize} 86 87 \item {\bf active state} In active state, the IPP shall accept images 88 and metadata from OATS and automatically perform the complete set of 89 image processing tasks, including both calibration and science image 90 processing. The IPP will respond to requests for data from the 91 client science pipelines \tbd{and IPP monitoring team}. 92 93 \item {\bf paused state} In paused state, the IPP shall refuse data and 94 metadata from OATS and data requests from the client science 95 pipelines. 96 97 \item {\bf interactive state} In interactive state, the IPP shall 98 accept data and metadata from OATS, but will not automatically 99 process the data. The IPP shall respond to user commands to 100 initiate portions of the data analysis. 101 \end{itemize} 102 103 \tbd{what is a mode?} 94 \subsection{Required States} 95 96 The IPP must have 3 states: active, paused, and interactive. 97 98 \subsubsection{Active State} 99 \label{req:active-state} 100 101 In active state, the IPP must accept images and metadata from OATS and 102 automatically perform the complete set of image processing tasks, 103 including both calibration and science image processing. The IPP must 104 respond to requests for data from the client science pipelines 105 \tbd{and IPP monitoring team}. 106 107 \subsubsection{Paused State} 108 \label{req:paused-state} 109 110 In paused state, the IPP must refuse data and metadata from OATS and 111 data requests from the client science pipelines. 112 113 \subsubsection{Interactive State} 114 \label{req:interactive-state} 115 116 In interactive state, the IPP must accept data and metadata from OATS, 117 but must not automatically process the data. The IPP must respond to 118 user commands to initiate portions of the data analysis. 104 119 105 120 \subsection{System Capability Requirements} 106 107 The IPP shall: 108 109 \begin{itemize} 121 \label{req:system-capabilities} 122 123 The IPP must perform the following tasks: 124 125 \begin{enumerate} 110 126 111 127 \item Accept raw images from OATS at a sustained rate of 1 exposure … … 115 131 116 132 \item Produce high-quality calibration images from the raw calibration 117 images. The calibration images shallnot introduce systematic133 images. The calibration images must not introduce systematic 118 134 uncertainties greater than \tbd{0.2\%}. \tbd{Requirements on the 119 135 speed of processing the calibration images.} … … 131 147 \item Excise the significant transients and outliers from the 132 148 pre-processed science images and merge the cleaned images into the 133 static sky image 149 static sky image. 134 150 135 151 \item Detect objects on the four types of images: pre-processed 136 images, the merged image, the difference image, and the static sky152 images, the stacked image, the difference image, and the static sky 137 153 image. 138 154 … … 147 163 \item Produce a high-quality astrometric reference catalog from the 148 164 extracted objects on a time-scale of 6 months. The astrometric 149 reference shall have an absolute accuracy of \tbd{30 mas} and a150 local relative accuracy of \tbd{10 mas}. Proper motions of all151 nearly stationary objects shall be determined with an accuracy of152 \tbd{XXX mas / year}.165 reference must have an absolute accuracy of \tbd{30 mas} and a local 166 relative accuracy of \tbd{10 mas}. Proper motions of all nearly 167 stationary objects must be determined with an accuracy of \tbd{XXX 168 mas / year}. 153 169 154 170 \item Produce a high-quality photometric reference catalog from the 155 171 extracted objects on a time-scale of 6 months. The photometric 156 reference shallhave an consistency across the sky of \tbd{5172 reference must have an consistency across the sky of \tbd{5 157 173 millimag} and an absolute calibration to the external system defined 158 174 by \tbd{SDSS} of \tbd{10 millimag}. 159 175 160 176 \item Publish the static sky images to the Pan-STARRS published static 161 sky server on a time-scale of \tbd{1 month}.177 sky server on a time-scale of \tbd{1 month}. 162 178 163 179 \item Publish the detected objects to the Pan-STARRS published object … … 168 184 processed. 169 185 170 \end{ itemize}186 \end{enumerate} 171 187 172 188 \subsubsection{Software Coding Requirements} 173 189 174 190 \paragraph{Languages} 175 176 Source code shall be in C. All source code shall be compiled with 177 `gcc' version v2.95 or higher. 178 179 Scripting language shall be in \tbd{Python, version TBD}. 191 \label{req:languages} 192 193 Source code must be in C. All source code must be compiled with `gcc' 194 version v2.95 or higher. 195 196 Scripting language must be \tbd{Python, version TBD}. 180 197 181 198 \paragraph{Interfaces} 182 183 Access to low-level Library functions shall be provided via C APIs 199 \label{req:interfaces} 200 201 Access to low-level Library functions must be provided via C APIs 184 202 consisting of the function calls and the defined data structures and 185 other data types. Access to high-level functions shallbe provided203 other data types. Access to high-level functions must be provided 186 204 via C APIs as well as SWIG interfaces, where specified. Access to 187 processing jobs shallbe available via the UNIX shell.205 processing jobs must be available via the UNIX shell. 188 206 189 207 \paragraph{Coding Standards} 190 208 191 The C code shallcomply with ANSI Standard C99. Because the delivered192 code is required to run on UNIX machines, the delivered code shallbe209 The C code must comply with ANSI Standard C99. Because the delivered 210 code is required to run on UNIX machines, the delivered code must be 193 211 in compliance with the language-independent UNIX operating system 194 212 standard POSIX (Open Group Based Specifications Issue 6, IEEE Std 195 1003.1, 2003). Source code files shalluse the UNIX line-break196 convention (line-feed only). C coding style shalladhere to the213 1003.1, 2003). Source code files must use the UNIX line-break 214 convention (line-feed only). C coding style must adhere to the 197 215 standard defined in the document 'Pan-STARRS C-coding standard' 198 (PSDC-430-004). \tbd{Python coding shallfollow the Python standard216 (PSDC-430-004). \tbd{Python coding must follow the Python standard 199 217 defined in the document TBD}. 200 218 … … 229 247 230 248 When defining a function to convert from one type to another, the name 231 shouldbe of the form \code{psOldToAlloc}, e.g.\hfil\break249 must be of the form \code{psOldToAlloc}, e.g.\hfil\break 232 250 \code{psEquatorialToEcliptic} (\emph{not} 233 251 \code{psEquatorial2Ecliptic}). … … 235 253 \paragraph{C Programming Guidelines} 236 254 237 Functions that assign to a variable shouldlist that argument255 Functions that assign to a variable must list that argument 238 256 \textit{first}, following the pattern of \code{strcpy}; e.g. 239 257 \begin{verbatim} … … 264 282 265 283 \item The destructor must handle being passed \code{NULL} by simply 266 returning immediately. This shouldnot be treated as an error284 returning immediately. This must not be treated as an error 267 285 condition. 268 286 … … 274 292 \paragraph{Commenting and Documentation} 275 293 276 Commenting of delivered C and Python code shallfollow the C and277 Python coding standards and shallprovide tags for Doxygen294 Commenting of delivered C and Python code must follow the C and 295 Python coding standards and must provide tags for Doxygen 278 296 interpretation of the comments and program structures. 279 297 280 298 Documentation for the IPP consists of source code documentation and 281 user documentation. Source code documentation shallbe generated with282 Doxygen from the in-line comments and shallbe provided as HTML,299 user documentation. Source code documentation must be generated with 300 Doxygen from the in-line comments and must be provided as HTML, 283 301 Latex, and man pages. User documentation includes the API usage for 284 302 the modules and library functions as well as user interface 285 303 description for the higher-level architectural systems. User 286 documentation shallbe delivered as PDF documents.304 documentation must be delivered as PDF documents. 287 305 288 306 \paragraph{Version Control} 289 307 290 Source code version control shallbe implemented with CVS.308 Source code version control must be implemented with CVS. 291 309 292 310 \paragraph{CSCI Deliverable} 293 311 294 312 All final source code generated for the IPP is to be delivered via 295 CVS, including the test code. CVS revision history shallbe included313 CVS, including the test code. CVS revision history must be included 296 314 and made available via CVS. 297 315 298 316 \paragraph{Platform architectures and operating systems} 299 317 300 Makefiles shallbe provided with appropriate flags set so that all318 Makefiles must be provided with appropriate flags set so that all 301 319 code compiles without warnings under 'gcc -Wall' for the following 302 320 platform architectures and operating systems: … … 346 364 as needed to perform the analysis specified above. 347 365 348 \item {\bf Analysis Stages:} Specific programs are required to349 perform the processing steps listed above. These can be divided350 into well-defined analysis stages, each of which operates on a351 particular unit of data, such as a single OTA image or a colletion352 of astronomical objets.366 \item {\bf Analysis Stages:} Specific programs are required to perform 367 the processing steps listed above. These can be divided into 368 well-defined analysis stages, each of which operates on a particular 369 unit of data, such as a single OTA image or a collection of 370 astronomical objets. 353 371 354 372 \item {\bf Controller:} In order to perform the analysis stages … … 384 402 store all of the images needed by the IPP for the length of time they 385 403 are required; total data volume is specified in detail in the hardware 386 summary, but is in the vicinity of \tbd{700 GB}.404 summary, but is in the vicinity of \tbd{700 TB}. 387 405 388 406 The IPP Pixel Server must maintain a record of all images currently 389 407 available in the repository \tbd{and all no longer available}. This 390 record shallinclude the image name, location (which machine), the408 record must include the image name, location (which machine), the 391 409 state of the image (available, deleted), the image size, the image 392 type, and the existence and location of secondary copies of the 393 image. This information need not include other metadata such as the394 image summary statistics or the state of the image processing for the 395 image.396 397 The IPP Pixel Server shallstore images as FITS files on disk. Raw398 images from the telescope shallbe stored as individual OTA images for410 type, and the existence and location of secondary copies of the image. 411 This information need not include other metadata such as the image 412 summary statistics or the state of the image processing for the image, 413 as these aspects are included in the Metadata DB. 414 415 The IPP Pixel Server must store images as FITS files on disk. Raw 416 images from the telescope must be stored as individual OTA images for 399 417 each file, with multiple Cell images per file as well as video 400 sequences from the guide stars. Images of the Static Sky shallbe418 sequences from the guide stars. Images of the Static Sky must be 401 419 stored in the form of \tbd{triangular segments} to minimize the total 402 420 data volume and pixel overlap. 403 421 404 The IPP Pixel Server shalldistribute images across a cluster of405 machines. The IPP Pixel Server shallbe capable of honoring requests422 The IPP Pixel Server must distribute images across a cluster of 423 machines. The IPP Pixel Server must be capable of honoring requests 406 424 to store an image on a specific machine. If such a request cannot be 407 honored, the IPP Pixel Server shallselect an appropriate machine and425 honored, the IPP Pixel Server must select an appropriate machine and 408 426 notify the requesting agent of the new locations. The IPP Pixel 409 Server shallprovide a mechanism to maintain multiple (at least two)410 copies of a single knownimage.427 Server must provide a mechanism to maintain multiple (at least two) 428 copies of each image. 411 429 412 430 The IPP Pixel Server must interface with other subsystems of the IPP. … … 417 435 Pixel Server. It must have a mechanism to accept or retrieve an image 418 436 from another Pan-STARRS subsystem, in particular OATS. Communication 419 of messages between the IPP Pixel Server and other subsystem shallbe437 of messages between the IPP Pixel Server and other subsystem must be 420 438 via \tbd{XML messages} passed via \tbd{some transport}. 421 439 422 440 The IPP Pixel Server must accept images at the telescope maximum rate 423 441 of 1 full-camera image every 30 seconds. The IPP Pixel Server must 424 accept notifications and process retrievals at a rate of 128 raw OTAs 425 per 60 seconds.442 therefore accept notifications and process retrievals at a rate of 64 443 raw OTAs in 30 seconds. 426 444 427 445 \tbd{O/S, language, SQL, ODBC requirements?} … … 445 463 derived from specific images from any of the analysis stages. It must 446 464 be possible to determine and locate (perhaps via interactions with the 447 pixel server) the image from which a specific detection was der ved.465 pixel server) the image from which a specific detection was derived. 448 466 It must also be possible to extract all detections derived from a 449 specific image s. These associations must include descriptive467 specific image. These associations must include descriptive 450 468 information including the coordinates of the detection on the image. 451 469 … … 454 472 objects will be present, each of which must be handled correctly. 455 473 456 First, the distant stars will have nearly fixed locations relative to457 other nearby stars, with only small deviations for individual458 measurements. The association between multiple detections of such 459 objects must be made on the basis of their coincident positions. The 460 PnA Database must be able to determine the average position ofthe461 object and the deviations of the individual detections from that 462 average. 474 First, the most distant stars, compact galaxies, and QSOs will have 475 nearly fixed locations relative to other nearby stars, with only small 476 deviations for individual measurements. The association between 477 multiple detections of such objects must be made on the basis of their 478 coincident positions. The PnA Database must be able to determine the 479 average position of the object and the deviations of the individual 480 detections from that average. 463 481 464 482 Second, solar system objects do not have a fixed location and … … 468 486 determination of this association is the responsibility of the MOPS 469 487 and must be communicated to the IPP PnA Database on \tbd{some 470 timescale}. The PnD Database must be able to retrieve the 471 detections associated with the object and to provide the object 472 associated with the specific detections. This association must 473 include descriptive information such as the offset of the detection 474 from the predicted location of the detection based on the orbit. 488 timescale}. The PnD Database must be able to retrieve the detections 489 associated with the object and to provide the object associated with 490 the specific detections. This association must include descriptive 491 information such as the offset of the detection from the predicted 492 location of the detection based on the orbit. This functionality is 493 required to allow the PnA Database to ignore known moving object 494 detections from other types of queries. 475 495 476 496 Third, stars in the general vicinity of the solar system fall in … … 545 565 546 566 If analysis results are exchanged via the metadata database, it must 547 provide access to the queried data on timescales of $<2 sec$ to avoid548 slowing down the analysis systems. 567 provide access to the queried data on timescales of $<2$ seconds to 568 avoid slowing down the analysis systems. 549 569 550 570 \tbd{volume requirements} … … 587 607 responds to commands from the controller and may be used for tasks 588 608 subject to other constraints. If it is {\tt dead}, the computer is 589 not responsive and shouldnot be used for executing tasks. The609 not responsive and must not be used for executing tasks. The 590 610 controller must identify computers which have died and occasionally 591 611 test them to see if they are {\tt alive} again. Computers which are 592 {\tt off} are not available for tests and shouldnot be tested.612 {\tt off} are not available for tests and must not be tested. 593 613 Computers may be set to the {\tt off} or {\tt dead} states by external 594 subsystems; it is the responsibility of the Controller to movea595 computer to the {\tt alive} state if possible. 614 subsystems; it is the responsibility of the Controller to return a 615 computer to the {\tt alive} state if possible. 596 616 597 617 Computers which are in the {\tt alive} state may be in one of two 598 618 modes: {\tt busy} and {\tt free}. A computer which is {\tt busy} 599 619 currently has a task assigned to it. The controller may only assign 600 one task to one computer at a time\footnote{ aphysical piece of620 one task to one computer at a time\footnote{A physical piece of 601 621 hardware may be defined to the Controller as multiple computers to 602 622 allow multi-processor nodes to execute more than one simultaneous … … 606 626 may have a list of allowed tasks which may include {\tt all} tasks, 607 627 {\tt none} of the tasks, or specified task names. The controller must 608 only execute the allowed tasks on a machine. 628 only execute the allowed tasks on a machine. 609 629 610 630 The Controller must accept tasks from other IPP subsystems. The task … … 615 635 node on which the task is executed. Input and output data resources 616 636 must be unique where necessary to avoid conflicts. Tasks must be 617 given an identifie d, which must be returned to the requesting agent,637 given an identifier, which must be returned to the requesting agent, 618 638 to be used to control the specific task. 619 639 … … 650 670 and also change its priority. 651 671 652 The controller must honor requests to change the mode of any computing653 node on demand between {\tt off} and {\tt dead}. It must also be able 654 to change the list of allowed tasks as requested by external 655 commands. 672 The controller must honor requests (normally from the users) to change 673 the mode of any computing node on demand between {\tt off} and {\tt 674 dead}. It must also be able to change the list of allowed tasks as 675 requested by external commands. 656 676 657 677 The controller must respond to informational requests regarding the … … 661 681 the controller must respond to three top-level commands: {\tt finish}, 662 682 {\tt stop} and {\tt abort}. When {\tt finish} is requested, no more 663 new tasks are accepted, and when all tasks have completed, the 664 controller must exti. When {\tt stop} is requested, the currently 665 executing tasks must be completed at which point the controller must 666 exti. When {\tt abort} is issued, the controller immediately kills 667 all executing tasks and exits. 683 new tasks are accepted on the stack of task, and when all tasks in the 684 stack have completed, the controller must exit. When {\tt stop} is 685 requested, the currently executing tasks must be completed at which 686 point the controller must exit, but tasks remaining in the stack which 687 have not been started are flushed. When {\tt abort} is issued, the 688 controller immediately kills all executing tasks and exits. 668 689 669 690 \paragraph{Scheduler} … … 687 708 The Scheduler must send commands to the Controller for execution. It 688 709 is the Controller's responsibility to manage the specific analysis 689 jobs executing on a given processing node. These analys is may include710 jobs executing on a given processing node. These analyses may include 690 711 the process of copying of moving data from OATS to the pixel server 691 712 nodes, or it may involve image processing stages performed on the 692 science images by the app orpriate processing nodes, or it may involve713 science images by the appropriate processing nodes, or it may involve 693 714 analysis of the data in the PnA object database. In order to isolate 694 715 and encapsulate the responsibilities of the Scheduler and the … … 725 746 different time-scales. The time-scale range from 2 times per minute 726 747 to once or twice a year, as noted in the list above. The Scheduler 727 must make use of the human input to manage such choices. 748 must also make use of the human input in managing such choices. The 749 human users must be able to specify that a particular task or set of 750 tasks is of higher or lower priority than the norm. 728 751 729 752 The Scheduler must maintain a set of rules defining the dependency of … … 733 756 dependency and initiate the required analysis needed to perform other 734 757 analysis tasks. The Scheduler must have the ability to decide between 735 postponing an analysis task until the dependingdata are available or736 to initia lthe task using a lower-quality or less appropriate737 substitute. For example, a science image should not be processed738 until the corresponding detrend frame has been produced. However, it 739 such a frame is unlikely to appear and the pressure to process the 740 science image it too high, then the frame could be processed with an741 older detrend frame of known lower quality. The Scheduler must have 742 the ability to choose the best, if not ideal, reference data for a 743 particular circumstance.758 postponing an analysis task until the required data are available or 759 to initiate the task using a lower-quality or less appropriate 760 substitute. For example, in normal circumstances, a science image 761 must not be processed until the corresponding detrend frame has been 762 produced. However, if such a frame is unlikely to appear soon, and 763 the pressure to process the science image is sufficiently high, then 764 the frame could be processed with an older detrend frame of known 765 lower quality. The Scheduler must have the ability to choose the 766 best, if not ideal, reference data for a particular circumstance. 744 767 745 768 The Scheduler is responsible for setting the operating mode of the … … 751 774 the requested actions and not attempt to perform the other 752 775 normally-required actions. The only exception to this exclusion is 753 that, in the interactive mode, data must still be cop yed from the776 that, in the interactive mode, data must still be copied from the 754 777 summit system. A human-sent command must be able to change the 755 Scheduler priorities from the automatic to the interactive modes. An 756 additional IPP mode is the {\em paused mode}, in which case the 757 Scheulder does not perform even the data copy tasks. Every task is 758 performed on demand by the user. 778 Scheduler priorities from the automatic to the interactive modes 779 \tbd{with a CLI or GUI}. An additional IPP mode is the {\em paused 780 mode}, intended for tests or maintenance, in which case the Scheduler 781 does not perform even the data copy tasks. Every task is performed on 782 demand by the user. 759 783 760 784 \subsubsection{Analysis Stages} … … 769 793 770 794 Depending on the task, the basic data unit may be individual images, 771 collections of images, or derived data products such as collection of795 collections of images, or derived data products such as a collection of 772 796 detections of astronomical objects. Because of the granularity of 773 797 these data units, many of the analysis tasks can be performed in 774 798 parallel because, for example, the intial analysis of an OTA in one 775 799 image does not depend on the results from another OTA. We define the 776 term 'analysis stage' to refer to the largest complete analysis task800 term `analysis stage' to refer to the largest complete analysis task 777 801 which may be performed on a single data item. The analysis stages are 778 802 divided into three categories, and further subdivided as follows: … … 785 809 \begin{itemize} 786 810 \item {\bf Phase 1:} The image processing preparation phase, in 787 which a basic analysis of the complete FPA image is performed. 811 which basic astrometric analysis of the complete FPA image is 812 performed. 788 813 789 814 \item {\bf Phase 2:} The image reduction phase, in which the … … 797 822 798 823 \item {\bf Phase 4:} The image combination phase, in which several 799 differen ceexposures of the same part of the sky are combined to824 different exposures of the same part of the sky are combined to 800 825 produce high-quality difference and summed images. 801 826 \end{itemize} … … 803 828 \item {\bf Calibration Image Analysis} is required to generate the 804 829 calibration images used in the science image analysis. There are 805 three types of calibration images which are produced. 830 three types of calibration images which are produced. \tbd{make this 831 consistent with other sections which use the basic / other 832 calibration distinction} 806 833 807 834 \begin{enumerate} … … 904 931 distortion model and table of nominal OTA positions and rotations, 905 932 combined with the guide star pixel and celestial coordinates, to 906 determine the correct telescope bore-si te, field rotation and907 magnification. The astrometric accura terequired from this analysis933 determine the correct telescope bore-sight, field rotation and 934 magnification. The astrometric accuracy required from this analysis 908 935 stage is \tbd{2 arcsec} across the field, sufficient to match the vast 909 936 majority of reference stars with their detections. … … 911 938 In some circumstances, science images may have no guide stars. This 912 939 may occur if the detectors are not run in OTA mode, especially for 913 short snapshot images. In such a circumstance, the Phase 1 stage must 914 perform extremely basic object detection, determining the detector 915 coordinates for stars which are not excessively saturated and which 916 are significantly above the background level. The threshold levels 917 for this object detection stage must be configurable. The object 918 extraction must be performed in less than \tbd{3 seconds}. 940 short snapshot images of if IPP is being run on non-Pan-STARRS data. 941 In such a circumstance, the Phase 1 stage must perform extremely basic 942 object detection, determining the detector coordinates for stars which 943 are not excessively saturated and which are significantly above the 944 background level. The threshold levels for this object detection 945 stage must be configurable. The object extraction must be performed 946 in less than \tbd{3 seconds}. 919 947 920 948 In order for astrometry of an image to succeed, it is necessary that … … 932 960 because of the astrometric error at this phase. It is acceptable for 933 961 a small number of invalid overlaps to be identified as these will be 934 excluded in Phase 4. 962 excluded in Phase 4. Sky cells which do not have sufficient science 963 image overlap \tbd{$< 10\%$} need not be processed. 935 964 936 965 It is not unusual that an image be obtained with invalid coordinates 937 966 or without any valid stars. For example, the telescope control system 938 may make an error an report the wrong time or coordinates. Or, the967 may make an error and report the wrong time or coordinates. Or, the 939 968 image may be obtained in exceptionally poor conditions with no 940 969 detected stars. Phase 1 must fail gracefully in these conditions, … … 985 1014 bad. Note that bad pixels which are charge traps need to be grown by 986 1015 the extent of the OT convolution kernel, while those pixels above a 987 charge trap (i.e.\ bad colums) should not be grown, since they were988 notaffected by pixel shifting, but only became bad at read-out.989 990 Pixels saturated in the A/D converter shouldalso be masked, and this991 area shouldbe grown by an additional pixel to mask excess charge992 spillover. 1016 charge trap (i.e.\ bad colums) must not be grown, since they were not 1017 affected by pixel shifting, but only became bad at read-out. 1018 1019 Pixels saturated in the A/D converter must also be masked, and this 1020 area must be grown by an additional pixel to mask excess charge 1021 spillover. 993 1022 994 1023 The bad pixel mask must be carried with the science images. Different … … 1010 1039 single constant, all of the overscan pixel values are used in the 1011 1040 calculation of this statistic. In the case of the 1D functional 1012 representation, the input values to the fit shouldrepresent the1041 representation, the input values to the fit must represent the 1013 1042 coordinate along the overscan, with the statistic derived from the 1014 pixel in the perpedicular direction at each location. Sigma-clipping1043 pixels in the perpedicular direction at each location. Sigma-clipping 1015 1044 on the input data values must be an option. \tbd{accuracy of the bias 1016 1045 subtraction?} … … 1021 1050 the overscan and any pre-scan pixels, along with those pixels near the 1022 1051 edges that have been compromised due to OT operation. The definition 1023 of the imaging area of the detector must optionally be determined from1024 the camera configuration data or from the metadata associated with the 1025 image. 1052 of the imaging area of the detector must be determined from the camera 1053 configuration data or from the metadata associated with the image, 1054 with the choice a user-configurable option. 1026 1055 1027 1056 \subparagraph{Correct for non-linearity} 1028 1057 1029 The object image (after bias correction) must be optionally corrected 1030 for the effects of non-linearity through a provided polynomial fit to 1031 the pixel data values. \tbd{what IPP component producesthe1032 non-linear correction function?} 1058 If required, the object image (after bias correction) must be 1059 corrected for the effects of non-linearity through a provided 1060 polynomial fit to the pixel data values. The choice to apply the 1061 correction must be set by the user. 1033 1062 1034 1063 \subparagraph{Flat-field correction} … … 1048 1077 (technically, foreground) variations which are not celestial but 1049 1078 generated in the atmosphere or by more localized scattering. This 1050 background subtraction does not address the art efacts generated by1079 background subtraction does not address the artifacts generated by 1051 1080 bright stars: bleeding columns, ghosts, or other localized reflection 1052 1081 effects. The background subtraction must remove the variations with 1053 an accuracy such that the residual variations do not introduce on1054 average more than \tbd{0.2\%} photometric scatter or more than1082 an accuracy such that the residual variations do not introduce, on 1083 average, more than \tbd{0.2\%} photometric scatter or more than 1055 1084 \tbd{1\%} extremely deviant outlier stars (stars for which the 1056 photometry is in error by more than 3\% . \tbd{what is the requirement1057 on galaxy photometry? morphology determinations?} \tbd{What is 1058 allowed power-spectrum of background variations?}1059 1060 \subparagraph{Identify 'cosmic rays'}1085 photometry is in error by more than 3\%). \tbd{what is the 1086 requirement on galaxy photometry? morphology determinations?} 1087 \tbd{What is allowed power-spectrum of background variations?} 1088 1089 \subparagraph{Identify `cosmic rays'} 1061 1090 1062 1091 Charged particles in the detector frequently cause features which do 1063 1092 not have the morphology of astronomical objects. In a well-sampled 1064 1093 image, these may be easily identified by the sharpness of the image. 1065 In a near critically-sampled image, these 'cosmic rays' may be1094 In a near critically-sampled image, these `cosmic rays' may be 1066 1095 indistinguishable from stellar objects. The IPP must have the 1067 1096 capability of making the morphological identification of cosmic rays … … 1083 1112 which are inconsistent, and objects which are saturated. The 1084 1113 resulting collection of detected objects must be saved along with the 1085 relevant image metadata (\ie ,filter, exposure time, etc).1086 1087 \subparagraph{ astrometry}1114 relevant image metadata (\ie filter, exposure time, etc). 1115 1116 \subparagraph{Astrometry} 1088 1117 1089 1118 Objects detected in Phase~2 must be matched with known astrometric … … 1093 1122 stage, a user-defined collection of OTA astrometry parameters must be 1094 1123 fitted on the basis of the matched stars. The Cell astrometric 1095 parameters must not be allowed to flow at this stage. The fit must be 1096 robust, rejecting outlier matches, either stars with poorly determined 1097 proper motion or spurious matches. The resulting astrometric solution 1098 must be consistent across the OTA field to within \tbd{0.2 arcsec}. 1124 parameters must not be allowed to vary at this stage. The fit must be 1125 robust, rejecting outlier matches (either stars with poorly determined 1126 proper motion or spurious matches). The resulting astrometric 1127 solution must be consistent across the OTA field to within \tbd{0.2 1128 arcsec}. 1099 1129 1100 1130 \subparagraph{Postage Stamps} … … 1113 1143 1114 1144 Phase 3 must use the objects detected in Phase 2, matched with an 1115 appropriate reference catalog, to determine the image zero point and1116 zero-point variations across the field. If zero-point variations are 1117 significant \tbd{level TBD}, the zero-point variations must be modeled 1118 with an up-to 3rd order chebychev polynomial correction. The complete 1119 FPA image must be categorized as photometric or not \tbd{numerical 1120 scale?} on the basis of the zero-point consistency, the transparency 1121 compared with recent long-term measurements in the filter, andthe1122 external indicators of photometricity.1145 appropriate reference catalog, to determine the image photometric zero 1146 point and zero-point variations across the field. If zero-point 1147 variations are significant \tbd{level TBD}, the zero-point variations 1148 must be modeled with a chebychev polynomial correction of order 3 or 1149 less. The complete FPA image must be categorized as photometric or 1150 not \tbd{numerical scale?} on the basis of the zero-point consistency, 1151 the transparency compared with recent long-term measurements in the 1152 filter, and the external indicators of photometricity. 1123 1153 1124 1154 Phase 3 must use the objects detected in Phase 2, matched with an … … 1134 1164 sky image. Phase 4 operates on the smallest data unit of the static 1135 1165 sky, the sky cell, along with the associated pixels from a collection 1136 of image which have been processed through phases 1 -3. For each sky1166 of images which have been processed through phases 1--3. For each sky 1137 1167 cell, the corresponding pixels are extracted from the exposures being 1138 1168 processed and mapped to the projection of the sky cell. The pixels … … 1142 1172 difference image, above a threshold are detected and excised from the 1143 1173 original cleaned image. The remaining pixels are added to the 1144 existing static sky image. Object detection must be performed o fthe1174 existing static sky image. Object detection must be performed on the 1145 1175 difference and cleaned images. \tbd{when is static sky object 1146 1176 detection \& classification performed?} Phase 4 naturally divides … … 1152 1182 determined and extracted from the input images. This process must use 1153 1183 the astrometric information for each OTA and Cell to determine the 1154 overlaps. It must not miss any pixels, and it must read no more than 1155 20\% more pixels than necessary from the input images.1184 exact overlaps. It must not miss any pixels, and it must read no more 1185 than 20\% more pixels than necessary from the input images. 1156 1186 1157 1187 \subparagraph{Transform pixel coordinates} … … 1166 1196 \tbd{interpolation method?} 1167 1197 1168 \subparagraph{PSF matching}1169 1170 The multiple input images must have their PSF mutually matched to1171 allow for proper image subtraction.1172 1173 1198 \subparagraph{Flux matching} 1174 1199 1175 The multiple input images must have their object fluxes mutually 1176 matched by intercomparison of the stars measured in Phase 2 in order 1177 to properly combine them photometrically. 1200 The multiple input images must have their object fluxes intercompared 1201 using the stars measured in Phase 2 in order to determine the 1202 appropriate photometry scaling factors needed to properly combine them 1203 photometrically. 1178 1204 1179 1205 \subparagraph{Image outlier pixel rejection} … … 1186 1212 obtained over a wide range of times. 1187 1213 1214 \subparagraph{PSF matching} 1215 1216 The multiple input images must have their PSF mutually matched to 1217 allow for proper image subtraction. 1218 1188 1219 \subparagraph{Image Subtraction} 1189 1220 1190 The static sky image must be subtracted from the merged, cleaned1221 The static sky image must be subtracted from the stacked, cleaned 1191 1222 image. All objects in the difference image must be detected and the 1192 pixels flagged in the input image. Object detection at this stage is1193 the same as that used for Phase 2. 1223 pixels belonging to variable sources flagged in the input image. 1224 Object detection at this stage is the same as that used for Phase 2. 1194 1225 1195 1226 \subparagraph{Cleaned Input Image} … … 1214 1245 telescopes, with the (old) static sky added; 1215 1246 \item Metadata about the quality of each of these images; and 1216 \item A catalogue of variable sources. 1247 \item A catalog of variable sources. 1248 \item A catalog of sources from the combined image. 1217 1249 \end{enumerate} 1218 1250 … … 1237 1269 photometric and astrometric accuracies: 1238 1270 \begin{itemize} 1239 \item Relative photometric accuracy better than 0.005 mag {\bf [???]}.1240 \item Absolute photometric accuracy better than 0.02 mag {\bf [???]}.1241 \item Relative astrometric accuracy better than 0.02 arcsec {\bf [???]}.1242 \item Absolute astrometric accuracy better than 0.2 arcsec {\bf [???]}.1271 \item Relative photometric accuracy better than \tbd{0.005 mag} 1272 \item Absolute photometric accuracy better than \tbd{0.02 mag} 1273 \item Relative astrometric accuracy better than \tbd{0.01 arcsec} 1274 \item Absolute astrometric accuracy better than \tbd{0.2 arcsec} 1243 1275 \end{itemize} 1244 1276 … … 1251 1283 1252 1284 \paragraph{Calibration Stages} 1285 \label{mkcal} 1253 1286 1254 1287 The Calibration analysis stages may be performed on whatever … … 1263 1296 \paragraph{Basic Calibration Stages} 1264 1297 1265 The IPP must generate basic calibration images using the raw 1266 flat-field, bias and dark images obtained by the telescope asthe1267 input. The analysis of these images requires relatively simple 1268 stacking of the input set of images. Outlier rejection, both of 1269 complete input images as well as pixels within the input stack, must 1270 be performed. In addition, each type of image requires an appropriate1271 normalization which may depend on the data levels in other detectors 1272 in the input set. Each of these calibration stages must be able to 1273 determine from the input stack if the relevant calibration image needs 1274 to be updated and perform an initial test to see which input images 1275 are consistent and valid. 1298 The IPP must generate basic calibration images using the raw bias, 1299 dark, and flat-field (dome or twilight) images obtained by the 1300 telescope as the input. The analysis of these images requires 1301 relatively simple stacking of the input set of images. Outlier 1302 rejection, both of complete input images as well as pixels within the 1303 input stack, must be performed. In addition, each type of image 1304 requires an appropriate normalization which may depend on the data 1305 levels in other detectors in the input set. Each of these calibration 1306 stages must be able to determine from the input stack if the relevant 1307 calibration image needs to be updated and perform an initial test to 1308 see which input images are consistent and valid. 1276 1309 1277 1310 \subparagraph{bias images} … … 1332 1365 flat-field images and identify pixels which are repeatedly 1333 1366 inconsistent from image to image. If too many pixels are 1334 inconsistent, an error shouldbe raised.1367 inconsistent, an error must be raised. 1335 1368 1336 1369 \subparagraph{fringe frames} … … 1367 1400 which are placed at a variety of locations on the detector in a 1368 1401 sequence of images. 1402 1403 \subparagraph{Non-linearity correction frames} 1404 1405 The IPP must have the capability of constructing non-linear correction 1406 frames. These frames are constructed from exposures of a uniform 1407 source with a range of exposure times. The non-linearity correction 1408 frames provide polynomial correction coefficients as a function of 1409 pixel to convert the observed pixel counts to the expected pixel count 1410 from a linear detector. 1369 1411 1370 1412 \paragraph{Reference Catalog Creation} … … 2032 2074 \section{Test Verification} 2033 2075 2034 A testing regime shallbe implemented to demonstrate the working state2035 of the provided software. Certain tests as specified shallbe2076 A testing regime must be implemented to demonstrate the working state 2077 of the provided software. Certain tests as specified must be 2036 2078 performed by MHPCC, with code release contingent on success. Other 2037 2079 specified tests will be performed by IfA to verify the validity of the … … 2042 2084 \subsection{Software Configuration Tests} 2043 2085 2044 MHPCC shalltest the validity of the software configuration,2086 MHPCC must test the validity of the software configuration, 2045 2087 specifically to check that the code can be compiled on the specified 2046 2088 platforms and that the compilation produces no errors or warnings, … … 2049 2091 \subsection{Software Integrity Tests} 2050 2092 2051 MHPCC shalltest the integrity of the software, specifically to check2093 MHPCC must test the integrity of the software, specifically to check 2052 2094 that the code does not produce memory leaks, segmentation faults. 2053 2095 2054 2096 \subsection{Basic Unit Tests} 2055 2097 2056 MHPCC shallperform basic unit tests with sample input data and known2098 MHPCC must perform basic unit tests with sample input data and known 2057 2099 output results, including invalid input data to test error handling. 2058 These tests shouldexercise the complete range of module options.2100 These tests must exercise the complete range of module options. 2059 2101 2060 2102 \subsection{Detailed Functional Analysis} 2061 2103 2062 IfA shallperform detailed tests with a wide range of input data and2104 IfA must perform detailed tests with a wide range of input data and 2063 2105 compare the results with existing software system. 2064 2106 … … 2078 2120 \end{document} 2079 2121 2122 Requirements Trace Matrix 2123 2124 active state \ref{req:active-state} 2125 paused state \ref{req:paused-state} 2126 interactive state \ref{req:interactive-state} 2127 2128 system capabilities 2129 2130 C for source code \ref{req:languages} 2131 Python for scripts \ref{req:languages} 2132 2133 SWIG interfaces 2134 C APIs 2135 2136 POSIX 2137 Pan-STARRS Coding Standard 2138 2139 Naming Conventions 2140
Note:
See TracChangeset
for help on using the changeset viewer.
