libHiRISE
|
00001 /* HiRISE Instrument 00002 00003 PIRL CVS ID: Instrument.hh,v 2.15 2020/02/14 00:58:12 schaller Exp 00004 00005 Copyright (C) 2003-2020 Arizona Board of Regents on behalf of the Lunar and 00006 Planetary Laboratory at the University of Arizona. 00007 00008 Licensed under the Apache License, Version 2.0 (the "License"); you may not use 00009 this file except in compliance with the License. You may obtain a copy of the 00010 License at 00011 00012 http://www.apache.org/licenses/LICENSE-2.0 00013 00014 Unless required by applicable law or agreed to in writing, software distributed 00015 under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 00016 CONDITIONS OF ANY KIND, either express or implied. See the License for the 00017 specific language governing permissions and limitations under the License. 00018 */ 00019 00020 #ifndef _HiRISE_Instrument_ 00021 #define _HiRISE_Instrument_ 00022 00023 #include "Exceptions.hh" 00024 00027 namespace UA 00028 { 00031 namespace HiRISE 00032 { 00033 00034 /*=***************************************************************************** 00035 Instrument 00036 */ 00044 class Instrument 00045 { 00046 public: 00047 /*============================================================================== 00048 Constants 00049 */ 00051 static const char* const 00052 ID; 00053 00054 00056 static const unsigned int 00057 CCDS; 00058 00060 static const unsigned int 00061 CCD_UNKNOWN; 00062 00073 static const char* const 00074 CCD_NAMES[]; 00075 00077 static const char* const 00078 CCD_FILTER_NAMES[]; 00079 00090 static const unsigned int 00091 CCD_BY_CPMM[]; 00092 00100 static const unsigned int 00101 CPMM_BY_CCD[]; 00102 00103 00105 static const char* const 00106 WAVELENGTH_UNITS; 00107 00112 static const unsigned int 00113 CCD_CENTER_WAVELENGTHS[]; 00114 00119 static const unsigned int 00120 CCD_BANDWIDTHS[]; 00121 00122 00131 static const double 00132 CCD_FOCAL_PLANE_X_OFFSETS_MM[]; 00133 00142 static const double 00143 CCD_FOCAL_PLANE_Y_OFFSETS_MM[]; 00144 00146 static const double 00147 CCD_PIXEL_SIZE_MM; 00148 00149 00157 static const unsigned int 00158 CCD_CHANNELS; 00159 00161 static const unsigned int 00162 CCD_CHANNEL_UNKNOWN; 00163 00164 00171 static const unsigned int 00172 CCD_IMAGE_SENSORS; 00173 00175 static const unsigned int 00176 MAX_BYTES_PER_PIXEL; 00177 00189 static const unsigned int 00190 MAX_PIXEL_VALUES[]; 00191 00192 00201 static const unsigned int 00202 MAX_IMAGE_LINES; 00203 00204 00222 static const unsigned int 00223 TOTAL_TDI_STAGES; 00224 00226 static const unsigned int 00227 TDI_STAGES[]; 00228 00229 00242 static const unsigned int 00243 TOTAL_BINNING_FACTORS; 00244 00246 static const unsigned int 00247 BINNING_FACTORS[]; 00248 00256 static const unsigned int 00257 CCD_BINNED_PIXELS[]; 00258 00259 00261 static const unsigned int 00262 STORED_LUTS; 00263 00264 00266 static const unsigned int 00267 STIMULATOR_LEDS; 00268 00270 static const char* const 00271 STIMULATOR_LED_NAMES[]; 00272 00273 00275 static const double 00276 EXPOSURE_SETUP_MICROS; 00277 00279 static const unsigned int 00280 DELTA_LINE_TIME_MAX; 00281 00283 static const double 00284 DELTA_LINE_TIME_TICK_NANOS; 00285 00287 static const double 00288 LINE_TIME_PRE_OFFSET; 00289 00291 static const unsigned int 00292 TRIM_ADDITION_LINES; 00293 00295 static const unsigned int 00296 REVERSE_READOUT_LINES; 00297 00299 static const unsigned int 00300 MASKED_LINES; 00301 00302 00304 static const unsigned int 00305 DLL_LOCKED; 00307 static const unsigned int 00308 DLL_NOT_LOCKED; 00309 00310 00312 static const unsigned int 00313 SPACECRAFT_EPOCH; 00314 00316 static const double 00317 MRO_CLOCK_SUBTICK_MICROS; 00318 00320 static const double 00321 HIRISE_CLOCK_SUBTICK_MICROS; 00322 00324 static const int 00325 SPACECRAFT_NAIF_ID; 00326 00327 00329 static const unsigned int 00330 SSR_BYTE_BOUNDARY; 00331 00332 00334 static const int 00335 UNKNOWN_NUMBER; 00336 00338 static const int 00339 NOT_APPLICABLE_NUMBER; 00340 00342 static const char 00343 * const UNKNOWN_STRING; 00344 00346 static const char 00347 * const NOT_APPLICABLE_STRING; 00348 00349 /*============================================================================== 00350 Functions 00351 */ 00375 static unsigned int calibration_lines_minimum 00376 (unsigned int TDI, unsigned int binning); 00377 00397 static int focal_plane_x_offset 00398 (unsigned int CPMM, unsigned int binning = 1) 00399 throw (Out_of_Range, Invalid_Argument); 00400 00401 }; // class Instrument 00402 00403 } // namespace HiRISE 00404 } // namespace UA 00405 #endif