Changeset 212
- Timestamp:
- Mar 10, 2004, 5:57:47 PM (22 years ago)
- File:
-
- 1 edited
-
trunk/archive/pslib/include/psAstrom.h (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/archive/pslib/include/psAstrom.h
r198 r212 25 25 psDoubleArray *restrict coeff; //!< Coefficients of astrometric solution 26 26 psDoubleArray *restrict coeffErr; //!< Error in coefficients 27 psBitMask *restrict coeffMask; //!< Use this coefficient? 27 28 } psAstromCoeffs; 28 29 … … 44 45 /***********************************************************************************************************/ 45 46 46 /** Telescope pointing information for an exposure */47 /** Exposure information from the telescope */ 47 48 typedef struct { 48 49 // Telescope longitude, latitude and height are stored separately, since they don't change with pointing … … 51 52 double zd; //!< Zenith distance 52 53 double az; //!< Azimuth 54 double lst; //!< Local Sidereal Time 55 float mjd; //!< MJD of observation 53 56 float rotAngle; //!< Rotator position angle 54 float temp; //!< Temperature 55 float pressure; //!< Pressure 57 float temp; //!< Air temperature, for estimating diffraction 58 float pressure; //!< Air pressure, for calculating diffraction 59 float humidity; //!< Relative humidity, for calculating diffraction 60 float exptime; //!< Exposure time 56 61 /* Derived quantities */ 62 float posAngle; //!< Position angle 57 63 float parallactic; //!< Parallactic angle 58 64 float airmass; //!< Airmass, calculated from zenith distance 59 } psTelPointing; 60 61 /** Constructor */ 62 psTelPointing * 63 psTelPointingAlloc(double ra, double dec, //!< Telescope boresight 64 double ha, //!< Hour angle 65 double zd, //!< Zenith distance 66 double az, //!< Azimuth 67 float rotAngle, //!< Rotator position angle 68 float temp, //!< Temperature 69 float pressure //!< Pressure 70 ); 71 72 /** Destructor */ 73 void 74 psTelPointingFree(psTelPointing *restrict myTelPointing //!< Object to destroy 65 float pf; //!< Parallactic factor 66 } psExposure; 67 68 /** Constructor */ 69 psExposure * 70 psExposureAlloc(double ra, double dec, //!< Telescope boresight 71 double ha, //!< Hour angle 72 double zd, //!< Zenith distance 73 double az, //!< Azimuth 74 double lst, //!< Local Sidereal Time 75 float mjd, //!< MJD 76 float rotAngle, //!< Rotator position angle 77 float temp, //!< Temperature 78 float pressure, //!< Pressure 79 float humidity, //!< Relative humidity 80 float exptime //!< Exposure time 81 ); 82 83 /** Destructor */ 84 void 85 psExposureFree(psExposure *restrict myExp //!< Object to destroy 75 86 ); 76 87 … … 80 91 /** Cell details: specifies how the cell is mounted on its parent OTA */ 81 92 typedef struct { 82 psOTAPos position; //!< Position of cell in its OTA. Specifies the position of the93 double x, y; //!< Position of cell in its OTA. Specifies the position of the 83 94 //!< (imaginary) pixel (0,0) 84 float rotation; //!< Rotation of cell in its OTA. Specified from +x through +y 95 double xErr, yErr; //!< Error in position of cell in the OTA. 96 double rotation; //!< Rotation of cell in its OTA. Specified from +x through +y 85 97 int xSize, ySize; //!< Number of pixels in x and y 86 float scale; //!< Relative pixel scales, if CCD pitch varies. Specify a positive87 //!< scale for a left-handed coordinate system, negative for right. If88 //!< NULL, then every chip has identical scale, and system is89 //!< left-handed.98 double scale; //!< Relative pixel scales, if CCD pitch varies over the OTA. Specify 99 //!< a positive scale for a left-handed coordinate system, negative 100 //!< for right. If NULL, then every chip has identical scale, and 101 //!< system is left-handed. 90 102 } psCellDescription; 91 103 … … 102 114 103 115 /** Array of cell descriptions */ 104 PS_DECLARE_ARRAY_TYPE(psCellDescription); 105 PS_CREATE_ARRAY_TYPE(psCellDescription); 116 typedef struct { 117 enum psType type; //!< Type of data. THIS STRUCT ELEMENT MUST BE FIRST IN THE STRUCT! 118 int size; //!< Total number of elements available 119 int n; //!< Number of elements in use 120 double *arr; //!< The array data 121 } psCellDescriptionArray; 122 123 /** Constructor */ 124 psCellDescriptionArray *psCellDescriptionArrayAlloc(int s, //!< Total number of elements to make available 125 int n //!< Number of elements that will be used 126 ); 127 /** Reallocator */ 128 psCellDescriptionArray *psCellDescriptionArrayRealloc(psCellDescriptionArray *myArray, //!< Array to 129 //!< reallocate 130 int s //!< Total number of elements to make available 131 ); 132 /** Destructor */ 133 void psCellDescriptionArrayFree(psCellDescriptionArray *restrict myArray //!< Array to free 134 ); 106 135 107 136 /***********************************************************************************************************/ … … 109 138 /** OTA details: specifies how the OTA is mounted on the focal plane */ 110 139 typedef struct { 111 psOTAPos position; //!< Position of OTA on the focal plane. Specifies the position of the 112 //!< bottom left-hand corner. 113 float rotation; //!< Rotation of OTA on the focal plane. Specified from +x through +y 140 double x, y; //!< Position of OTA on the focal plane. Specifies the position of 141 //!< the bottom left-hand corner. 142 double xErr, yErr; //!< Error in the position of the OTA. 143 double rotation; //!< Rotation of OTA on the focal plane. Specified from +x through +y 114 144 psCellDescriptionArray *restrict cells; //!< Cell descriptions 115 struct psOTAAstrom *astrom; //!< OTA astrometry 145 psOTAAstrom *astrom; //!< OTA astrometry 146 psExposure *exp; //!< Exposure data 116 147 } psOTADescription; 117 148 … … 159 190 /** Constructor */ 160 191 psOTAAstrom * 161 psOTAAstromAlloc(const ps TelPointing *telescope//!< Telescope pointing, used to initialise the tp data.192 psOTAAstromAlloc(const psExposure *exp //!< Telescope pointing, used to initialise the tp data. 162 193 ); 163 194 … … 188 219 const psOTAPosArray *restrict detector, //!< Positions on OTA (chip#,x,y) 189 220 const psSkyPosArray *restrict sky, //!< Positions on the sky (RA,Dec) 190 const ps TelPointing *telescope//!< Telescope pointing information, for airmass, parallactic angle191 //!< which may help set the astrometric solution221 const psExposure *exp //!< Telescope pointing information, for airmass, parallactic angle 222 //!< which may help set the astrometric solution 192 223 ); 193 224 … … 199 230 float 200 231 psGetAirmass(const psSkyPos *restrict position, //!< Position on the sky 201 floatsiderealTime //!< Sidereal time232 double siderealTime //!< Sidereal time 202 233 ); 203 234 … … 205 236 float 206 237 psGetParallactic(const psSkyPos *restrict position, //!< Position on the sky 207 floatsiderealTime //!< Sidereal time238 double siderealTime //!< Sidereal time 208 239 ); 209 240 … … 212 243 psGetRefraction(float colour, //!< Colour of object 213 244 psColourRef colourRef, //!< Colour reference 214 ps TelPointing telescope//!< Telescope pointing information, for airmass, temp and pressure245 psExposure *exp //!< Telescope pointing information, for airmass, temp and pressure 215 246 ); 216 247
Note:
See TracChangeset
for help on using the changeset viewer.
