Changeset 1384 for trunk/psLib/src/astronomy/psAstrometry.h
- Timestamp:
- Aug 4, 2004, 1:12:34 PM (22 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/astronomy/psAstrometry.h (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/astronomy/psAstrometry.h
r1382 r1384 8 8 * @author George Gusciora, MHPCC 9 9 * 10 * @version $Revision: 1. 2$ $Name: not supported by cvs2svn $11 * @date $Date: 2004-08-04 2 2:11:09$10 * @version $Revision: 1.3 $ $Name: not supported by cvs2svn $ 11 * @date $Date: 2004-08-04 23:12:34 $ 12 12 * 13 13 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 34 34 /// @{ 35 35 36 /** Wallace's Grommit 37 * 38 * SLALib requires several elements to perform the transformations between 39 * the tangent plane and the sky. Pre-computing these quantities for each 40 * exposure means that subsequent transformations are faster. For historical 41 * reasons, this structure is known colloquially as "Wallace's Grommit". 42 * 43 */ 36 44 typedef struct 37 45 { 38 const double latitude; ///< 39 const double sinLat, cosLat; ///< 40 const double abberationMag; ///< 41 const double height; ///< 42 const double temperature; ///< 43 const double pressure; ///< 44 const double humidity; ///< 45 const double wavelength; ///< 46 const double lapseRate; ///< 47 const double refractA, refractB; ///< 48 const double longitudeOffset; ///< 49 const double siderealTime; ///< 46 const double latitude; ///< geodetic latitude (radians) 47 const double sinLat; ///< sine of geodetic latitude 48 const double cosLat; ///< cosine of geodetic latitude 49 const double abberationMag; ///< magnitude of diurnal aberration vector 50 const double height; ///< height (HM) 51 const double temperature; ///< ambient temperature (TDK) 52 const double pressure; ///< pressure (PMB) 53 const double humidity; ///< relative humidity (RH) 54 const double wavelength; ///< wavelength (WL) 55 const double lapseRate; ///< lapse rate (TLR) 56 const double refractA; ///< refraction constant A (radians) 57 const double refractB; ///< refraction constant B (radians) 58 const double longitudeOffset; ///< longitude + ... (radians) 59 const double siderealTime; ///< local apparent sidereal time (radians) 50 60 } 51 61 psGrommit; 52 62 63 /** Fixed Pattern Corrections 64 * 65 * The fixed pattern is a correction to the general astrometric solution 66 * formed by summing the residuals from many observations. The intent is to 67 * correct for higher-order distortions in the camera system on a coarse 68 * grid (larger than individual pixels, but smaller than a single cell). 69 * Hence, in addition to the offsets, we need to specify the size and scale 70 * of the grid in x and y as well as the origin of the grid. 71 */ 53 72 typedef struct 54 73 { 55 int nX, nY; ///< 56 double x0, y0; ///< 57 double xScale, yScale; ///< 58 double **x, **y; ///< 74 int nX; ///< Number of elements in x direction 75 int nY; ///< Number of elements in y direction 76 double x0; ///< X Position of 0,0 corner on focal plane 77 double y0; ///< Y Position of 0,0 corner on focal plane 78 double xScale; ///< Scale of the grid in x direction 79 double yScale; ///< Scale of the grid in x direction 80 double **x; ///< The grid of offsets in x 81 double **y; ///< The grid of offsets in y 59 82 } 60 83 psFixedPattern; … … 77 100 78 101 psImage* image; ///< imaging area of Readout 79 psList* objects; ///< objects derived from Readout102 psList* objects; ///< objects derived from Readout 80 103 psMetadata* metadata; ///< readout-level metadata 81 104 } … … 191 214 192 215 psExposure* psExposureAlloc( 193 double ra, ///< Telescope boresight, right ascention194 double dec, ///< Telescope boresight, declination195 double hourAngle, ///< Hour angle196 double zenith, ///< Zenith distance197 double azimuth, ///< Azimuth198 double localTime, ///< Local Sidereal Time199 float date, ///< MJD200 float rotAngle, ///< Rotator position angle201 float temperature, ///< Temperature202 float pressure, ///< Pressure203 float humidity, ///< Relative humidity216 double ra, ///< Telescope boresight, right ascention 217 double dec, ///< Telescope boresight, declination 218 double hourAngle, ///< Hour angle 219 double zenith, ///< Zenith distance 220 double azimuth, ///< Azimuth 221 double localTime, ///< Local Sidereal Time 222 float date, ///< MJD 223 float rotAngle, ///< Rotator position angle 224 float temperature, ///< Temperature 225 float pressure, ///< Pressure 226 float humidity, ///< Relative humidity 204 227 float exposureTime ///< Exposure time 205 228 ); 206 229 207 psGrommit* psGrommitAlloc( const psExposure* exp ); 208 209 psCell *psCellinFPA( psCell *out, 210 const psPlane *coord, 211 const psFPA *FPA ); 212 213 psChip *psChipinFPA( psChip *out, 214 const psPlane *coord, 215 const psFPA *FPA ); 216 217 psCell *psCellinChip( psCell *out, 218 const psPlane *coord, 219 const psChip *chip ); 220 221 222 223 224 psPlane *psCoordCelltoChip( psPlane *out, 225 const psPlane *in, 226 const psCell *cell ); 227 228 psPlane *psCoordChipToFPA( psPlane *out, 229 const psPlane *in, 230 const psChip *chip ); 231 232 psPlane *psCoordFPAtoTP( psPlane *out, 233 const psPlane *in, 234 const psFPA *fpa ); 235 236 psSphere *psCoordTPtoSky( psSphere *out, 237 const psPlane *in, 238 const psGrommit *grommit ); 239 240 psPlane *psCoordCellToFPA( psPlane *out, 241 const psPlane *in, 242 const psCell *cell ); 243 244 psSphere *psCoordCelltoSky( psSphere *out, 245 const psPlane *in, 246 const psCell *cell ); 247 248 psSphere *psCoordCelltoSkyQuick( psSphere *out, 249 const psPlane *in, 250 const psCell *cell ); 251 252 psPlane *psCoordSkytoTP( psPlane *out, 253 const psSphere *in, 254 const psGrommit *grommit ); 255 256 psPlane *psCoordTPtoFPA( psPlane *out, 257 const psPlane *in, 258 const psFPA *fpa ); 259 260 psPlane *psCoordFPAtoChip( psPlane *out, 261 const psPlane *in, 262 const psChip *chip ); 263 264 psPlane *psCoordChiptoCell( psPlane *out, 265 const psPlane *in, 266 const psCell *cell ); 267 268 psPlane *psCoordSkytoCell( psPlane *out, 269 const psSphere *in, 270 const psCell *cell ); 271 272 psPlane *psCoordSkytoCellQuick( psPlane *out, 273 const psSphere *in, 274 const psCell *cell ); 275 230 /** Allocates a Wallace's Grommit structure. 231 * 232 * The psGrommit is calculated from telescope information for the particular 233 * exposure. 234 * 235 * @return psGrommit* New grommit structure. 236 */ 237 psGrommit* psGrommitAlloc( 238 const psExposure* exp ///< the cooresponding exposure structure. 239 ); 240 241 psCell *psCellinFPA( 242 psCell *out, 243 const psPlane *coord, 244 const psFPA *FPA 245 ); 246 247 psChip *psChipinFPA( 248 psChip *out, 249 const psPlane *coord, 250 const psFPA *FPA 251 ); 252 253 psCell *psCellinChip( 254 psCell *out, 255 const psPlane *coord, 256 const psChip *chip 257 ); 258 259 psPlane *psCoordCelltoChip( 260 psPlane *out, 261 const psPlane *in, 262 const psCell *cell 263 ); 264 265 psPlane *psCoordChipToFPA( 266 psPlane *out, 267 const psPlane *in, 268 const psChip *chip 269 ); 270 271 psPlane *psCoordFPAtoTP( 272 psPlane *out, 273 const psPlane *in, 274 const psFPA *fpa 275 ); 276 277 psSphere *psCoordTPtoSky( 278 psSphere *out, 279 const psPlane *in, 280 const psGrommit *grommit 281 ); 282 283 psPlane *psCoordCellToFPA( 284 psPlane *out, 285 const psPlane *in, 286 const psCell *cell 287 ); 288 289 psSphere *psCoordCelltoSky( 290 psSphere *out, 291 const psPlane *in, 292 const psCell *cell 293 ); 294 295 psSphere *psCoordCelltoSkyQuick( 296 psSphere *out, 297 const psPlane *in, 298 const psCell *cell 299 ); 300 301 psPlane *psCoordSkytoTP( 302 psPlane *out, 303 const psSphere *in, 304 const psGrommit *grommit 305 ); 306 307 psPlane *psCoordTPtoFPA( 308 psPlane *out, 309 const psPlane *in, 310 const psFPA *fpa 311 ); 312 313 psPlane *psCoordFPAtoChip( 314 psPlane *out, 315 const psPlane *in, 316 const psChip *chip 317 ); 318 319 psPlane *psCoordChiptoCell( 320 psPlane *out, 321 const psPlane *in, 322 const psCell *cell 323 ); 324 325 psPlane *psCoordSkytoCell( 326 psPlane *out, 327 const psSphere *in, 328 const psCell *cell 329 ); 330 331 psPlane *psCoordSkytoCellQuick( 332 psPlane *out, 333 const psSphere *in, 334 const psCell *cell 335 ); 336 276 337 #endif
Note:
See TracChangeset
for help on using the changeset viewer.
