1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
// This code is generated by generate_code.py, do not modify it manually.
//! This module contains all the known columns in the ucac4_original_valid table.
use crate::traits::{Column, Table};
/// UCAC4 Catalogue
///
/// Reference paper:
/// Zacharias N., et al. 2013, AJ 145, 44
///
/// Original catalogue:
/// DVD sent by author.
/// Catalogue curator:
/// SSDC - ASI Space Science Data Center
/// https://www.ssdc.asi.it/
#[allow(non_camel_case_types)]
pub struct ucac4_original_valid;
impl Table for ucac4_original_valid {
fn string(&self) -> String {
"ucac4_original_valid".to_string()
}
}
/// The columns in the ucac4_original_valid table.
#[allow(non_camel_case_types)]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, strum::Display)]
pub enum Col {
/// The object type flag is used to identify possible problems with a star
/// or the source of data.
/// The object type flag has the following meaning:
///
/// - 0 = good, clean star, no known problem
///
/// - 1 = largest flag of any image = near overexposed star
///
/// - 2 = largest flag of any image = possible streak object
///
/// - 3 = high proper motion (HPM) star, match with external PM file
///
/// - 4 = actually use external HPM data instead of UCAC4 observ.data
/// (accuracy of positions varies between catalogs)
///
/// - 5 = poor proper motion solution, report only CCD epoch position
///
/// - 6 = substitute poor astrometric results by FK6/Hip/Tycho-2 data
///
/// - 7 = added supplement star (no CCD data) from FK6/Hip/Tycho-2 data,
/// and 2 stars added from high proper motion surveys
///
/// - 8 = high proper motion solution in UCAC4, star not matched with
/// PPMXL
///
/// - 9 = high proper motion solution in UCAC4, discrepant PM to PPMXL
objt,
/// The cdf flag is a combined double star flag used to indicate the
/// type/quality of double star fit. It is a combination of 2 flags:
///
/// cdf = (10 \cdot dsf) + dst
///
/// where
///
/// dsf = double star flag = overall classification
///
/// - 0 = single star
///
/// - 1 = component #1 of “good” double star
///
/// - 2 = component #2 of “good” double star
///
/// - 3 = blended image
///
/// dst = double star type, from pixel data image profile fits, largest
/// value of all images used for this star
///
/// - 0 = no double star, not sufficient #pixels or elongation
///
/// - to even call double star fit subroutine
///
/// - 1 = elongated image but no more than 1 peak detected
///
/// - 2 = 2 separate peaks detected \to try double star fit
///
/// - 3 = secondary peak found on each side of primary
///
/// - 4 = case 1 after successful double fit (small separ. blended image)
///
/// - 5 = case 2 after successful double fit (most likely real double)
///
/// - 6 = case 3 after successful double fit (brighter secondary picked)
///
/// Caution: often a dsf= 1 or 2 image is paired with a dsf= 3. If for a
/// star any of the several images reveals a “blended image”, that higher
/// dsf=3 flag is carried into the output file. This can happen for a
/// regular double star with unique components 1 and 2. A flag dsf=3 means
/// this could be component 1 or 2 but at least on one CCD frame a blended
/// image was detected. This blend could be with the other component, or a
/// spurious image or artifact. The double star flags need to be interpreted
/// with caution; anything but a zero means “likely some double star
/// component or blended image”.
cdf,
/// Incremental unique numeric identifier (increasing with declination).
/// This field was not in the original UCAC4 catalogue, but was added for
/// cross-match purposes.
ucac4_oid,
/// Official UCAC4 star ID, in the following format:
/// UCAC4-zzz-nnnnnn
/// where zzz is the 3-digit zone number (from 001 to 900, each 0.2 deg
/// wide) and nnnnnn the 6-digit running record number along the zone file.
ucac4_identifier,
/// Right ascension with respect to the ICRS at epoch J2000.0.
/// The weighted mean catalog position was updated using the provided proper
/// motions.
/// NB For objects with no proper motions, the positions are at the central
/// epoch (which actually is UCAC4 mean observation epoch). There are 4 982
/// 212 stars with no proper motions.
ra,
/// Declination with respect to the ICRS, at epoch J2000.0.
/// The weighted mean catalog position was updated using the provided proper
/// motions.
/// NB For objects with no proper motions, the positions are at the central
/// epoch (which actually is UCAC4 mean observation epoch). There are 4 982
/// 212 stars with no proper motions.
dec,
/// There is not 0 mas value; data less than 1 mas have been set to 1 mas.
/// Original data larger than 255 mas have been set to 255.
/// In order to be able to calculate positional errors at any epoch, the
/// central epoch, i.e. the weighted mean epoch of the data (UCAC + early
/// epoch other catalogs) is given. At the central epoch (which varies from
/// star to star and is also different for RA and Dec) the positional error
/// has its smallest value; the one given in the catalog for “sigma
/// position”.
/// If the astrometric data for a star was substituted from an external
/// catalog like Hipparcos, Tycho or High proper motion data, a mean error
/// in position and proper motion depending on the catalog and magnitude of
/// the star was adopted.
/// For stars with no proper motions only the observed CCD position and its
/// error is reported.
ra_error_mean_epoch,
/// There is not 0 mas value; data less than 1 mas have been set to 1 mas.
/// Original data larger than 255 mas have been set to 255.
/// In order to be able to calculate positional errors at any epoch, the
/// central epoch, i.e. the weighted mean epoch of the data (UCAC + early
/// epoch other catalogs) is given. At the central epoch (which varies from
/// star to star and is also different for RA and Dec) the positional error
/// has its smallest value; the one given in the catalog for “sigma
/// position”.
/// If the astrometric data for a star was substituted from an external
/// catalog like Hipparcos, Tycho or High proper motion data, a mean error
/// in position and proper motion depending on the catalog and magnitude of
/// the star was adopted.
/// For stars with no proper motions only the observed CCD position and its
/// error is reported.
dec_error_mean_epoch,
/// Proper motion in RA*cos(Dec).
pmra,
/// Proper motion in Declination.
pmde,
/// For astrometric data copied from the FK6, Hipparcos and Tycho-2 catalogs
/// a mean error in positions was adopted depending on input catalog and the
/// brightness of the star rather than giving the individual star’s error
/// quoted in those catalogs.
pmra_error,
/// For astrometric data copied from the FK6, Hipparcos and Tycho-2 catalogs
/// a mean error in positions was adopted depending on input catalog and the
/// brightness of the star rather than giving the individual star’s error
/// quoted in those catalogs.
pmde_error,
/// Central Epoch for mean RA.
/// Probably epoch is a Julian epoch expressed as Julian Years with
/// reference J2000.0. For stars with proper motions, the central epoch,
/// i.e. the weighted mean epoch of the data (UCAC + early epoch other
/// catalogs) is given. At the central epoch (which varies from star to star
/// and is also different for RA and Dec) the positional error has its
/// smallest value; the one given in the catalog for “sigma position”.
/// For stars with no proper motions, the central Epoch is the UCAC4 mean
/// observation epoch.
mean_epoch_ra,
/// Central Epoch for mean DEC.
/// Probably epoch is a Julian epoch expressed as Julian Years with
/// reference J2000.0. For stars with proper motions, the central epoch,
/// i.e. the weighted mean epoch of the data (UCAC + early epoch other
/// catalogs) is given. At the central epoch (which varies from star to star
/// and is also different for RA and Dec) the positional error has its
/// smallest value; the one given in the catalog for “sigma position”.
/// For stars with no proper motions, the central Epoch is the UCAC4 mean
/// observation epoch.
mean_epoch_dec,
/// Fit model magnitude.
/// Systematic errors are expected to be below 0.1 mag for magm,maga
/// photometric results obtained from the UCAC CCD pixel data. The aperture
/// photometry is considered more robust, particularly for “odd” cases,
/// while the model fit magnitude is expected to be more accurate for “well
/// behaved” stars.
magm,
/// Aperture magnitude.
/// Systematic errors are expected to be below 0.1 mag for magm,maga
/// photometric results obtained from the UCAC CCD pixel data. The aperture
/// photometry is considered more robust, particularly for “odd” cases,
/// while the model fit magnitude is expected to be more accurate for “well
/// behaved” stars.
maga,
/// For many stars a photometric error based on the scatter from individual
/// observations of that star on different CCD frames could be obtained. A
/// model error was also attempted to be assigned, based on the S/N ratio.
/// The error quoted here is the larger of the two.
/// If the error exceeds 0.9 mag, the error was set to 0.9 mag in catalog
/// data.
sigmag,
/// Number of catalogs (epoch) used for proper motions.
n_epochs,
}
impl Column for Col {}
#[cfg(test)]
pub fn collect_known(map: &mut std::collections::HashMap<String, Vec<String>>) {
let mut col_strings = Vec::new();
col_strings.push(Col::objt.to_string());
col_strings.push(Col::cdf.to_string());
col_strings.push(Col::ucac4_oid.to_string());
col_strings.push(Col::ucac4_identifier.to_string());
col_strings.push(Col::ra.to_string());
col_strings.push(Col::dec.to_string());
col_strings.push(Col::ra_error_mean_epoch.to_string());
col_strings.push(Col::dec_error_mean_epoch.to_string());
col_strings.push(Col::pmra.to_string());
col_strings.push(Col::pmde.to_string());
col_strings.push(Col::pmra_error.to_string());
col_strings.push(Col::pmde_error.to_string());
col_strings.push(Col::mean_epoch_ra.to_string());
col_strings.push(Col::mean_epoch_dec.to_string());
col_strings.push(Col::magm.to_string());
col_strings.push(Col::maga.to_string());
col_strings.push(Col::sigmag.to_string());
col_strings.push(Col::n_epochs.to_string());
map.insert(ucac4_original_valid.string(), col_strings);
}