IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 19, 2004, 5:43:08 PM (22 years ago)
Author:
Paul Price
Message:

Astrometry first draft completed.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/doc/pslib/psLibSDRS.tex

    r256 r271  
    676676
    677677\subsubsection{Coordinate frames}
     678\label{sec:coordinateFrames}
    678679
    679680There are five coordinate frames that we need to worry about for the
     
    743744first-order 2D polynomials, simply specifying a translation, rotation
    744745and magnification; hence they are easily inverted, and there is no
    745 need to add reverse transformations.
     746need to add reverse transformations.  We also add an additional
     747transformation, which is intended to provide a ``quick and dirty''
     748transform from the cell coordinates to the sky; this transformation
     749not guaranteed to be as precise as the ``standard'' transformation of
     750Cell $\rightarrow$ Chip $\rightarrow$ Focal Plane $\rightarrow$
     751Tangent Plane $\rightarrow$ Sky, but will be faster.
    746752
    747753\begin{verbatim}
     
    756762    psCoordXform *cellToChip;           ///< Transformations from cell coordinates to chip coordinates
    757763    psCoordXform *cellToFPA;            ///< Transformations from cell coordinates to FPA coordinates
     764    psCoordXform *cellToSky;            ///< Quick and Dirty transformations from cell coordinates to sky
    758765
    759766    struct psChip  *parentChip;         ///< chip which contains this cell
     
    892899The fixed pattern is a correction to the general astrometric solution
    893900formed by summing the residuals from many observations.  The intent is
    894 to correct for higher-order distortions in the camera system
    895 
    896 
    897 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     901to correct for higher-order distortions in the camera system on a
     902coarse grid (larger than individual pixels, but smaller than a single
     903cell).  Hence, in addition to the offsets, we need to specify the size
     904and scale of the grid in $x$ and $y$, as well as the origin of the
     905grid.
     906
     907\begin{verbatim}
     908/** The fixed pattern residual offsets.  These are specified via a coarse grid of x and y offsets. */
     909typedef 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
     920Each of the above structures needs an appropriate constructor and
     921destructor.  Other than \code{psExposure}, which contains significant
     922non-pointer types, the constructors should not take any arguments, and
     923the destructors should only take the structure to be destroyed.
     924The constructor for \code{psExposure} is specified below.
     925
     926\begin{verbatim}
     927/** Constructor */
     928psExposure *
     929psExposureAlloc(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
     946We require functions to return the structure containing given coordinates.
     947For 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 */
     953psChip *
     954psChipInFPA (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 */
     961psCell *
     962psCellInChip (psChip *chip,             ///< chip description
     963              psCoord *coord            ///< coordinate in chip
     964              );
     965\end{verbatim}
     966
     967Usually we will want to go directly from the FPA to the Cell, so we
     968also specify the following function, which performs the above two
     969functions in order.
     970
     971\begin{verbatim}
     972/** Return the cell in FPA which contains the given FPA coordinates */
     973psCell *
     974psCellInFPA(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
     984We require functions to convert between the various coordinate frames
     985(Section~\ref{sec:coordinateFrames}).  The heirarchy of the coordinate
     986frames and the transformations between each are shown in
     987Figure~\ref{fig:coco}.  The functions that employ the transformations
     988are shown in Figure~\ref{fig:cocoFunc}.  In addition to
     989transformations between each adjoining coordinate frame in the
     990heirarchy, we also require higher-level functions to convert between
     991the Cell and Sky coordinate frames; these will simply perform the
     992intermediate 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
     997between each by transformations contained in the appropriate
     998structures.}
     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
     1008The function prototypes are:
     1009
     1010\begin{verbatim}
     1011/** returns Chip in FPA which contains the given FPA coordinate */
     1012psChip *
     1013psChipInFPA (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 */
     1021psCell *
     1022psCellInChip(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 */
     1030psCell *
     1031psCellInFPA(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 */
     1039psCoord *
     1040psCoordSkyToCell(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) */
     1048psCoord *
     1049psCoordCellToSky(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 */
     1057psCoord *
     1058psCoordCellToSkyQuick(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 */
     1066psCoord *
     1067psCoordSkyToTP(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 */
     1075psCoord *
     1076psCoordTPtoFPA(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 */
     1084psCoord *
     1085psCoordFPAtoChip (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 */
     1094psCoord *
     1095psCoordChiptoCell (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 */
     1103psCoord *
     1104psCoordCelltoChip (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 */
     1112psCoord *
     1113psCoordChiptoFPA (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 */
     1121psCoord *
     1122psCoordFPAToTP(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) */
     1130psCoord *
     1131psCoordTPtoSky(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 */
     1139psCoord *
     1140psCoordCellToFPA(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
     1148We require additional functions to perform general functions which
     1149will be useful for astrometry.  Given coordinates on the sky, we
     1150need to get the airmass, the parallactic angle, and an estimate of
     1151the atmospheric refraction.
     1152
     1153\begin{verbatim}
     1154/** Get the airmass for a given position and sidereal time */
     1155float
     1156psGetAirmass(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 */
     1164float
     1165psGetParallactic(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 */
     1172float
     1173psGetRefraction(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%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    8981182\subsection{Dates and times}
    899 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1183%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9001184\subsection{Image handling}
    901 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1185%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1186Gene
     1187
    9021188\subsection{Metadata}
    903 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1189%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1190Gene
     1191
    9041192\subsection{Detector and sky positions}
    905 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1193%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9061194\subsection{Astronomical objects}
    907 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1195
     1196%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9081197\subsection{Photometry}
    9091198
    910 
    911 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    912 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    913 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1199Gene
     1200
     1201%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1202%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     1203%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    9141204
    9151205\bibliographystyle{plain} \bibliography{panstarrs}
Note: See TracChangeset for help on using the changeset viewer.