Changeset 553 for trunk/doc/design/design.tex
- Timestamp:
- Apr 29, 2004, 5:41:45 PM (22 years ago)
- File:
-
- 1 edited
-
trunk/doc/design/design.tex (modified) (60 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/design/design.tex
r548 r553 1 %%% $Id: design.tex,v 1. 9 2004-04-29 21:30:37price Exp $1 %%% $Id: design.tex,v 1.10 2004-04-30 03:41:45 price Exp $ 2 2 \documentclass[panstarrs]{panstarrs} 3 3 … … 22 22 \RevisionsStart 23 23 % version Date Description 24 DR.01 & 2003.01.01 & First draft \\ \hline 25 DR.02 & 2003.03.05 & Second draft \\ \hline 26 DR.03 & 2003.03.25 & Section reorganization \\ 27 DR.04 & 2003.04.13 & Most sections fleshed out \\ 24 DR.01 & 2004.01.01 & First draft \\ \hline 25 DR.02 & 2004.03.05 & Second draft \\ \hline 26 DR.03 & 2004.03.25 & Section reorganization \\ \hline 27 DR.04 & 2004.04.13 & Most sections fleshed out \\ \hline 28 DR.05 & 2004.04.29 & Reorganisation for consistency --- PAP. \\ \hline 28 29 \RevisionsEnd 29 30 … … 88 89 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 89 90 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 90 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%91 92 \section{Referenced Documents}93 94 This section lists documents referred to by this specification.\\95 96 91 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 97 92 … … 235 230 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 236 231 237 \ subsubsubsection{OATS}232 \paragraph{OATS} 238 233 239 234 The Observatory And Telescope System (OATS) is not a part of the IPP, … … 245 240 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 246 241 247 \ subsubsubsection{Pollster}242 \paragraph{Pollster} 248 243 249 244 The Pollster is a program that polls OATS at regular intervals for the … … 263 258 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 264 259 265 \ subsubsubsection{Metadata DB}260 \paragraph{Metadata DB} 266 261 267 262 The Metadata DB stores and maintains the metadata\footnote{Note that … … 277 272 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 278 273 279 \ subsubsubsection{Scheduler}274 \paragraph{Scheduler} 280 275 281 276 The Scheduler is responsible for determining the processing stages … … 297 292 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 298 293 299 \subsubsubsection{Localiser} 294 \paragraph{Localiser} 295 \label{sec:localiser} 300 296 301 297 It is the duty of the Localiser to assign processing stages to … … 316 312 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 317 313 318 \ subsubsubsection{Controller}314 \paragraph{Controller} 319 315 320 316 The Controller's job is to control the execution of the processing … … 328 324 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 329 325 330 \subsubsubsection{Pixel DB} 326 \paragraph{Pixel DB} 327 \label{sec:pixeldb} 331 328 332 329 The Pixel DB is responsible for storing and maintaining the location … … 345 342 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 346 343 347 \ subsubsubsection{Nodes}344 \paragraph{Nodes} 348 345 349 346 The Nodes perform the grunt work of executing the processing stages as … … 367 364 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 368 365 369 \ subsubsubsection{Object DB}366 \paragraph{Object DB} 370 367 371 368 The Object DB is a facility to store all of the information about … … 387 384 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 388 385 389 \ subsubsubsection{CSPs and MOPS}386 \paragraph{CSPs and MOPS} 390 387 391 388 The Client Science Programs (CSPs) and the Moving Object Processing … … 418 415 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 419 416 420 \ subsubsubsection{Related/Connected components}417 \paragraph{Related/Connected components} 421 418 422 419 The Pollster may be contained within the Scheduler (i.e., the … … 431 428 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 432 429 433 \ subsubsubsection{Responsibility}430 \paragraph{Responsibility} 434 431 435 432 The IPP team will develop and have responsibility for maintaining … … 440 437 441 438 \subsubsection{Processing Stages} 439 \label{sec:processingStages} 442 440 443 441 We now consider the collection of IPP processing stages which are … … 472 470 \item Calibration Image Processing Stages 473 471 \begin{enumerate} 474 \item Cal ibration 1: Basic master-detrend creation --- combination475 of simpledetrend images (e.g., bias, dome flat etc).476 \item Cal ibration 2: Sky-model/fringe-mode generation ---477 combination of more-complicated detrend images (e.g., fringe,478 scattered lightetc).479 \item Cal ibration 3: Flat-field correction image creation ---480 analysis ofphotometry from multiple dithered FPAs.472 \item Cal 1: Basic master-detrend creation --- combination of simple 473 detrend images (e.g., bias, dome flat etc). 474 \item Cal 2: Sky-model/fringe-mode generation --- combination of 475 more-complicated detrend images (e.g., fringe, scattered light 476 etc). 477 \item Cal 3: Flat-field correction image creation --- analysis of 478 photometry from multiple dithered FPAs. 481 479 \end{enumerate} 482 \item Calibration Test Processing Stage --- tests whether new 483 calibration data are required. 480 \item Calibration Test Processing Stage 481 \begin{enumerate} 482 \item CalTest 1: Detrend frame testing --- tests whether new 483 calibration frames are required. 484 \item CalTest 2: Photometric float correction testing --- tests 485 whether a new photometric flat correction is required. 486 \end{enumerate} 484 487 \item Reference Catalog Processing Stages 485 488 \begin{enumerate} … … 582 585 \subsubsection{Stages} 583 586 584 The major IPP tasks are organized into stages, which consist of 585 multiple modules. Each stage represents a collection of complex 586 operations performed on a single data entity. Each stage therefore 587 represents the maximum amount of effort which can be performed in 588 serial without interaction between parallel threads. The stages will 589 be written in \tbd{Python}, linking the modules together. Examples of 590 stages are Phase 2 (detrend images) and Phase 4 (combine images from 591 multiple telescopes and search for transients). 592 593 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 594 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 595 596 \subsubsection{Controllers} 597 598 The stages are parallelized by a controller, which initiates the 599 stages on separate machines and monitors their progress. An example 600 of the controller functionality is ``Run the phase 2 processing on 601 exposure number 1234 using machines 1,3,5,7,9''. 602 603 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 604 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 605 606 \subsubsection{Scheduler} 607 608 The scheduler is responsible for interacting with \PS{} systems 609 external to the IPP, and for initiating the reduction appropriate for 610 images as they are received. An example of the scheduler 611 functionality is ``Retrieve exposure number 1234; run phase 1--4 612 controllers on exposure 1234''. 587 The major IPP processing tasks are organized into stages, which 588 consist of multiple modules. Each stage represents a collection of 589 complex operations performed on a single data entity. Each stage 590 therefore represents the maximum amount of effort which can be 591 performed in serial without interaction between parallel threads. The 592 stages will be written in \tbd{Python}, linking the modules together. 593 Examples of stages are Phase 2 (detrend images) and Phase 4 (combine 594 images from multiple telescopes and search for transients). 595 596 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 597 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 598 599 \subsubsection{Orchestration} 600 601 High-level components such as the Scheduler, the Controller and the 602 Localiser are for process control. As such, they shall be written in 603 \tbd{Python} in order to maintain flexibility. 613 604 614 605 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 634 625 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 635 626 627 \subsubsection{Pollster} 628 629 The Pollster simply polls OATS on a regular basis for metadata 630 (including telescope exposures) which is not known by the IPP (i.e., 631 already written in the Metadata DB). On the discovery of such metadata, 632 it is written to the Metadata DB. 633 634 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 635 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 636 636 637 \subsubsection{Pixel Server} 637 638 638 639 The IPP Pixel Server (IPS) is a repository for all image pixel data 639 required by the IPP. Images may reside in the IPS for different 640 periods depending on their use and type. Data stored by the IPS 641 include the raw images, the calibration images, intermediate 642 processing stage images as needed, final processed images, difference 643 images, and image subsections, \tbd{along with the associated 644 metadata}. The IPS must retain images as long as they are needed, up 645 to the lifetime of the project. In order to achieve the I/O 646 requirements, the IPS may maintain the pixel data distributed across 647 the processor nodes in an organized fashion, i.e.\ associating 648 specific machines with specific detectors. The IPS interacts with the 649 IPP Metadata Database to allow other systems or subsystems to identify 650 the available images meeting specified criteria. IPS specifications 651 are described in the IPS subsystem specification. 640 required by the IPP, and fulfills the roles of the Pixel DB 641 (\S\ref{sec:pixeldb}) and the Localiser (\S\ref{sec:localiser}). In 642 addition, it also provides components for managing the distribution of 643 data, and accessing the data. 644 645 Images may reside in the IPS for different periods depending on their 646 use and type. Data stored by the IPS include the raw images, the 647 calibration images, intermediate processing stage images as needed, 648 final processed images, difference images, and image subsections, 649 \tbd{along with the associated metadata}. The IPS must retain images 650 as long as they are needed, up to the lifetime of the project. In 651 order to achieve the I/O requirements, the IPS may maintain the pixel 652 data distributed across the processor nodes in an organized fashion, 653 i.e.\ associating specific machines with specific detectors. The IPS 654 interacts with the IPP Metadata Database to allow other systems or 655 subsystems to identify the available images meeting specified 656 criteria. IPS specifications are described in the IPS subsystem 657 specification. 652 658 653 659 In addition to storing the pixel data, the IPS is responsible for … … 657 663 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 658 664 659 \paragraph{Pixel Server Components} 660 661 The IPP Pixel Server consists of the following components: 665 \paragraph{IPP Pixel Server Components} 666 667 The IPP Pixel Server (IPS) fulfills the roles of the Pixel DB 668 (\S\ref{sec:pixeldb}) and the Localiser (\S\ref{sec:localiser}), and 669 consists of the following components: 662 670 663 671 \begin{enumerate} 664 \item IPP Pixel Server Scheduler (IPSS)665 672 \item IPP Pixel Server Data Locality Optimizer (IPSDLO) 666 673 \item IPP Pixel Server Database (IPSD) 667 \item IPP Pixel Server Node Agent (IPSNA)674 \item IPP Pixel Server Maintainance (IPSM) 668 675 \item IPP Pixel Server I/O Library (IPSIOL) 669 676 \end{enumerate} 670 677 678 This assumes that the pixel data will be stored on the nodes. Each 679 image shall have a unique Universal Resource Identifier (URI) which 680 specifies the location of the pixel data. As an example, consider a 681 cluster with cross-mounted disks --- in this case, the filename 682 incorporating the full path would serve as the URI. 683 684 The components of the IPS and their relation to other components (both 685 within the IPS and without) are showin in Figure~\ref{fig:ips}. 686 687 \begin{figure} 688 \psfig{file=pics/IPS,width=15cm,angle=0} 689 \caption{The components of the IPS. In addition to the IPSDLO, IPSD 690 and IPSM, the IPSIOL is also a component of the IPS; use of the IPSIOL 691 is shown as dotted arrows in the interactions. Note that the nodes use 692 the IPSIOL to pass pixel data between each other.} 693 \label{fig:ips} 694 \end{figure} 695 671 696 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 672 697 673 \subparagraph{IPP Pixel Server Scheduler (IPSS)} 674 675 The IPSS coordinates the movement of image data and executes batch 676 image data management tasks. The IPSS has four basic modes of 677 operation: 678 698 \subparagraph{IPP Pixel Server Data Locality Optimizer (IPPDLO)} 699 700 Processing stages generated by the Scheduler are passed through the 701 IPSDLO which does the following: 702 \begin{enumerate} 703 \item assigns tasks to specific nodes; 704 \item identifies the URI of the required input data; and 705 \item identifies the URI the output data should be written to. 706 \end{enumerate} 707 708 This allows the choice of processing node to be optimized so that it 709 resides on the node which will process it, as well as allowing the 710 output to be written to the node which requires it for the next 711 processing stage. 712 713 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 714 715 \subparagraph{IPP Pixel Server Database (IPSD)} 716 \label{sec:ipsd} 717 718 The IPSD maintains a database of URIs for the pixel data on the nodes. 719 It should be able to return the URI of the pixel data given one of: 720 \begin{enumerate} 721 \item an exposure identifier and a chip identifier (raw and processed 722 pixel data from the telescope); 723 \item a calibration identifier (detrend pixel data); and 724 \item a sky cell identifier (summed static sky, reduced and difference 725 pixel data). 726 \end{enumerate} 727 728 The IPSD will also contain a history of data management commands and 729 actions. 730 731 \tbd{Is there a reason why this is not a part of the Metadata DB?} 732 733 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 734 735 \subparagraph{IPP Pixel Server Maintenance (IPSM)} 736 737 The IPSM initiates the execution of bulk data management processing 738 stages. It may have an automated component which, e.g., monitors the 739 disk space on each of the nodes and redistributes them if they become 740 unbalanced. However, the main intent is that it is used by a human 741 operator to reorgainise the data, e.g., after a new data optimisation 742 plan has been formulated, or to delete old data. 743 744 The IPSM passes processing stages to the Controller which executes 745 them on the specified nodes. 746 747 The IPSM allows four types of operation: 679 748 \begin{itemize} 680 \item Retrieve external data: The IPSS generates {\em retrieve data} 681 tasks which are executed by the IPSNAs on nodes specified by the 682 IPSDLO. This mode will be used frequently to copy data from the 683 Summit Pixel Server to the IPP nodes for processing. 684 \item Delete data: The IPSS looks up the location of the data in the 685 IPP Pixel Data Database and generates {\em delete data} tasks which 686 are executed by the IPSNAs on the appropriate nodes. This mode will 687 be used on a regular basis to clean old data that is no longer 688 required. 689 \item Replicate data: The IPSS generates {\em copy data} tasks which 690 are executed by the IPSNAs on nodes specified either by the 691 ``replicate data'' command, or by the IPPDLO. This mode differs 692 from the ``copy external data'' mode in that it copies data already 693 within the IPSS. This mode will be used to backup and rearrange 694 data. 695 \item Move data: the IPSS executes a replication followed by a 696 deletion. This mode will be used to reorganise the storage. 749 \item Retrieve external data --- to manually trigger the copying of 750 external data (routine copying of the pixel data from OATS is 751 handled by the Scheduler). The IPSM generates {\em retrieve data} 752 stages which are passed to the Controller for execution. 753 \item Delete data --- to delete old data. The IPSM looks up the 754 location of the data in the IPSD and generates {\em delete data} 755 stages which are passed to the Controller for execution. 756 \item Replicate data --- to backup and rearrange data. The IPSM 757 generates {\em copy data} stages which are passed to the Controller 758 for execution. Note that this mode differs from the ``copy external 759 data'' mode in that it copies data already within the IPS. 760 \item Move data --- to reorganise storage. The IPSM executes a 761 replication followed by a deletion. 697 762 \end{itemize} 698 763 699 It is not intended that the IPSS will be used by the nodes in the700 course of processing --- it is only for bulk data management. ``Copy701 external data'' mode will be used frequently to retrieve data from the702 Summit Pixel Server. ``Delete data'' mode will be used on a regular703 basis to flush the system of stale files. It is expected that the704 other modes will be used only occassionally, and initiated by a human705 operator.706 707 764 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 708 765 709 \subparagraph{IPP Pixel Server Data Locality Optimizer (IPPDLO)} 710 711 Data tasks generated by the IPSS are passed through the IPSDLO which 712 assigns write tasks to specific nodes. This allows the location of 713 the data to be optimized so that it resides on the node which will 714 process it. 715 716 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 717 718 \subparagraph{IPP Pixel Server Database (IPSD)} 719 720 The IPSD contains image data locations \tbd{and the associated 721 metadata}. The IPSD will contain at least: 766 \subparagraph{IPP Pixel Server I/O Library (IPSIOL)} 767 768 The IPSIOL provides a mechanism for reading and writing pixel data to 769 the IPS. The existence of the IPSIOL insulates the processing stages 770 from the details of how the pixel data are stored (i.e., the 771 processing stages need not worry whether the data is stored locally or 772 remotely). It will generally be used on the nodes and the IPSDLO, 773 although other components will also make use of it. 774 775 The IPSIOL will be able to: 722 776 \begin{itemize} 723 \item The location of image data and its associated metadata that is 724 available for retrieval from the Summit Pixel Server. 725 \item The location of image data and its associated metadata that is 726 yet to be processed by the IPP System. 727 \item The location of calibration data and its associated metadata for 728 processing within the IPP System. 729 \item The location of reduced image data and its associated metadata as 730 generated by the IPP System. 731 \item The location of difference image data and its associated metadata as 732 generated by the IPP System. 733 \item The location of stacked image data and its associated metadata as 734 generated by the IPP System. 735 \item A history of data management commands and actions. 777 \item Open a file specified by a URI --- it may simply open the file 778 if it exists on the particular node, or it may retrieve the file 779 over the network. 780 \item Write a file specified by a URI --- it may simply write the file 781 if it exists on the particular node, or it may copy the file over 782 the network. It should also register with the IPSD that a file 783 specified by a URI has been written. 784 \item Delete a file specified by a URI --- it may simply delete the 785 file if it exists on the particular node, or it may delete the file 786 over the network. 787 \item Interface with the IPSD to return a URI given one of the 788 identifiers in \S\ref{sec:ipsd}. 736 789 \end{itemize} 737 790 738 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 739 740 \subparagraph{IPP Pixel Server Node Agent (IPSNA)} 741 742 The IPSNA runs on a node to perform the operations required by the IPSS 743 and IPSIOL. This includes: 744 \begin{itemize} 745 \item Retrieve data from an external source (e.g.\ the Summit Pixel 746 Server) to a local disk as requested by the IPSS. 747 \item Copy data from one of the other nodes to a local disk as 748 requested by the IPPS. 749 \item Delete data from a local disk as requested by the IPSS or 750 through the IPSIOL. 751 \item Respond to requests for data made by nodes through the IPSIOL. 752 \end{itemize} 753 754 \tbd{The Agent does not wear a suit, nor does it know kung fu.} 755 756 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 757 758 \subparagraph{IPP Pixel Server I/O Library (IPSIOL)} 759 760 The IPSIOL is the workhorse of the IPP Pixel Server system. It is a 761 library for reading and writing pixel data to the IPP Pixel Server. 762 It will generally be used on the nodes, although the IPSS will also 763 make use of it. The IPSIOL will be able to: 764 \begin{itemize} 765 \item Lookup the location of new and reduced data for an exposure. 766 \item Lookup the location of the appropriate calibration data for an 767 exposure. 768 \item Open a file at the location returned by a lookup. 769 \item Write new data and metadata to a specified location. 770 \item Update the storage location and/or metadata of any data. 771 \item Remove the storage location of data and metadata that has been 772 deleted. 773 \end{itemize} 774 775 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 776 777 \paragraph{Pixel Data Flow} 778 779 Below we sketch out the intended sequence of events for common 780 operations. 781 782 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 783 784 \subparagraph{Acquisition of data from the Summit Pixel Server} 785 791 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 792 793 \paragraph{Pixel Data Flow Examples} 794 795 For examples of the operation of the IPS, below we sketch out the 796 intended sequence of events for common operations. 797 798 Reads during processing: 786 799 \begin{enumerate} 787 \item The Summit Pixel Server sends a ``new data notification'' to the 788 IPSS. 789 \item The IPSS generates the {\em retrieve data} tasks which are to be 790 executed on specific nodes (i.e.\ those which will reduce the raw 791 data). 792 \item Each specified node spawn IPSDRAs which downloads the image data 793 from the Summit Pixel Server to the disk physically mounted on the 794 node. 795 \item The node reports the finished task to the IPSS. 796 \item The IPSS updates the IPSD to the new storage location. 797 \item The IPSS notifies the IPP Scheduler that new 798 data is available. 800 \item A processing stage has been passed (from the Scheduler) the URI 801 for an image that it needs to load into memory. 802 \item The processing stage uses the IPSIOL to open the image. 803 \item The processing stage reads the image into local memory in the 804 usual manner. 805 \item The processing stage closes the image using the IPSIOL. 799 806 \end{enumerate} 800 807 801 \begin{figure} 802 \begin{center} 803 %\resizebox{!}{20cm}{\includegraphics{data_stack8.epsi}} 804 \caption{ \label{acquisition} Pixel Data Flow: Acquisition} 805 \end{center} 806 \end{figure} 807 808 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 809 810 \subparagraph{Processing Reads} 811 808 Writes during processing: 812 809 \begin{enumerate} 813 \item A processing stage needs pixel data, e.g.\ the appropriate 814 flat-field for an image being processed. 815 \item The processing stage uses the IPSIOL to look up the location of 816 the appropriate image. 817 \item The processing stage retrieves the required pixel data using the 818 IPSIOL and loads it into local memory. 810 \item A processing stage has been passed (from the Scheduler) the URI 811 for an image that needs to be saved, e.g., a subtracted image. 812 \item The processing stage uses the IPSIOL to open the image. 813 \item The processing stage writes the image in the usual manner. 814 \item The processing stage closes the image using the IPSIOL. 819 815 \end{enumerate} 820 816 821 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 822 823 \subparagraph{Processing Writes} 824 817 Note how the IPSIOL has insulated the processing stage from the details 818 of the reading and writing. 819 820 Maintenance: 825 821 \begin{enumerate} 826 \item A processing stage has produced pixel data which should be saved, e.g.\ the 827 subtracted image. 828 \item The processing stage uses the IPSIOL to look up the location the 829 image should be written to. 830 \item The processing stage uses the IPSIOL to write the image. 822 \item A human operator decides that all the pixel data for chip 12 823 should be stored on node 3. 824 \item Operator plugs this into the IPSM. 825 \item The IPSM queries the IPSD using the IPSIOL. 826 \item The IPSD returns the URIs for all the pixel data for chip 12. 827 \item The IPSM generates processing tasks to be executed on the nodes 828 that will copy the data from the old URIs to a new URI which 829 specifies node 3. 830 \item The IPSM generates processing tasks to be executed on the nodes 831 that deletes the data pointed to by the old URIs. 832 \item The IPSM reports success to the operator. 831 833 \end{enumerate} 832 834 833 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 834 835 \subparagraph{Processing Updates} 836 835 Client Science Pipelines: 837 836 \begin{enumerate} 838 \item A processing stage needs to update pixel data, e.g.\ the 839 static sky image. 840 \item The processing stage uses the IPSIOL to look up the location of 841 the appropriate image. 842 \item The processing stage retrieves the required pixel data using the 843 IPSIOL and loads it into local memory. 844 \item The processing stage modifies the pixel data in local memory. 845 \item The processing stage uses the IPSIOL to write the image to the 846 previous location with an overwrite flag. 837 \item A CSP wants some pixel data. 838 \item The CSP queries the IPSD using the IPSIOL (e.g., asking for a 839 particular exposure or sky cell). 840 \item The IPSD returns the URI for the pixel data. 841 \item The CSP opens the image using the IPSIOL and the URI. 842 \item The CSP reads the pixel data into memory in the usual manner. 843 \item The CSP closes the image using the IPSIOL. 847 844 \end{enumerate} 848 849 \begin{figure}850 \begin{center}851 %\resizebox{!}{20cm}{\includegraphics{data_processing1.epsi}}852 \caption{ \label{processing} Pixel Data Flow: Processing}853 \end{center}854 \end{figure}855 845 856 846 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 921 911 \multicolumn{2}{l}{\bf Weather} \\ 922 912 Time & The time the weather information was measured. \\ 923 Temperature & The temperature at \tbd{some place. Will likely want temperatures for a range of locations: external, dome, secondary, primary for starters.} \\ 913 Temperature & The temperature at \tbd{some place. Will likely want temperatures for a range of locations: 914 external, dome, secondary, primary for starters.} \\ 924 915 Humidity & The relative humidity. \\ 925 916 Pressure & The (external) atmospheric pressure. \\ … … 1269 1260 \paragraph{Metadata Queries} 1270 1261 1262 \tbd{How is the Metadata DB queried?} 1263 1271 1264 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1272 1265 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 1279 1272 associated with specific input images, moving objects associated with 1280 1273 specific chips. Detailed requirements for the IOD are described in 1281 the IOD subsystem specification document xxx-xxx-xxxx. 1282 1283 Reference Astrometry Catalogs: 1284 USNO-B 1285 2MASS 1286 HST-GSC 1287 Tycho 1288 etc? 1274 \tbd{the IOD subsystem specification document xxx-xxx-xxxx}. 1289 1275 1290 1276 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 1313 1299 \paragraph{Object DB Table Contents} 1314 1300 1301 \tbd{Dunno yet} 1302 1315 1303 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1316 1304 1317 1305 \paragraph{Object DB Queries} 1318 1306 1307 \tbd{Dunno yet} 1308 1319 1309 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1320 1310 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 1322 1312 \subsubsection{Controller} 1323 1313 1324 The IPP Controller is responsible for connecting the low-level modules 1325 together to define the various processing subsystems. The Controller 1326 manages the parallel processing of these subsystems in the IPP 1327 computer hardware environment and reports the processing status to the 1328 IMD. The Controller must be able to manage more than a single 1314 The IPP Controller is responsible for managing the processing stages. 1315 The Controller manages the parallel processing of these stages in the 1316 IPP computer hardware environment and reports the completion to the 1317 Scheduler. The Controller must be able to manage more than a single 1329 1318 processing thread to make maximum use of available processor 1330 resources. Some analysis jobs, such as operations on the chips, must 1331 be allocated preferentially to specified processors, while others must 1332 be distributed to the available machines in the cluster. 1333 1334 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1335 1336 \paragraph{Components} 1337 1338 The Controller consists of the following components: the Controller 1339 daemon, the remote clients, and the user clients. 1340 1341 The Controller daemon maintains a table of processing nodes available 1342 to it and the status of those nodes. When the controller daemon 1343 starts, it attempts to launch a remote client on each of the available 1344 processing nodes. Processing nodes which are not responsive are 1345 placed into an inactive state and retried occasionally. 1346 1347 The Controller daemon also maintains three tables of processing jobs: 1348 pending jobs, active jobs, and completed jobs. The pending jobs are 1349 those which have not yet been performed. The active jobs are those 1319 resources. 1320 1321 The Controller must honour demands that a processing stage run on a 1322 particular Node. Requests that a processing stage run on a particular 1323 node should be honoured if possible. Where no restriction is placed 1324 on the choice of Node choice by the Scheduler, the processing stage 1325 may be run on any available Node. 1326 1327 The Controller maintains a table of processing nodes available to it 1328 and the status of these Nodes. When the Controller starts, it 1329 attempts to launch a Node Agent on each of the available processing 1330 nodes. Modes which are not responsive are placed into an inactive 1331 state and retried occasionally. 1332 1333 The Controller also maintains three tables of processing jobs: pending 1334 stages, active stages, and completed stages. The pending stages are 1335 those which have not yet been performed. The active stages are those 1350 1336 currently being performed on one of the remote nodes. The completed 1351 jobs are those which have finished, either successfully or with an1337 stages are those which have finished, either successfully or with an 1352 1338 error state. The Controller daemon monitors the collection of remote 1353 clients and sends them new pending jobs when they become free. 1354 1355 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1356 1357 \paragraph{Remote Clients} 1358 1359 The remote clients communicate with the Controller daemon via a socket 1360 connection. They execute jobs upon request by the controller. A job 1361 is executed in the UNIX user space, and is run as a fork by the remote 1362 client. The remote client must monitor the standard error and 1363 standard output of the job and save them in separate buffers. If the 1364 process dies, the remote client must detect the crash. The remote 1365 client must respond to various commands from the controller daemon. 1366 The commands include: 1367 1368 {\bf \em report status}: Return the state of the client (idle, busy, 1369 done), the state of the current job\footnote{Note that a job is 1370 considered ``current'' until it is cleared with {\em clear job} --- 1371 even if it has crashed or completed.} (`none', `busy', `crash', 1372 `done'), and the exit status of the current job (`none', 0--256). The 1373 three states of the client indicate that the client has no current job 1374 (`idle'), that it has a job which is still running (`busy'), and that 1375 it has a job which has completed. The job states indicate the there 1376 is no current job (`none'), that the current job is running (`busy'), 1377 that the current job has crashed (`crash'), and that the current job 1378 has exited gracefully (`done'). The exit state is the exit state 1379 reported by the job (0--256 with 0 indicating a successful completion) 1380 or is an indication that there is no current job (`none'). 1381 1382 {\bf \em report stdout}: Send and flush the current stdout buffer. The 1383 remote client will return the complete contents of the stdout buffer 1384 via a buffered write and flush the buffer when it is finished. The 1385 remote client will not accept more data on the stdout buffer from the 1386 current job until the send is complete and the buffer is flushed. The 1387 daemon must accept all of the buffer output. 1388 1389 {\bf \em report stderr}: Identical to `report stdout' for stderr. 1390 1391 {\bf \em kill job}: remote client should send a kill signal to the 1392 current job. When the job has exited, the remote client should set 1393 the job status to `crash' and the client status to `done'. 1394 1395 {\bf \em clear job}: The remote client should set the current job state 1396 to `none' and the client state to `idle'. If a job is currently 1397 running, it should be killed before the job is cleared. 1398 1399 {\bf \em start job [command]}: execute the given command. The command 1400 should be a standard unix command without command line redirection or 1401 backgrounding. 1402 1403 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1404 1405 \paragraph{User Clients} 1406 1407 The user clients send commands and jobs to the controller. The user 1408 clients interact with the Controller daemon via a socket. The user 1409 clients, which may be subsystems external to the Controller, interact 1410 with the Controller daemon via the socket connection using a defined 1411 set of commands. The user clients can send new jobs to the controller 1412 daemon, monitor the current job tables, obtain status information on 1413 the completed jobs, change the list of available processing nodes, and 1414 send kill commands for specific jobs to the remote clients. 1415 1416 {\bf \em new job} The new jobs are sent to the controller in the form 1417 of UNIX commands, along with optional specified processing nodes. If 1418 the processing node is not specified, then the controller will select 1419 a node as one becomes available. 1420 1421 {\bf \em kill job} The user client may kill an existing 1422 job. \tbd{allow clients to kill jobs sent by other clients? how does 1423 the client specify the job to be killed? is this a necessary 1424 function?} 1425 1426 {\bf \em get status} The user client may request the current status of 1427 the controller, including the list of pending, active, and completed 1428 jobs and the status of the individual jobs. 1339 clients and sends them new pending stages when they become free. 1340 1341 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1342 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1343 1344 \subsubsection{Node Agents} 1345 1346 A Node Agent runs on each of the individual nodes to perform the 1347 processing stages as directed by the Controller. The Node Agents 1348 communicate with the Controller via a socket connection. 1349 1350 A processing stage is executed in the UNIX user space, and is run as a fork by the 1351 Node Agent. The Node Agent must monitor the standard error and 1352 standard output of the processing stage and save them in separate buffers. If the 1353 process dies, the Node Agent must detect the crash. The Node Agent 1354 must respond to various commands from the Controller. 1355 1356 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1357 1358 \paragraph{Report status} 1359 1360 The Node Agent returns the state of the Node (idle, busy, done), the 1361 state of the current processing stage\footnote{Note that a processing 1362 stage is considered ``current'' until it is cleared with {\em clear 1363 processing stage} --- even if it has crashed or completed.} (`none', 1364 `busy', `crash', `done'), and the exit status of the current 1365 processing stage (`none', 0--256). 1366 1367 The three states of the Node indicate that the client has no current 1368 processing stage (`idle'), that it has a processing stage which is 1369 still running (`busy'), or that it has a processing stage which has 1370 completed. 1371 1372 The processing stage states indicate the there is no current 1373 processing stage (`none'), that the current processing stage is 1374 running (`busy'), that the current processing stage has crashed 1375 (`crash'), or that the current processing stage has exited gracefully 1376 (`done'). The exit state is the exit state reported by the processing 1377 stage (0--256 with 0 indicating a successful completion) or is an 1378 indication that there is no current processing stage (`none'). 1379 1380 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1381 1382 \paragraph{Report stdout} 1383 1384 Send and flush the current stdout buffer. The Node Agent will return 1385 the complete contents of the stdout buffer via a buffered write and 1386 flush the buffer when it is finished. The Node Agent will not accept 1387 more data on the stdout buffer from the current processing stage until 1388 the send is complete and the buffer is flushed. The daemon must 1389 accept all of the buffer output. 1390 1391 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1392 1393 \paragraph{Report stderr} 1394 1395 Identical to `report stdout', but for stderr. 1396 1397 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1398 1399 \paragraph{Kill processing stage} 1400 1401 The Node Agent should send a kill signal to the current processing 1402 stage. When the processing stage has exited, the Node Agent should 1403 set the processing stage status to `crash' and the Node status to 1404 `done'. 1405 1406 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1407 1408 \paragraph{Clear processing stage} 1409 1410 The Node Agent should set the current processing stage state to `none' 1411 and the Node state to `idle'. If a processing stage is currently 1412 running, it should be killed before the processing stage is cleared. 1413 1414 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1415 1416 \paragraph{Start processing stage} 1417 1418 The Node Agent forks a specified command. The command should be a 1419 standard UNIX command without command line redirection or 1420 backgrounding. For this reason, the Node Agent must provide a layer 1421 of security, for example, by employing SSL authentication. 1422 1423 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1424 1425 \paragraph{Matrix} 1426 1427 \tbd{The Node Agent does not wear a suit, nor does it know kung fu.} 1429 1428 1430 1429 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 1433 1432 \subsubsection{Scheduler} 1434 1433 1435 The IPP Scheduler is responsible for coordinating the IPP subsystems 1436 and for initiating the various processing systems, executed by the IPP 1437 Controller, based on the state of the survey as reflected by the IPP 1438 Metadata Database (IMD). The Scheduler must send calibration data 1439 requests to the PTS, including required flat-field images, flat-field 1440 correction observations, or other specialized observations needed to 1441 improve the calibrations. The Scheduler must balance the need for 1442 improved calibrations with the need to process the science images in a 1443 timely manner given the capabilities of the science pipelines. 1444 1445 \tbd{how are the schedules defined? how are dependencies between jobs 1446 defined? scheduler must communicate with the controller (as a user 1447 client) to send new jobs}. 1448 1449 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1450 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1451 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1452 1453 \subsection{Analysis Stages} 1434 The IPP Scheduler is responsible for initiating the various processing 1435 stages (which are executed by the IPP Controller), based on the state 1436 of the survey as reflected by the IPP Metadata Database (IMD). 1437 1438 The Scheduler shall maintain a list of processing stages, as well as 1439 the required input and dependencies for each of the processing stagesFor example, the 1440 dependencies for copying pixel data from OATS may be: 1441 \begin{itemize} 1442 \item OATS has new pixel data available; 1443 \item The new pixel data has not been copied. 1444 \end{itemize} 1445 Similarly, the dependencies for executing Phase 2 processing on a chip 1446 may be: 1447 \begin{itemize} 1448 \item The chip pixel data has been copied. 1449 \item Phase 1 has run successfully on the metadata for the FPA to which 1450 the chip belongs. 1451 \item A reduced image (i.e., output from Phase 2) does not already 1452 exist. 1453 \end{itemize} 1454 1455 When the dependencies are satisfied, the Scheduler shall prepare for 1456 execution the particular processing stage on the appropriate data. 1457 The Scheduler must query the Metdata DB for the most appropriate 1458 calibration data, if required. The processing stage should be 1459 filtered through the IPSDLO in order to assign the processing stage to 1460 a particular Node (if desired) and to determine the URIs for the 1461 required inputs. The processing stage is then passed to the 1462 Controller. 1463 1464 The Scheduler must also be able to send requests for new calibration 1465 data to OATS, including required flat-fields, flat-field correction 1466 observations, or other specialized observations needed to improve the 1467 calibrations. The Scheduler must balance the need for improved 1468 calibrations with the need to process the science images in a timely 1469 manner given the capabilities of the science pipelines. 1470 1471 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1472 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1473 1474 \subsubsection{System UI} 1475 1476 A user interface allows a human operator to monitor the Controller and 1477 Scheduler through some user interface (UI). The System UI may 1478 interact with the Controller and Scheduler via a socket connection 1479 using a defined set of commands. 1480 1481 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1482 1483 \paragraph{Execute processing stage} 1484 1485 A new processing stages is sent to the Scheduler. The Scheduler may 1486 filter the processing stages through the IPSDLO, or it may be 1487 prevented from doing so by the user. The Scheduler then passes the 1488 processing stages to the Controller for execution. 1489 1490 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1491 1492 \paragraph{Kill processing stage} 1493 1494 The user may kill an existing processing stage. The Controller is 1495 commanded to kill the particular processing stage. 1496 1497 \tbd{Should we allow a System UI to kill processing stages sent by 1498 other System UIs?} 1499 1500 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1501 1502 \paragraph{Get status} 1503 1504 The System UI may request the current status of the Controller, 1505 including the list of pending, active, and completed processing stages 1506 and the status of the individual processing stages. 1507 1508 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1509 1510 \paragraph{Available Nodes} 1511 1512 The System UI may view and configure the list of Nodes available to 1513 the Controller (e.g., to remove a Node temporarily for maintenance). 1514 1515 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1516 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1517 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1518 1519 \subsection{Processing Stages} 1520 1521 In this section, we review the processing stages which are executed on 1522 the Nodes. 1454 1523 1455 1524 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 1458 1527 \subsubsection{Overview} 1459 1528 1460 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1461 1462 \paragraph{Science Image Pipelines} 1463 1464 The IPP science image pipelines perform analyses on the night-sky 1465 science images to extract the science data from these images. These 1466 consist of: Phase 1, the image processing preparation stage; Phase 2, 1467 the image reduction stage; Phase 3, the exposure analysis stage; and 1468 Phase 4, the image combination stage. These pipelines must process 1469 the images in a timely manner so that the incoming data stream will 1470 not overload the IPS. The decision to execute a specific pipeline for 1471 a specific dataset is made by the Scheduler, which sends the 1472 infomation to the Controller. The Controller executes the pipeline 1473 for the data on an appropriate machine and monitors the success or 1474 failure of the job. 1475 1476 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1477 1478 \paragraph{Calibration Image Pipelines} 1479 1480 The IPP Calibration Image Pipelines perform the tasks needed to 1481 generate high-quality calibration images from the input image 1482 dataset. These operations may be performed on whatever timescales are 1483 appropriate and necessary to maintain the quality and relevance of the 1484 calibration images. There are four distinct types of calibration 1485 image pipelines: the basic detrend creation pipeline, the photometric 1486 correction image creation pipeline, the fringe pattern generation 1487 pipeline, and the sky foreground pattern generation pipeline. 1488 1489 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1490 1491 \paragraph{Reference Catalog Pipelines} 1492 1493 The IPP reference catalog pipelines use the data in the IPP Metadata 1494 Database and the IPP Object Database to determined improved 1495 astrometric and photometric calibration references. 1496 1497 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1498 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1499 1500 \subsubsection{Phase 1 : image processing preparation} 1501 1502 Phase 1 : image processing preparation 1529 The processing stages are the software that process data. These 1530 processing stages are divided into five categories which are 1531 summarised in \S\ref{sec:processingStages}. Each of the processing 1532 stages are described below. 1533 1534 The processing stages are initiated by the Scheduler, parallized and 1535 managed by the Controller, and executed through the Node Agents on the 1536 nodes. Processing stages are purely serial, and so they may be run on 1537 a single node at once without the need for interprocess communication. 1538 1539 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1540 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1541 1542 \subsubsection{Retrieval} 1543 1544 The retrieval stages simply retrieve pixel data from an external 1545 source (ordinarily OATS at the Summit, but it could conceivably be 1546 some other external source) and store it on the nodes. 1547 1548 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1549 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1550 1551 \subsubsection{Science Image Processing} 1552 1553 The IPP science image processing stages perform analyses on the 1554 night-sky science images to extract the science data from these 1555 images. These consist of: Phase 1, the image processing preparation 1556 stage; Phase 2, the image reduction stage; Phase 3, the exposure 1557 analysis stage; and Phase 4, the image combination stage. These 1558 pipelines must process the images in a timely manner so that the 1559 incoming data stream will not overload the IPS. The decision to 1560 execute a specific pipeline for a specific dataset is made by the 1561 Scheduler, which sends the infomation to the Controller. The 1562 Controller executes the pipeline for the data on an appropriate 1563 machine and monitors the success or failure of the processing stage. 1564 1565 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1566 1567 \paragraph{Phase 1: image processing preparation} 1503 1568 1504 1569 The Phase 1 system operates on data from each FPA to calculate basic … … 1536 1601 1537 1602 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1538 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1539 1540 \subsubsection{Phase 2 : image reduction : new version} 1603 1604 \paragraph{Phase 2 : image reduction : new version} 1541 1605 1542 1606 \tbd{how long are processed images kept?} … … 1548 1612 \tbd{what is the absolute astrometry accuracy at phase 2? 0.1 arcsec 1549 1613 == 0.33 pix?} 1614 1615 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1616 1617 \subparagraph{Concept} 1618 1619 Phase~2 processing within the \PS{} image processing pipeline is 1620 the de-trend stage, where the images from the detector are processed 1621 to remove instrumental signatures. 1550 1622 1551 1623 \begin{figure} … … 1555 1627 \end{center} 1556 1628 \end{figure} 1557 1558 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1559 1560 \paragraph{Phase 2 Concept}1561 1562 Phase~2 processing within the \PS{} image processing pipeline is1563 the de-trend stage, where the images from the detector are processed1564 to remove instrumental signatures. Phase~2 processing is purely serial,1565 and so each can be run on a single node from start to finish.1566 1629 1567 1630 Prior to Phase~2, the Phase~1 process operates on an entire telescope … … 1588 1651 These modules are each explained below. 1589 1652 1590 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1591 1592 \ paragraph{Form OT Kernel}1653 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1654 1655 \subparagraph{Form OT Kernel} 1593 1656 1594 1657 The first module for Phase~2 is to form the OT kernel from the image … … 1597 1660 used to convolve by. The output is the OT convolution kernel. 1598 1661 1599 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1600 1601 \ paragraph{Convolve de-trend images}1662 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1663 1664 \subparagraph{Convolve de-trend images} 1602 1665 1603 1666 This module convolves the de-trend images with the OT convolution kernel … … 1623 1686 Each of these will be used for a later module. 1624 1687 1625 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1626 1627 \ paragraph{Overscan Subtraction}1688 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1689 1690 \subparagraph{Overscan Subtraction} 1628 1691 1629 1692 This module corrects the object exposures for the electronic pedestal … … 1651 1714 These will be used for a subsequent module. 1652 1715 1653 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1654 1655 \ paragraph{Trim}1716 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1717 1718 \subparagraph{Trim} 1656 1719 1657 1720 This module trims the object image and each of the calibration frames to … … 1672 1735 modules. 1673 1736 1674 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1675 1676 \ paragraph{Non-Linearity Correction}1737 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1738 1739 \subparagraph{Non-Linearity Correction} 1677 1740 1678 1741 This module corrects images for non-linearity in the detector. The … … 1688 1751 is the corrected object image, which is used for a later module. 1689 1752 1690 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1691 1692 \ paragraph{Flat field}1753 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1754 1755 \subparagraph{Flat field} 1693 1756 1694 1757 This module corrects the object image for variations in sensitivity over … … 1709 1772 Both of these will be used in later modules. 1710 1773 1711 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1712 1713 \ paragraph{Subtract sky}1774 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1775 1776 \subparagraph{Subtract sky} 1714 1777 1715 1778 This module subtracts the sky background from the object image. The … … 1731 1794 which is used for the next module. 1732 1795 1733 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1734 1735 \ paragraph{Identify CRs by morphology}1796 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1797 1798 \subparagraph{Identify CRs by morphology} 1736 1799 1737 1800 This module identifies cosmic rays (or other hot pixels missed in the … … 1751 1814 which is sent to the IPP Pixel Server. 1752 1815 1753 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1754 1755 \ paragraph{Find objects}1816 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1817 1818 \subparagraph{Find objects} 1756 1819 1757 1820 This module finds objects on the object image. The inputs are: … … 1768 1831 object image. 1769 1832 1770 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1771 1772 \ paragraph{Bright object postage stamps}1833 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1834 1835 \subparagraph{Bright object postage stamps} 1773 1836 1774 1837 This module saves postage stamps of bright objects, so that extra care … … 1786 1849 the IPP Pixel Server. 1787 1850 1788 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1789 1790 \ paragraph{Metadata}1851 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1852 1853 \subparagraph{Metadata Required} 1791 1854 1792 1855 The following metadata associated with the images are required for … … 1806 1869 \end{itemize} 1807 1870 1808 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1809 1810 \ paragraph{Pixel Masks}1871 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1872 1873 \subparagraph{Pixel Masks} 1811 1874 \label{ap:masks} 1812 1875 … … 1829 1892 affect the flux in neighbouring pixels 1830 1893 1831 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1832 1833 \ paragraph{Object Catalogs}1894 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1895 1896 \subparagraph{Object Catalogs} 1834 1897 \label{ap:catalogs} 1835 1898 … … 1854 1917 1855 1918 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1856 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1857 1858 \subsubsection{Phase 3 : exposure analysis} 1859 1860 \begin{figure} 1861 \begin{center} 1862 \resizebox{8cm}{!}{\includegraphics{pics/phase3}} 1863 \caption{ \label{phase3} Phase 3 dataflow} 1864 \end{center} 1865 \end{figure} 1919 1920 \paragraph{Phase 3 : exposure analysis} 1866 1921 1867 1922 The Phase 3 system operates on the combined Phase 2 results from an … … 1881 1936 \end{itemize} 1882 1937 1938 \begin{figure} 1939 \begin{center} 1940 \resizebox{8cm}{!}{\includegraphics{pics/phase3}} 1941 \caption{ \label{phase3} Phase 3 dataflow} 1942 \end{center} 1943 \end{figure} 1944 1883 1945 In the Phase 2 analysis, the astrometric solutions were determined 1884 1946 independently for each chip. These solutions are limited by the … … 1914 1976 1915 1977 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1916 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1917 1918 \subsubsection{Phase 4 : image combination} 1978 1979 \paragraph{Phase 4 : image combination} 1980 1981 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1982 1983 \subparagraph{Phase 4 Concept} 1984 1985 Phase 4 processing within the \PS{} image processing pipeline is 1986 the final stage of processing for a science image. It operates on 1987 each sky cell that has overlapping imaging data from the exposure(s) 1988 being processed, and produces the main output image data products of 1989 the pipeline --- the difference images and a deep static sky image --- 1990 along with the associated catalogs of static and variable sources. 1919 1991 1920 1992 \begin{figure} … … 1924 1996 \end{center} 1925 1997 \end{figure} 1926 1927 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1928 1929 \paragraph{Phase 4 Concept}1930 1931 Phase 4 processing within the \PS{} image processing pipeline is1932 the final stage of processing for a science image. It operates on1933 each sky cell that has overlapping imaging data from the exposure(s)1934 being processed, and produces the main output image data products of1935 the pipeline --- the difference images and a deep static sky image ---1936 along with the associated catalogs of static and variable sources.1937 1998 1938 1999 Prior to Phase 4, the Phase 3 process produces the following products: … … 1951 2012 These modules are each explained below. 1952 2013 1953 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1954 1955 \ paragraph{Combine Images}2014 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2015 2016 \subparagraph{Combine Images} 1956 2017 1957 2018 The first module for Phase 4 is to combine the images from each … … 1995 2056 \end{enumerate} 1996 2057 1997 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1998 1999 \ paragraph{Identify Sources}2058 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2059 2060 \subparagraph{Identify Sources} 2000 2061 2001 2062 This module identifies sources in the combined sky cell image. The … … 2008 2069 the IPP Object Database. 2009 2070 2010 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2011 2012 \ paragraph{Transient Identification}2071 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2072 2073 \subparagraph{Transient Identification} 2013 2074 2014 2075 This module identifies variable/moving sources. The inputs are: … … 2057 2118 \end{enumerate} 2058 2119 2059 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2060 2061 \ paragraph{Add to Static Sky}2120 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2121 2122 \subparagraph{Add to Static Sky} 2062 2123 2063 2124 This module adds the combined sky cell image into the static sky, so … … 2090 2151 \end{enumerate} 2091 2152 2092 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%2093 2094 \ paragraph{Notes}2153 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2154 2155 \subparagraph{Notes} 2095 2156 2096 2157 \begin{itemize} … … 2108 2169 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2109 2170 2110 \subsubsection{Basic detrend image creation} 2171 \paragraph{Calibration Image Processing} 2172 2173 The IPP Calibration Image Pipelines perform the tasks needed to 2174 generate high-quality calibration images from the input image 2175 dataset. These operations may be performed on whatever timescales are 2176 appropriate and necessary to maintain the quality and relevance of the 2177 calibration images. There are four distinct types of calibration 2178 image pipelines: the basic detrend creation pipeline, the photometric 2179 correction image creation pipeline, the fringe pattern generation 2180 pipeline, and the sky foreground pattern generation pipeline. 2181 2182 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2183 2184 \subparagraph{Cal 1: Basic detrend image creation} 2111 2185 2112 2186 The basic detrend image creation pipeline collects the appropriate 2113 input detrend images (bias, dark, flat, etc?) and generates a master2114 image by combining the input images in some optimal way2187 input detrend images (bias, dark, dome flat, etc) and generates a 2188 master image by combining the input images in some optimal way 2115 2189 \tbd{median/sigma-clipping/etc}. The master image is used to 2116 2190 determine input image residuals so that poor input images can be 2117 2191 iteratively rejected. 2118 2192 2119 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2120 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2121 2122 \subsubsection{Fringe pattern and sky foreground model creation} 2193 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2194 2195 \subparagraph{Cal 2: Fringe pattern and sky foreground model creation} 2123 2196 2124 2197 The fringe model creation and sky foreground model creation pipelines … … 2129 2202 structure: both require processing of the input images, both determine 2130 2203 a set of principal components as a function of specific input 2131 parameters. 2132 2133 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2134 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2135 2136 \subsubsection{Photometric flat correction image creation} 2204 parameters. 2205 2206 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2207 2208 \subparagraph{Cal 3: Photometric flat correction image creation} 2137 2209 2138 2210 The photometric flat-field correction uses images which have been … … 2146 2218 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2147 2219 2220 \paragraph{Calibration Test Processing} 2221 2222 The calibration test processing tests observations to determine if the 2223 calibrations need updating. 2224 2225 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2226 2227 \subparagraph{CalTest 1: Detrend frame testing} 2228 2229 A newly-acquired master detrend frame, having been combined (using Cal 2230 1 or Cal 2) are simply differenced from the old detrend frames. If 2231 there exist significant residuals, the newly-acquired detrend frame 2232 is adopted as the detrend frame of choice. 2233 2234 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2235 2236 \subparagraph{CalTest 2: Photometric flat correction testing} 2237 2238 Newly-acquired photometry of many objects (initially, this may be 2239 standard star fields, but once the PS1 catalog is available, it should 2240 be possible to use all photometry acquired over a given time period) 2241 are compared with previously-acquired photometry. If there exist 2242 significant residuals, a new photometric flat correction should be 2243 produced from the newly-acquired photometry. 2244 2245 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2246 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2247 2248 \paragraph{Reference Catalog Processing} 2249 2250 The IPP reference catalog pipelines use the data in the IPP Metadata 2251 Database and the IPP Object Database to determined improved 2252 astrometric and photometric calibration references. 2253 2254 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2255 2256 \subparagraph{AstroRef: Astrometric Reference Catalog creation} 2257 2258 This processing stage shall use many observations over a given time 2259 period to fit a consistent global astrometric solution, resulting in a 2260 high quality and internally-consistent astrometric catalog that may be 2261 published. 2262 2263 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2264 2265 \subparagraph{PhotoRef: Photometric Reference Catalog creation} 2266 2267 This processing stage shall use many observations over a given time 2268 period to fit a consistent global photometric solution, resulting in a 2269 high quality and internally-consistent photometric catalog that may be 2270 published. 2271 2272 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2273 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2274 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2275 2276 \subsection{Reference Catalogs} 2277 2278 The IPP will employ reference catalogs in order to calibrate the 2279 photometry and astrometry. 2280 2281 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2282 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2283 2148 2284 \subsubsection{Astrometric Reference Catalog} 2149 2285 … … 2162 2298 sufficient. 2163 2299 2164 For PS4, the PS1 catalog ueshall be used.2300 For PS4, the PS1 catalog shall be used. 2165 2301 2166 2302 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 2170 2306 \subsection{Modules} 2171 2307 2308 \tbd{What goes here? There will be modules?} 2309 2172 2310 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2173 2311 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 2176 2314 \subsection{\PS{} Library} 2177 2315 2316 See PSDC-430-007 for the design of the \PS{} Library, PSLib. 2317 2178 2318 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2179 2319 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 2181 2321 2182 2322 \subsection{Internal Interfaces} 2323 2324 \tbd{To be updated and expanded.} 2183 2325 2184 2326 Internal interfaces consist of queries to the IMD or IPS, insertion of … … 2208 2350 \subsection{External Interfaces} 2209 2351 2352 \tbd{This whole section to be updated.} 2353 2210 2354 This subsection describes the interfaces between the IPP and other 2211 2355 \PS{} systems and the external clients. The interfaces are 2212 illustrated in Figure \tbd{NN}. Incoming data is received by either2213 the IPS (pixels), the IMD (metadata), or the IOD (objects). Requests 2214 for data by external clients are also made to these three databases. 2215 Requests for data made by the IPP are generated by the IPP Scheduler 2216 or the science processing pipelines.2356 illustrated in Figure~\ref{fig:functionalities}. Incoming data is 2357 received by either the IPS (pixels), the IMD (metadata), or the IOD 2358 (objects). Requests for data by external clients are also made to 2359 these three databases. Requests for data made by the IPP are 2360 generated by the IPP Scheduler or the science processing pipelines. 2217 2361 2218 2362 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Note:
See TracChangeset
for help on using the changeset viewer.
