Changeset 4904
- Timestamp:
- Aug 30, 2005, 12:35:21 PM (21 years ago)
- Location:
- trunk/doc/pslib
- Files:
-
- 2 edited
-
ChangeLogSDRS.tex (modified) (2 diffs)
-
psLibSDRS.tex (modified) (17 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/pslib/ChangeLogSDRS.tex
r4903 r4904 1 %%% $Id: ChangeLogSDRS.tex,v 1.16 7 2005-08-30 21:29:38 jhoblittExp $1 %%% $Id: ChangeLogSDRS.tex,v 1.168 2005-08-30 22:35:21 price Exp $ 2 2 3 3 \subsection{Changes from version 00 to version 01} … … 773 773 \item Added explanatory note about \code{psRegionFromString} and the FITS standard. 774 774 \item add \code{psFitsOpenStream()} 775 \end{itemize} 776 775 \item Removed \code{psFixedPattern}. 776 \item Changed \code{format} option for 777 \code{psMetadataAddS32,psMetadataAddF32,psMetadataAddF64,psMetadataAddBool,psMetadataAddStr}. 778 \item \code{psVectorFitSpline1D} now takes an input \code{psSpline1D}, 779 and an optional error vector. 780 \end{itemize} 781 -
trunk/doc/pslib/psLibSDRS.tex
r4903 r4904 1 %%% $Id: psLibSDRS.tex,v 1.3 29 2005-08-30 21:29:38 jhoblittExp $1 %%% $Id: psLibSDRS.tex,v 1.330 2005-08-30 22:35:21 price Exp $ 2 2 \documentclass[panstarrs,spec]{panstarrs} 3 3 … … 918 918 PS_DATA_ARRAY, ///< psArray 919 919 PS_DATA_BITSET, ///< psBitSet 920 PS_DATA_CELL, ///< psCell921 PS_DATA_CHIP, ///< psChip922 920 PS_DATA_CUBE, ///< psCube 923 921 PS_DATA_FITS, ///< psFits … … 940 938 PS_DATA_POLYNOMIAL4D, ///< psPolynomial4D 941 939 PS_DATA_PROJECTION, ///< psProjection 942 PS_DATA_READOUT, ///< psReadout943 940 PS_DATA_REGION, ///< psRegion 944 941 PS_DATA_SCALAR, ///< psScalar … … 986 983 bool psMemCheckArray(psPtr ptr); 987 984 bool psMemCheckBitSet(psPtr ptr); 988 bool psMemCheckCell(psPtr ptr);989 bool psMemCheckChip(psPtr ptr);990 985 bool psMemCheckCube(psPtr ptr); 991 986 bool psMemCheckFits(psPtr ptr); … … 1008 1003 bool psMemCheckPolynomial4D(psPtr ptr); 1009 1004 bool psMemCheckProjection(psPtr ptr); 1010 bool psMemCheckReadout(psPtr ptr);1011 1005 bool psMemCheckRegion(psPtr ptr); 1012 1006 bool psMemCheckScalar(psPtr ptr); … … 2739 2733 are specified: 2740 2734 \begin{prototype} 2741 bool psMetadataAddStr(psMetadata* md, long location, const char* name, const char* comment, 2742 const char* value); 2743 bool psMetadataAddS32(psMetadata* md, long location, const char* name, const char* comment, psS32 value); 2744 bool psMetadataAddF32(psMetadata* md, long location, const char* name, const char* comment, psF32 value); 2745 bool psMetadataAddF64(psMetadata* md, long location, const char* name, const char* comment, psF64 value); 2746 bool psMetadataAddBool(psMetadata* md, long location, const char* name, const char* comment, bool value); 2735 bool psMetadataAddStr(psMetadata* md, long location, const char* name, int format, 2736 const char* comment, const char* value); 2737 bool psMetadataAddS32(psMetadata* md, long location, const char* name, int format, 2738 const char* comment, psS32 value); 2739 bool psMetadataAddF32(psMetadata* md, long location, const char* name, int format, 2740 const char* comment, psF32 value); 2741 bool psMetadataAddF64(psMetadata* md, long location, const char* name, int format, 2742 const char* comment, psF64 value); 2743 bool psMetadataAddBool(psMetadata* md, long location, const char* name, int format, 2744 const char* comment, bool value); 2747 2745 bool psMetadataAddPtr(psMetadata* md, long location, const char* name, psDataType type, 2748 const char* comment, psPtr value);2746 const char* comment, psPtr value); 2749 2747 \end{prototype} 2750 2748 … … 3100 3098 psVector *index; ///< Index values 3101 3099 psArray *values; ///< Corresponding values: an array of vectors 3102 const double validFrom, validTo; ///< Range of validity 3100 const double validFrom; ///< Minimum index value for validity 3101 const double validTo; ///< Maximum index value for validity 3103 3102 } psLookupTable; 3104 3103 \end{datatype} … … 3177 3176 and returned as a \code{psVector}, the type of which shall be 3178 3177 \code{PS_TYPE_F64}. 3178 3179 \tbd{What's the \code{stats} for???} 3179 3180 3180 3181 If the \code{index} is beyond the range of the \code{table}, … … 4388 4389 const psVector *bounds; ///< Bounds for the bins 4389 4390 psVector *nums; ///< Number in each of the bins 4390 int minNum, maxNum; ///< Number below minimum / above maximum 4391 int minNum; ///< Number below minimum 4392 int maxNum; ///< Number above maximum 4391 4393 bool uniform; ///< Is it a uniform distribution? 4392 4394 } psHistogram; … … 4474 4476 typedef struct { 4475 4477 psPolynomialType type; ///< Polynomial type 4476 unsigned int nX, nY; ///< Number of terms in x and y 4478 unsigned int nX ///< Number of terms in x 4479 unsigned int nY; ///< Number of terms in y 4477 4480 psF64 **coeff; ///< Coefficients 4478 4481 psF64 **coeffErr; ///< Error in coefficients … … 4509 4512 To evaluate the polynomials at specific coordinates, we define: 4510 4513 \begin{prototype} 4511 psF64 psPolynomial1DEval(const psPolynomial 2D *poly,4514 psF64 psPolynomial1DEval(const psPolynomial1D *poly, 4512 4515 psF64 x); 4513 4516 psF64 psPolynomial2DEval(const psPolynomial2D *poly, 4514 4517 psF64 x, 4515 4518 psF64 y); 4516 psF64 psPolynomial3DEval(const psPolynomial 2D *poly,4519 psF64 psPolynomial3DEval(const psPolynomial3D *poly, 4517 4520 psF64 x, 4518 4521 psF64 y, 4519 4522 psF64 z); 4520 psF64 psPolynomial4DEval(const psPolynomial 2D *poly,4523 psF64 psPolynomial4DEval(const psPolynomial4D *poly, 4521 4524 psF64 x, 4522 4525 psF64 y, … … 4527 4530 In the event that several evaluations are required, we also define: 4528 4531 \begin{prototype} 4529 psVector *psPolynomial1DEvalVector(const psPolynomial 2D *poly,4532 psVector *psPolynomial1DEvalVector(const psPolynomial1D *poly, 4530 4533 const psVector *x); 4531 4534 psVector *psPolynomial2DEvalVector(const psPolynomial2D *poly, 4532 4535 const psVector *x, 4533 4536 const psVector *y); 4534 psVector *psPolynomial3DEvalVector(const psPolynomial 2D *poly,4537 psVector *psPolynomial3DEvalVector(const psPolynomial3D *poly, 4535 4538 const psVector *x, 4536 4539 const psVector *y, 4537 4540 const psVector *z); 4538 psVector *psPolynomial4DEvalVector(const psPolynomial 2D *poly,4541 psVector *psPolynomial4DEvalVector(const psPolynomial4D *poly, 4539 4542 const psVector *x, 4540 4543 const psVector *y, … … 4926 4929 4927 4930 \begin{prototype} 4928 psSpline1D *psVectorFitSpline1D(const psVector *x, const psVector *y, int nKnots); 4929 \end{prototype} 4930 \code{psVectorFitSpline1D} shall return the spline that best fits the 4931 given combination of ordinates (\code{x}) and coordinates (\code{y}). 4932 The function shall construct a new \code{psSpline1D} using 4933 \code{nKnots} knots uniformly distributed over \code{x}. As is the 4934 case for \code{psVectorFitPolynomial1D}, if \code{x} is \code{NULL}, 4935 then the index of \code{y} shall be used as the ordinate. This 4936 function must be valid only for types \code{psF32}, \code{psF64}. 4931 bool psVectorFitSpline1D(psSpline1D *spline, const psVector *x, const psVector *y, 4932 const psVector * yErr); 4933 \end{prototype} 4934 \code{psVectorFitSpline1D} shall fit the code{spline} that best fits 4935 the given combination of ordinates (\code{x}) and coordinates 4936 (\code{y}) with the known errors (\code{yErr}, which may be 4937 \code{NULL}). As is the case for \code{psVectorFitPolynomial1D}, if 4938 \code{x} is \code{NULL}, then the index of \code{y} shall be used as 4939 the ordinate. This function must be valid only for types 4940 \code{psF32}, \code{psF64}. 4937 4941 4938 4942 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% … … 5657 5661 /** Specify direction of FFT, and if the result is real or not */ 5658 5662 typedef enum { 5659 PS_FFT_FORWARD = 0, ///< psImageFFT/psVectorFFT should perform a forward FFT.5660 PS_FFT_REVERSE = 1, ///< psImageFFT/psVectorFFT should perform a reverse FFT.5663 PS_FFT_FORWARD = 1, ///< psImageFFT/psVectorFFT should perform a forward FFT. 5664 PS_FFT_REVERSE = 2, ///< psImageFFT/psVectorFFT should perform a reverse FFT. 5661 5665 PS_FFT_REAL_RESULT = 4 ///< psImageFFT/psVectorFFT should return a real image. This is valid 5662 5666 ///< for only reverse FFT, i.e., the psImageFFT/psVectorFFT flag … … 6891 6895 which provides an estimate of the atmospheric refraction, along the parallactic angle. 6892 6896 6893 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%6894 6895 \subsection{Fixed Pattern}6896 6897 The fixed pattern is a correction to the general astrometric solution6898 formed by summing the residuals from many observations. The intent is6899 to correct for higher-order distortions in the camera system on a6900 coarse grid (larger than individual pixels, but smaller than a single6901 cell). Hence, in addition to the offsets, we need to specify the size6902 and scale of the grid in $x$ and $y$, as well as the origin of the6903 grid.6904 6905 \begin{datatype}6906 typedef struct {6907 int nX; ///< Number of elements in x6908 int nY; ///< Number of elements in y6909 double x0; ///< Position of 0,0 corner on focal plane6910 double y0; ///< Position of 0,0 corner on focal plane6911 double xScale; ///< Scale of the grid6912 double yScale; ///< Scale of the grid6913 double **x; ///< The grid of offsets in x6914 double **y; ///< The grid of offsets in y6915 } psFixedPattern;6916 \end{datatype}6917 6918 The constructor for \code{psFixedPattern} shall be:6919 \begin{prototype}6920 psFixedPattern *psFixedPatternAlloc(double x0, double y0,6921 double xScale, double yScale,6922 const psImage *x, const psImage *y);6923 \end{prototype}6924 Here, \code{x0}, \code{y0}, \code{xScale} and \code{yScale} have the6925 same meaning as in the \code{psFixedPattern} structure. Note that the6926 values of the fixed pattern offsets are specified as images, the6927 values from which need to be copied into the \code{double **x} and6928 \code{double **y} of \code{psFixedPattern}, and that the number of6929 elements may be derived from the size of the images.6930 6931 \tbd{Usage of this type is not clear, and awaits prototyping --- do not6932 worry about coding this in detail yet.}6933 6934 6897 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5 6935 6898 … … 6999 6962 objects, as well as Lunar phase. 7000 6963 7001 \begin{ prototype}6964 \begin{verbatim} %%% XXX: This is set to 'verbatim' instead of 'prototype' 7002 6965 psSphere *psSunGetPos(psTime *time); 7003 6966 psTime *psSunGetRise (psTime *twi15, psTime *twi18, const psTime *time); … … 7012 6975 psTime *psPlanetGetRise (psTime *twi15, psTime *twi18, psTime *time); 7013 6976 psTime *psPlanetGetSet (psTime *twi15, psTime *twi18, psTime *time); 7014 \end{ prototype}6977 \end{verbatim} 7015 6978 7016 6979 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Note:
See TracChangeset
for help on using the changeset viewer.
