LSSTApplications  1.1.2+25,10.0+13,10.0+132,10.0+133,10.0+224,10.0+41,10.0+8,10.0-1-g0f53050+14,10.0-1-g4b7b172+19,10.0-1-g61a5bae+98,10.0-1-g7408a83+3,10.0-1-gc1e0f5a+19,10.0-1-gdb4482e+14,10.0-11-g3947115+2,10.0-12-g8719d8b+2,10.0-15-ga3f480f+1,10.0-2-g4f67435,10.0-2-gcb4bc6c+26,10.0-28-gf7f57a9+1,10.0-3-g1bbe32c+14,10.0-3-g5b46d21,10.0-4-g027f45f+5,10.0-4-g86f66b5+2,10.0-4-gc4fccf3+24,10.0-40-g4349866+2,10.0-5-g766159b,10.0-5-gca2295e+25,10.0-6-g462a451+1
LSSTDataManagementBasePackage
CatalogControl.h
Go to the documentation of this file.
1 // -*- lsst-c++ -*-
2 
3 /*
4  * LSST Data Management System
5  * Copyright 2008, 2009, 2010 LSST Corporation.
6  *
7  * This product includes software developed by the
8  * LSST Project (http://www.lsst.org/).
9  *
10  * This program is free software: you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation, either version 3 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the LSST License Statement and
21  * the GNU General Public License along with this program. If not,
22  * see <http://www.lsstcorp.org/LegalNotices/>.
23  */
24 
28 #ifndef LSST_AP_MATCH_CATALOGCONTROL_H
29 #define LSST_AP_MATCH_CATALOGCONTROL_H
30 
31 #include <string>
32 #include <vector>
33 
34 #include "lsst/pex/config.h"
35 
36 
37 namespace lsst { namespace ap { namespace match {
38 
39 
45 
46  // pre-computed catalog statistics
48  "Minimum epoch of catalog positions, MJD. If set to NaN, the actual\n"
49  "value will be computed (if required) by scanning the catalog.\n");
50 
52  "Maximum epoch of catalog positions, MJD. If set to NaN, the actual\n"
53  "value will be computed (if required) by scanning the catalog.\n");
54 
56  "Maximum parallax (milliarcsec) of any catalog entry. If catalog\n"
57  "entries have no associated parallax, the value should be set to\n"
58  "0.0 or NaN. A value of NaN will cause the maximum to be computed\n"
59  "(if required) by scanning the catalog.\n");
60 
62  "Maximum angular velocity (milliarcsec/yr) of any catalog entry. If\n"
63  "catalog entries have no associated proper motions, the value should\n"
64  "be set to 0.0 or NaN. A value of NaN will cause the maximum to be\n"
65  "computed (if required) by scanning the catalog. Note that angular\n"
66  "velocity V is related to proper motion components muRa and muDecl\n"
67  "via V = sqrt(muRa**2 + muDecl**2), assuming muRa is in terms of true\n"
68  "angle rather than coordinate angle, i.e. muRa = dRA/dt*cos(decl).\n");
69 
70  // field names and output options
71  LSST_CONTROL_FIELD(fieldNames, std::vector<std::string>,
72  "An array of field (column) names for the catalog. If empty, column\n"
73  "names for the catalog will be obtained from the first catalog record.\n");
74 
75  LSST_CONTROL_FIELD(outputFields, std::vector<std::string>,
76  "An array of names identifying the catalog fields (columns) to preserve\n"
77  "in output tables. A single value equal to '*' will cause all columns\n"
78  "to be output.\n");
79 
80  // position related column names and scaling factors
81  LSST_CONTROL_FIELD(idColumn, std::string,
82  "Name of the unique id column for catalog entries. Must be present in\n"
83  "the catalog. NULL values are illegal.\n");
84 
85  LSST_CONTROL_FIELD(epochColumn, std::string,
86  "Name of the epoch column for catalog entries. If this name is empty\n"
87  "or not found in the catalog, entries will have their epochs set to\n"
88  "the value of the 'epoch' parameter when read in. NULL epoch values\n"
89  "are illegal.\n");
90  LSST_CONTROL_FIELD(epoch, double,
91  "Epoch to assign to catalog entries if the catalog has no epoch\n"
92  "columns; MJD.\n");
93 
94  LSST_CONTROL_FIELD(raColumn, std::string,
95  "Name of the ICRS right ascension column. Must be present in the\n"
96  "catalog. NULL values are illegal.\n");
98  "Scaling factor to apply to ra column values on reading - must convert\n"
99  "from catalog units to radians.\n");
100 
101  LSST_CONTROL_FIELD(declColumn, std::string,
102  "Name of the ICRS declination column. Must be present in the catalog.\n"
103  "NULL values are illegal.\n");
105  "Scaling factor to apply to decl column values on reading - must\n"
106  "convert from catalog units to radians.\n");
107 
108  LSST_CONTROL_FIELD(muRaColumn, std::string,
109  "Name of the right ascension proper motion column. Need not be present\n"
110  "in the catalog. NULL values are acceptable, and cause the catalog\n"
111  "entry to be treated as stationary and infinitely distant.\n");
113  "Scaling factor to apply to muRa column values on reading - must\n"
114  "convert from catalog units to radians per Julian day.\n");
116  "True if the muRa column gives a true angular rate of change\n"
117  "(muRa = dRA/dt*cos(decl)). False if it gives the rate of change\n"
118  "of the coordinate angle (muRa = dRA/dt).\n");
119 
120  LSST_CONTROL_FIELD(muDeclColumn, std::string,
121  "Name of the declination proper motion column. Need not be present\n"
122  "in the catalog. NULL values are acceptable, and cause the catalog\n"
123  "entry to be treated as stationary and infinitely distant.\n");
125  "Scaling factor to apply to muDecl column values on reading - must\n"
126  "convert from catalog units to radians per Julian day.\n");
127 
128  LSST_CONTROL_FIELD(parallaxColumn, std::string,
129  "Name of the parallax column. Need not be present in the catalog.\n"
130  "NULL values are acceptable, and cause the reference catalog entry\n"
131  "to be treated as stationary and infinitely distant.\n");
133  "Scaling factor to apply to parallax column values on reading - must\n"
134  "convert from catalog units to radians.\n");
135 
136  LSST_CONTROL_FIELD(vRadialColumn, std::string,
137  "Name of the radial velocity column. Need not be present in the\n"
138  "catalog (in which case zero radial velocity is assumed). NULL\n"
139  "values are also treated as equivalent to 0.0.\n");
141  "Scaling factor to apply to vRadial column values on reading - must\n"
142  "convert from catalog units to AU per day.\n");
143 
144  CatalogControl();
145  ~CatalogControl();
146 
147  void validate() const;
148 };
149 
150 
151 }}} // namespace lsst::ap::match
152 
153 #endif // LSST_AP_MATCH_CATALOGCONTROL_H
154 
double declScale
&quot;Scaling factor to apply to decl column values on reading - must\n&quot; &quot;convert from catalog units to ra...
double minEpoch
&quot;Minimum epoch of catalog positions, MJD. If set to NaN, the actual\n&quot; &quot;value will be computed (if re...
double muRaScale
&quot;Scaling factor to apply to muRa column values on reading - must\n&quot; &quot;convert from catalog units to ra...
std::vector< std::string > outputFields
&quot;An array of names identifying the catalog fields (columns) to preserve\n&quot; &quot;in output tables...
bool muRaTrueAngle
&quot;True if the muRa column gives a true angular rate of change\n&quot; &quot;(muRa = dRA/dt*cos(decl)). False if it gives the rate of change\n&quot; &quot;of the coordinate angle (muRa = dRA/dt).\n&quot; ;
std::vector< std::string > fieldNames
&quot;An array of field (column) names for the catalog. If empty, column\n&quot; &quot;names for the catalog will be...
std::string muRaColumn
&quot;Name of the right ascension proper motion column. Need not be present\n&quot; &quot;in the catalog...
#define LSST_CONTROL_FIELD(NAME, TYPE, DOC)
Definition: config.h:36
double parallaxScale
&quot;Scaling factor to apply to parallax column values on reading - must\n&quot; &quot;convert from catalog units t...
double raScale
&quot;Scaling factor to apply to ra column values on reading - must convert\n&quot; &quot;from catalog units to radi...
double vRadialScale
&quot;Scaling factor to apply to vRadial column values on reading - must\n&quot; &quot;convert from catalog units to...
double maxEpoch
&quot;Maximum epoch of catalog positions, MJD. If set to NaN, the actual\n&quot; &quot;value will be computed (if re...
std::string epochColumn
&quot;Name of the epoch column for catalog entries. If this name is empty\n&quot; &quot;or not found in the catal...
std::string muDeclColumn
&quot;Name of the declination proper motion column. Need not be present\n&quot; &quot;in the catalog. NULL values are acceptable, and cause the catalog\n&quot; &quot;entry to be treated as stationary and infinitely distant.\n&quot; ;
std::string declColumn
&quot;Name of the ICRS declination column. Must be present in the catalog.\n&quot; &quot;NULL values are illegal...
std::string parallaxColumn
&quot;Name of the parallax column. Need not be present in the catalog.\n&quot; &quot;NULL values are acceptable...
double muDeclScale
&quot;Scaling factor to apply to muDecl column values on reading - must\n&quot; &quot;convert from catalog units to ...
double maxParallax
&quot;Maximum parallax (milliarcsec) of any catalog entry. If catalog\n&quot; &quot;entries have no associated paral...
std::string vRadialColumn
&quot;Name of the radial velocity column. Need not be present in the\n&quot; &quot;catalog (in which case zero radia...
double epoch
&quot;Epoch to assign to catalog entries if the catalog has no epoch\n&quot; &quot;columns; MJD.\n&quot; ; ...
std::string raColumn
&quot;Name of the ICRS right ascension column. Must be present in the\n&quot; &quot;catalog. NULL values are illegal...
double maxAngularVelocity
&quot;Maximum angular velocity (milliarcsec/yr) of any catalog entry. If\n&quot; &quot;catalog entries have no assoc...
std::string idColumn
&quot;Name of the unique id column for catalog entries. Must be present in\n&quot; &quot;the catalog. NULL values are illegal.\n&quot; ;