Changeset 271 for trunk/doc/pslib/psLibSDRS.tex
- Timestamp:
- Mar 19, 2004, 5:43:08 PM (22 years ago)
- File:
-
- 1 edited
-
trunk/doc/pslib/psLibSDRS.tex (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/pslib/psLibSDRS.tex
r256 r271 676 676 677 677 \subsubsection{Coordinate frames} 678 \label{sec:coordinateFrames} 678 679 679 680 There are five coordinate frames that we need to worry about for the … … 743 744 first-order 2D polynomials, simply specifying a translation, rotation 744 745 and magnification; hence they are easily inverted, and there is no 745 need to add reverse transformations. 746 need to add reverse transformations. We also add an additional 747 transformation, which is intended to provide a ``quick and dirty'' 748 transform from the cell coordinates to the sky; this transformation 749 not guaranteed to be as precise as the ``standard'' transformation of 750 Cell $\rightarrow$ Chip $\rightarrow$ Focal Plane $\rightarrow$ 751 Tangent Plane $\rightarrow$ Sky, but will be faster. 746 752 747 753 \begin{verbatim} … … 756 762 psCoordXform *cellToChip; ///< Transformations from cell coordinates to chip coordinates 757 763 psCoordXform *cellToFPA; ///< Transformations from cell coordinates to FPA coordinates 764 psCoordXform *cellToSky; ///< Quick and Dirty transformations from cell coordinates to sky 758 765 759 766 struct psChip *parentChip; ///< chip which contains this cell … … 892 899 The fixed pattern is a correction to the general astrometric solution 893 900 formed by summing the residuals from many observations. The intent is 894 to correct for higher-order distortions in the camera system 895 896 897 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 901 to correct for higher-order distortions in the camera system on a 902 coarse grid (larger than individual pixels, but smaller than a single 903 cell). Hence, in addition to the offsets, we need to specify the size 904 and scale of the grid in $x$ and $y$, as well as the origin of the 905 grid. 906 907 \begin{verbatim} 908 /** The fixed pattern residual offsets. These are specified via a coarse grid of x and y offsets. */ 909 typedef struct { 910 int nX, nY; //!< Number of elements in x and y 911 double x0, y0; //!< Position of the lower-left corner of the grid on the focal plane 912 double xScale, yScale; //!< Scale of the grid 913 double **x, **y; //!< The grid of offsets in x and y 914 } psFixedPattern; 915 \end{verbatim} 916 917 918 \subsubsection{Constructors and Destructors} 919 920 Each of the above structures needs an appropriate constructor and 921 destructor. Other than \code{psExposure}, which contains significant 922 non-pointer types, the constructors should not take any arguments, and 923 the destructors should only take the structure to be destroyed. 924 The constructor for \code{psExposure} is specified below. 925 926 \begin{verbatim} 927 /** Constructor */ 928 psExposure * 929 psExposureAlloc(double ra, double dec, //!< Telescope boresight 930 double ha, //!< Hour angle 931 double zd, //!< Zenith distance 932 double az, //!< Azimuth 933 double lst, //!< Local Sidereal Time 934 float mjd, //!< MJD 935 float rotAngle, //!< Rotator position angle 936 float temp, //!< Temperature 937 float pressure, //!< Pressure 938 float humidity, //!< Relative humidity 939 float exptime //!< Exposure time 940 ); 941 \end{verbatim} 942 943 944 \subsubsection{Finding} 945 946 We require functions to return the structure containing given coordinates. 947 For example, we want the chip that corresponds to the focal plane coordinates 948 $(p,q) = (-1.234,+5.678)$. 949 950 951 \begin{verbatim} 952 /** returns Chip in FPA which contains the given FPA coordinate */ 953 psChip * 954 psChipInFPA (psFPA *fpa, ///< FPA description 955 psCoord *coord ///< coordinate in FPA 956 ); 957 \end{verbatim} 958 959 \begin{verbatim} 960 /** returns Cell in Chip which contains the given chip coordinate */ 961 psCell * 962 psCellInChip (psChip *chip, ///< chip description 963 psCoord *coord ///< coordinate in chip 964 ); 965 \end{verbatim} 966 967 Usually we will want to go directly from the FPA to the Cell, so we 968 also specify the following function, which performs the above two 969 functions in order. 970 971 \begin{verbatim} 972 /** Return the cell in FPA which contains the given FPA coordinates */ 973 psCell * 974 psCellInFPA(psCell *out, //!< Cell to return, or NULL 975 psFPA *fpa, //!< FPA description 976 psCoord *coord //!< Coordinate in FPA 977 ); 978 \end{verbatim} 979 980 981 982 \subsubsection{Conversion Functions} 983 984 We require functions to convert between the various coordinate frames 985 (Section~\ref{sec:coordinateFrames}). The heirarchy of the coordinate 986 frames and the transformations between each are shown in 987 Figure~\ref{fig:coco}. The functions that employ the transformations 988 are shown in Figure~\ref{fig:cocoFunc}. In addition to 989 transformations between each adjoining coordinate frame in the 990 heirarchy, we also require higher-level functions to convert between 991 the Cell and Sky coordinate frames; these will simply perform the 992 intermediate steps. 993 994 \begin{figure} 995 \psfig{file=coordinateFrames.ps,width=9in,angle=-90} 996 \caption{The coordinate systems in the \PS{} IPP, and the relation 997 between each by transformations contained in the appropriate 998 structures.} 999 \label{fig:coco} 1000 \end{figure} 1001 1002 \begin{figure} 1003 \psfig{file=coordinateConv.ps,width=9in,angle=-90} 1004 \caption{Conversion between coordinate systems by PSLib.} 1005 \label{fig:cocoFunc} 1006 \end{figure} 1007 1008 The function prototypes are: 1009 1010 \begin{verbatim} 1011 /** returns Chip in FPA which contains the given FPA coordinate */ 1012 psChip * 1013 psChipInFPA (psChip *out, //!< Chip to return, or NULL 1014 psFPA *fpa, ///< FPA description 1015 psCoord *coord ///< coordinate in FPA 1016 ); 1017 \end{verbatim} 1018 1019 \begin{verbatim} 1020 /** returns Cell in Chip which contains the given chip coordinate */ 1021 psCell * 1022 psCellInChip(psCell *out, //!< Cell to return, or NULL 1023 psChip *chip, ///< chip description 1024 psCoord *coord ///< coordinate in chip 1025 ); 1026 \end{verbatim} 1027 1028 \begin{verbatim} 1029 /** Return the cell in FPA which contains the given FPA coordinates */ 1030 psCell * 1031 psCellInFPA(psCell *out, //!< Cell to return, or NULL 1032 psFPA *fpa, //!< FPA description 1033 psCoord *coord //!< Coordinate in FPA 1034 ); 1035 \end{verbatim} 1036 1037 \begin{verbatim} 1038 /** Convert (RA,Dec) to cell and cell coordinates */ 1039 psCoord * 1040 psCoordSkyToCell(psCoord *out, //!< Coordinates to return, or NULL 1041 psCell *cell, //!< Cell to return 1042 const psFPA *fpa //!< FPA description 1043 ); 1044 \end{verbatim} 1045 1046 \begin{verbatim} 1047 /** Convert cell and cell coordinate to (RA,Dec) */ 1048 psCoord * 1049 psCoordCellToSky(psCoord *out, //!< Coordinates to return, or NULL 1050 const psCell *cell, //!< Cell to get coordinates for 1051 psCoord *coord //!< cell coordinates to transform 1052 ); 1053 \end{verbatim} 1054 1055 \begin{verbatim} 1056 /** Quick and dirty cell to (RA,Dec) --- employs cellToSky transformation */ 1057 psCoord * 1058 psCoordCellToSkyQuick(psCoord *out, //!< Coordinates to return, or NULL 1059 const psCell *cell, //!< Cell description 1060 psCoord *coord //!< cell coordinates to transform 1061 ); 1062 \end{verbatim} 1063 1064 \begin{verbatim} 1065 /** Convert (RA,Dec) to tangent plane coords */ 1066 psCoord * 1067 psCoordSkyToTP(psCoord *out, //!< Coordinates to return, or NULL 1068 psexposure *exp, //!< Exposure description 1069 psCoord *coord //!< input Sky coordinate 1070 ); 1071 \end{verbatim} 1072 1073 \begin{verbatim} 1074 /** Convert tangent plane coords to focal plane coordinates */ 1075 psCoord * 1076 psCoordTPtoFPA(psCoord *out, //!< Coordinates to return, or NULL 1077 const psFPA *fpa, //!< FPA description 1078 psCoord *coord //!< input TP coordinate 1079 ); 1080 \end{verbatim} 1081 1082 \begin{verbatim} 1083 /** converts the specified FPA coord to the coord on the given Chip */ 1084 psCoord * 1085 psCoordFPAtoChip (psCoord *out, //!< Coordinates to return, or NULL 1086 psFPA *fpa, ///< FPA description 1087 psChip *chip, ///< Chip of interest 1088 psCoord *coord ///< input FPA coordinate 1089 ); 1090 \end{verbatim} 1091 1092 \begin{verbatim} 1093 /** converts the specified Chip coord to the coord on the given Cell */ 1094 psCoord * 1095 psCoordChiptoCell (psCoord *out, //!< Coordinates to return, or NULL 1096 psChip *chip, ///< Chip description 1097 psCell *cell, ///< Cell of interest 1098 psCoord *coord ///< input Chip coordinate 1099 ); 1100 1101 \begin{verbatim} 1102 /** converts the specified Cell coord to the coord on the parent Chip */ 1103 psCoord * 1104 psCoordCelltoChip (psCoord *out, //!< Coordinates to return, or NULL 1105 psCell *cell, ///< Cell description 1106 psCoord *coord ///< input Cell coordinate 1107 ); 1108 \end{verbatim} 1109 1110 \begin{verbatim} 1111 /** converts the specified Chip coord to the coord on the parent FPA */ 1112 psCoord * 1113 psCoordChiptoFPA (psCoord *out, //!< Coordinates to return, or NULL 1114 psChip *chip, ///< Chip description 1115 psCoord *coord ///< input Chip coordinate 1116 ); 1117 \end{verbatim} 1118 1119 \begin{verbatim} 1120 /** Convert focal plane coords to tangent plane coordinates */ 1121 psCoord * 1122 psCoordFPAToTP(psCoord *out, //!< Coordinates to return, or NULL 1123 psFPA *fpa, //!< FPA description 1124 psCoord *coord //!< input FPA coordinate 1125 ); 1126 \end{verbatim} 1127 1128 \begin{verbatim} 1129 /** Convert tangent plane coords to (RA,Dec) */ 1130 psCoord * 1131 psCoordTPtoSky(psCoord *out, //!< Coordinates to return, or NULL 1132 psExposure *exp, //!< Exposure description 1133 psCoord *coord //!< input TP coordinate 1134 ); 1135 \end{verbatim} 1136 1137 \begin{verbatim} 1138 /** Convert Cell coords to FPA coordinates */ 1139 psCoord * 1140 psCoordCellToFPA(psCoord *out, //!< Coordinates to return, or NULL 1141 psCell *cell, //!< Cell description 1142 psCoord *coord //!< Input cell coordinates 1143 ); 1144 \end{verbatim} 1145 1146 \subsubsection{Additional functions} 1147 1148 We require additional functions to perform general functions which 1149 will be useful for astrometry. Given coordinates on the sky, we 1150 need to get the airmass, the parallactic angle, and an estimate of 1151 the atmospheric refraction. 1152 1153 \begin{verbatim} 1154 /** Get the airmass for a given position and sidereal time */ 1155 float 1156 psGetAirmass(const psCoord *coord, //!< Position on the sky 1157 double siderealTime, //!< Sidereal time 1158 float height //!< Height above sea level 1159 ); 1160 \end{verbatim} 1161 1162 \begin{verbatim} 1163 /** Get the parallactic angle for a given position and sidereal time */ 1164 float 1165 psGetParallactic(const psCoord *coord, //!< Position on the sky 1166 double siderealTime //!< Sidereal time 1167 ); 1168 \end{verbatim} 1169 1170 \begin{verbatim} 1171 /** Estimate atmospheric refraction, along the parallactic */ 1172 float 1173 psGetRefraction(float colour, //!< Colour of object 1174 psPhotSystem colorPlus, ///< Colour reference 1175 psPhotSystem colorMinus, ///< Colour reference 1176 const psExposure *exp //!< Telescope pointing information, for airmass, temp and pressure 1177 ); 1178 \end{verbatim} 1179 1180 1181 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 898 1182 \subsection{Dates and times} 899 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %1183 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 900 1184 \subsection{Image handling} 901 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1185 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1186 Gene 1187 902 1188 \subsection{Metadata} 903 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1189 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1190 Gene 1191 904 1192 \subsection{Detector and sky positions} 905 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %1193 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 906 1194 \subsection{Astronomical objects} 907 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1195 1196 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 908 1197 \subsection{Photometry} 909 1198 910 911 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 912 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 913 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1199 Gene 1200 1201 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1202 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1203 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 914 1204 915 1205 \bibliographystyle{plain} \bibliography{panstarrs}
Note:
See TracChangeset
for help on using the changeset viewer.
