Changeset 3775
- Timestamp:
- Apr 27, 2005, 11:32:24 AM (21 years ago)
- Location:
- trunk/doc/pslib
- Files:
-
- 2 edited
-
ChangeLogSDRS.tex (modified) (2 diffs)
-
psLibSDRS.tex (modified) (42 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/pslib/ChangeLogSDRS.tex
r3772 r3775 1 %%% $Id: ChangeLogSDRS.tex,v 1.9 1 2005-04-27 19:59:03eugene Exp $1 %%% $Id: ChangeLogSDRS.tex,v 1.92 2005-04-27 21:32:24 eugene Exp $ 2 2 3 3 \subsection{Changes from version 00 to version 01} … … 560 560 \item added \code{psVectorExtend} function 561 561 \item changed inputs to \code{psImageSlice} to use \code{psRegion} 562 \end{itemize} 562 563 \item changes involving \code{psRegion} 564 \begin{itemize} 565 \item moved Image Regions section to beginning of Image Operations 566 \item dropped psImageSubsection (redundant now) 567 568 \item changed the following functions to use psRegion: 569 psImageSubset, psImageTrim, psImageSlice, psImageCut 570 571 \item added clarification to meaning of psRegion x0,x1,y0,y1 values. 572 \end{itemize} 573 574 \item removed psMetadata.ptype as per bug 313, dropped reference in psDB section. 575 \item clarified the discussion of duplicate keys and the option flags in \code{psMetadata} 576 577 \end{itemize} -
trunk/doc/pslib/psLibSDRS.tex
r3774 r3775 1 %%% $Id: psLibSDRS.tex,v 1.2 09 2005-04-27 20:30:42eugene Exp $1 %%% $Id: psLibSDRS.tex,v 1.210 2005-04-27 21:32:24 eugene Exp $ 2 2 \documentclass[panstarrs,spec]{panstarrs} 3 3 … … 1884 1884 psLookupTable *psLookupTableAlloc(const char *filename, ///< File from which to read 1885 1885 const char *format ///< scanf-like format string 1886 int indexCol ///< Column of the index vector (starting at zero)1886 int indexCol ///< Column of the index vector (starting at zero) 1887 1887 ); 1888 1888 \end{verbatim} … … 2564 2564 \end{verbatim} 2565 2565 2566 Then \code{psMinimizePowell} shall mi mimize the specified function,2566 Then \code{psMinimizePowell} shall minimize the specified function, 2567 2567 \code{func}, using the Powell method: 2568 2568 … … 2631 2631 psSpline1D *psVectorFitSpline1D(const psVector *x, 2632 2632 const psVector *y 2633 int nKnots);2633 int nKnots); 2634 2634 \end{verbatim} 2635 2635 \code{psVectorFitSpline1D} shall return the spline that best fits the … … 2684 2684 the value is added to the image dimensions ($Nx + x1$). Thus a region 2685 2685 \code{[0:0,0:0]} refers to the full image array, while 2686 \code{[0:-10,0:-20]} trims the last 10 colum s and the last 20 rows.2686 \code{[0:-10,0:-20]} trims the last 10 columns and the last 20 rows. 2687 2687 2688 2688 \subsubsection{Image Structure Manipulation} … … 2746 2746 psVector *psImageSlice(psVector *out, 2747 2747 psVector *coords, 2748 const psImage *input,2748 const psImage *input, 2749 2749 const psImage *mask, 2750 unsigned int maskVal,2751 psRegion region,2752 psImageCutDirection direction,2753 const psStats *stats);2754 \end{verbatim} 2755 Extract pixels from rect linear region to a vector (array of floats).2750 unsigned int maskVal, 2751 psRegion region, 2752 psImageCutDirection direction, 2753 const psStats *stats); 2754 \end{verbatim} 2755 Extract pixels from rectilinear region to a vector (array of floats). 2756 2756 The output vector contains either \code{region.x1-region.x0} or 2757 2757 \code{region.y1-region.y0} elements, based on the value of the … … 2784 2784 const psImage *mask, 2785 2785 unsigned int maskVal, 2786 psRegion region,2786 psRegion region, 2787 2787 unsigned int nSamples, 2788 2788 psImageInterpolateMode mode); … … 2926 2926 psImage *psImageTransform(psImage *output, 2927 2927 psArray **blankPixels, 2928 const psImage *input,2928 const psImage *input, 2929 2929 const psImage *inputMask, 2930 int inputMaskVal,2931 const psPlaneTransform *outToIn,2932 const psRegion region,2933 const psPixels *pixels,2934 psImageInterpolateMode mode,2935 double exposedValue);2930 int inputMaskVal, 2931 const psPlaneTransform *outToIn, 2932 const psRegion region, 2933 const psPixels *pixels, 2934 psImageInterpolateMode mode, 2935 double exposedValue); 2936 2936 \end{verbatim} 2937 2937 Transform the \code{input} image according the supplied … … 3125 3125 \begin{verbatim} 3126 3126 typedef struct { 3127 int x; // x coordinate3128 int y; // y coordinate3127 int x; // x coordinate 3128 int y; // y coordinate 3129 3129 } psPixelCoord; 3130 3130 … … 3132 3132 int n; // Number in use 3133 3133 const int nalloc; // Number allocated 3134 psPixelCoord *data; // The pixel coordinates3134 psPixelCoord *data; // The pixel coordinates 3135 3135 } psPixels; 3136 3136 \end{verbatim} … … 3142 3142 3143 3143 \code{psPixelsAlloc} and \code{psPixelsRealloc} provide dynamic 3144 allocation and reallocation in a manner anal agous to those provided3144 allocation and reallocation in a manner analogous to those provided 3145 3145 by \code{psVectorAlloc} and \code{psVectorRealloc}. 3146 3146 … … 3163 3163 coordinates in the \code{mask} that match the \code{maskVal}. The 3164 3164 \code{out} pixel list shall be modified if supplied, or allocated and 3165 returned if \code{NULL}. In hte event that \code{mask} is3165 returned if \code{NULL}. In the event that \code{mask} is 3166 3166 \code{NULL}, the function shall generate an error and return 3167 3167 \code{NULL}. … … 3355 3355 Finally, we specify two functions to convert between matrices and 3356 3356 vectors. This allows the use of vectors in matrix arithmetic, since a 3357 vector can be converted to a matrix, utili sed, and the result can be3357 vector can be converted to a matrix, utilized, and the result can be 3358 3358 converted back to a vector if required. This function is specified 3359 3359 for data types \code{psF32, psF64}. Input and output data types … … 3368 3368 \subsection{(Fast) Fourier Transforms} 3369 3369 3370 We require the ability to calculate the (fast) fourier transforms of3370 We require the ability to calculate the (fast) Fourier transforms of 3371 3371 floating-point one-dimensional vectors and two-dimensional images. We 3372 3372 expect that these will be implemented through wrapping an external … … 3401 3401 3402 3402 We also specify the additional utility functions 3403 \code{psVectorConju agte} and \code{psVectorPowerSpectrum} which3403 \code{psVectorConjugate} and \code{psVectorPowerSpectrum} which 3404 3404 construct the complex conjugate (\code{psC32}) and the magnitude 3405 3405 (\code{psF32}) vectors of the input complex vector (\code{psC32}). … … 3558 3558 We define a \code{psRandom} type, which will allow us to carry around 3559 3559 pre-computed random numbers, if required. For the time being, we only 3560 specify a single rando nnumber generator (RNG) in \code{psRandomType}3560 specify a single random number generator (RNG) in \code{psRandomType} 3561 3561 (that provided by \code{gsl_rng_taus}), but we leave this open to 3562 3562 expansion in the future, depending upon user requirements. … … 3724 3724 \begin{verbatim} 3725 3725 typedef struct { 3726 int id;///< unique ID for this item3726 const psS32 id; ///< unique ID for this item 3727 3727 char *name; ///< Name of item 3728 3728 psMetadataType type; ///< type of this item 3729 psElemType ptype; ///< primitive data type3730 3729 const union { 3731 3730 psS32 S32; ///< integer data 3732 3731 psF32 F32; ///< floating-point data 3733 3732 psF64 F64; ///< double-precision data 3734 void *V; ///< other type3735 3733 psList *list; ///< psList entry 3736 3734 psMetadata *md; ///< psMetadata entry 3735 psPtr V; ///< other type 3737 3736 } data; ///< value of metadata 3738 3737 char *comment; ///< optional comment ("", not NULL) … … 3753 3752 \filbreak 3754 3753 \begin{verbatim} 3755 typedef enum { ///< type of item.data is: 3756 PS_META_PRIMITIVE, ///< primitive type: use item.ptype 3757 PS_META_LIST, ///< psList; use item.data.list (used for non-unique data) 3758 PS_META_META, ///< psMetadata: use item.data.list 3759 PS_META_STR, ///< string (item.data.V) 3760 PS_META_MATH, ///< psScalar, psVector, psImage (item.data.V) 3761 PS_META_JPEG, ///< JPEG (item.data) 3762 PS_META_PNG, ///< PNG (item.data) 3763 PS_META_ASTROM, ///< astrometric coefficients (item.data) 3764 PS_META_TIME, ///< psTime (item.data.V) 3765 PS_META_UNKNOWN, ///< other (item.data) 3766 PS_META_NTYPE ///< Number of types; must be last 3754 typedef enum { ///< type of item.data is: 3755 PS_META_S32 = PS_TYPE_S32, ///< psS32 primitive data. 3756 PS_META_F32 = PS_TYPE_F32, ///< psF32 primitive data. 3757 PS_META_F64 = PS_TYPE_F64, ///< psF64 primitive data. 3758 PS_META_BOOL = PS_TYPE_BOOL, ///< psBool primitive data. 3759 PS_META_LIST = 0x10000, ///< List data (Stored as item.data.list). 3760 PS_META_STR, ///< String data (Stored as item.data.V). 3761 PS_META_VEC, ///< Vector data (Stored as item.data.V). 3762 PS_META_IMG, ///< Image data (Stored as item.data.V). 3763 PS_META_HASH, ///< Hash data (Stored as item.data.V). 3764 PS_META_LOOKUPTABLE, ///< Lookup table data (Stored as item.data.V). 3765 PS_META_JPEG, ///< JPEG data (Stored as item.data.V). 3766 PS_META_PNG, ///< PNG data (Stored as item.data.V). 3767 PS_META_ASTROM, ///< Astrometric coefficients (Stored as item.data.V). 3768 PS_META_UNKNOWN, ///< Other data (Stored as item.data.V). 3769 PS_META_MULTI ///< Used internally, do not create a metadata item of this type. 3767 3770 } psMetadataType; 3768 3771 \end{verbatim} 3769 If the data is a PSLib primitive data value, the primitive data type 3770 is given by the value of \code{ptype}. 3772 The macro \code{PS_META_IS_PRIMITIVE(psMetadataType.type)} returns 3773 true if the type is one of the primitive data types (S32, F64, etc). 3774 In such a case, the data value is directly available. Otherwise, a 3775 pointer to the data is available. 3771 3776 3772 3777 A collection of metadata is represented by the \code{psMetadata} structure: … … 3792 3797 \code{psMetadata.hash} entries, which are required to have unique 3793 3798 keys, would have a single entry with the keyword of the repeated key, 3794 with the value of \code{psMetadataType} set to \code{PS_META_ LIST},3799 with the value of \code{psMetadataType} set to \code{PS_META_MULTI}, 3795 3800 and the \code{psMetadataItem.data} element pointing to a \code{psList} 3796 3801 containing the actual entries. If \code{psMetadataItemAlloc} is 3797 called with the type set to \code{PS_META_LIST}, such a repeated key 3798 is created. If the data value passed to \code{psMetadataItemAlloc} 3799 (the quantity in ellipsis) is \code{NULL}, then an empty 3800 \code{psMetadataItem} with the given keyword is created to hold future 3801 entries of that keyword. 3802 3803 The \code{psMetadataAdd} routine is required to check that all 3804 metadata names are unique unless the type is already qualified as 3805 \code{PS_META_LIST}; in this case the data are added to the 3806 corresponding \code{psMetadataItem.data} list. 3802 called with the type set to \code{PS_META_MULTI}, such a repeated key 3803 is created. In this case, the data value passed to 3804 \code{psMetadataItemAlloc} (the quantity in ellipsis) must be 3805 \code{NULL}. An empty \code{psMetadataItem} with the given keyword is 3806 created to hold future entries of that keyword. 3807 3807 3808 3808 \subsubsection{Metadata APIs} 3809 3810 \begin{verbatim} 3811 psMetadata *psMetadataAlloc(void); 3812 \end{verbatim} 3813 3814 The constructor for the collection of metadata, \code{psMetadata}, 3815 simply returns an empty metadata container (employing the constructors 3816 for the doubly-linked list and hash table). The destructor needs to 3817 free each of the \code{psMetadataItem}s. 3818 3819 \begin{verbatim} 3820 psMetadataItem *psMetadataItemAlloc(const char *name, psMetadataType type, const char *comment, ...); 3821 psMetadataItem *psMetadataItemAllocV(const char *name, psMetadataType type, const char *comment, va_list list); 3822 \end{verbatim} 3809 3823 3810 3824 The allocator for \code{psMetadataItem} returns a full … … 3821 3835 list must be interpreted appropriately by the \code{va_list} operators 3822 3836 in the function. 3823 \begin{verbatim} 3824 psMetadataItem *psMetadataItemAlloc(const char *name, psMetadataType type, const char *comment, ...); 3825 psMetadataItem *psMetadataItemAllocV(const char *name, psMetadataType type, const char *comment, va_list list); 3826 \end{verbatim} 3827 3828 The constructor for the collection of metadata, \code{psMetadata}, 3829 simply returns an empty metadata container (employing the constructors 3830 for the doubly-linked list and hash table). The destructor needs to 3831 free each of the \code{psMetadataItem}s using \code{psMetadataItemFree}. 3832 \begin{verbatim} 3833 psMetadata *psMetadataAlloc(void); 3837 3838 \begin{verbatim} 3839 bool psMetadataAddItem(psMetadata *md, psMetadataItem *item, int location, int mode); 3840 bool psMetadataAdd(psMetadata *md, int location, const char *name, int format, const char *comment, ...); 3841 bool psMetadataAddV(psMetadata *md, int location, const char *name, int format, const char *comment, 3842 va_list list); 3834 3843 \end{verbatim} 3835 3844 … … 3846 3855 the \code{psList}. The entry \code{mode} for \code{psMetadataAddItem} 3847 3856 is a bit mask constructed by OR-ing the allowed option flags (eg, 3848 \code{PS_META_REPLACE}) which specif iesminor variations on the3857 \code{PS_META_REPLACE}) which specify minor variations on the 3849 3858 behavior. The \code{format} entry, which specifies both the metadata 3850 3859 type and the optional flags, is constructed by bit-wise OR-ing the 3851 appropriate \code{psMetadataType} and allowed option option flags. 3852 Care should be taken not to leak memory when appending an item for 3853 which the key already exists in the metadata (and is not 3854 \code{PS_META_LIST}). 3855 % 3856 \begin{verbatim} 3857 bool psMetadataAddItem(psMetadata *md, psMetadataItem *item, int location, int mode); 3858 bool psMetadataAdd(psMetadata *md, int location, const char *name, int format, const char *comment, ...); 3859 bool psMetadataAddV(psMetadata *md, int location, const char *name, int format, const char *comment, 3860 va_list list); 3860 appropriate \code{psMetadataType} and allowed option flags. Care 3861 should be taken not to leak memory when appending an item for which 3862 the key already exists in the metadata (and is not 3863 \code{PS_META_MULTI}). 3864 % 3865 3866 \begin{verbatim} 3867 typedef enum { ///< option flags for psMetadata functions 3868 PS_META_DEFAULT, ///< default behavior (0x0000) for use in mode above 3869 PS_META_REPLACE, ///< allow entry to be replaced 3870 PS_META_DUPLICATE_OK, ///< allow entry to be replaced 3871 } psMetadataFlags; 3861 3872 \end{verbatim} 3862 3873 … … 3871 3882 place. 3872 3883 3873 \code{PS_META_REPLACE}: If the given metadata item exists in the 3874 metadata list, and is not of type \code{PS_META_LIST} or 3875 \code{PS_META_META} (ie, not a container type), then this entry is 3876 allowed to replace the existing entry. If this mode bit is not set, a 3877 duplicate (non-container-type) entry is an error. 3878 3879 \begin{verbatim} 3880 typedef enum { ///< option flags for psMetadata functions 3881 PS_META_DEFAULT, ///< default behavior (0x0000) for use in mode above 3882 PS_META_REPLACE, ///< allow entry to be replaced 3883 } psMetadataFlags; 3884 \end{verbatim} 3884 \code{PS_META_REPLACE}: Replace an existing, unique entry. If the 3885 given metadata item exists in the metadata collection, and is not of 3886 type \code{PS_META_MULTI}, then the item replaces the existing entry. 3887 3888 \code{PS_META_DUPLICATE_OK}: Allow the new metadata item key to be a 3889 duplicate (ie, \code{PS_META_MULTI}). If an existing item with the 3890 same key is already \code{PS_META_MULTI}, the new item is added to the 3891 \code{PS_META_MULTI} list. If the existing item is not 3892 \code{PS_META_MULTI}, a \code{PS_META_MULTI} list is created to 3893 contain both the existing item and the new item. The original entry's 3894 location on the psMetadata.list must be maintained. 3895 3896 There are several of cases to handle for duplication of an existing 3897 key by a new key, some identified above. The following situations 3898 must also be handled: 3899 3900 If the new key already exists, but is not \code{PS_META_MULTI}, and 3901 the new item is not flagged as either \code{PS_META_DUPLICATE_OK} or 3902 \code{PS_META_REPLACE}, an error is raised. 3903 3904 If the new key already exists, and the existing item is 3905 \code{PS_META_MULTI}, the new item is added to the MULTI list. Note 3906 that if the new item is also of type \code{PS_META_MULTI}, no action 3907 is taken, but a successful exit status is returned (the action of 3908 adding a \code{PS_META_MULTI} item to the metadata is equivalent to 3909 setting that key to be tagged as \code{PS_META_MULTI}. If it is 3910 {\em already} \code{PS_META_MULTI}, this effect has already been 3911 achieved). 3885 3912 3886 3913 An example of code to use these metadata APIs to generate the … … 4023 4050 formatted string. A \code{NULL} shall be returned on error. The 4024 4051 \code{psMetadataConfigWrite} behaves the same as \code{psMetadataConfigFormat} 4025 except that the string is writ en out to \code{filename}. \code{false} is4052 except that the string is written out to \code{filename}. \code{false} is 4026 4053 returned on failure. 4027 4054 … … 4079 4106 1.23+4.56i in the future.} 4080 4107 4081 \tbd{May add null, Not-a-Number (NaN), de normalized, underflow, overflow,4108 \tbd{May add null, Not-a-Number (NaN), de-normalized, underflow, overflow, 4082 4109 and/or +/-infinity values for selected types.} 4083 4110 … … 4088 4115 in the configuration file as non-unique with a \code{MULTI} declaration. In 4089 4116 the form \code{[keyword] MULTI}. No other data may be provided on this line, 4090 though a comment, prece eded by the comment marker, is valid. A warning shall4117 though a comment, preceded by the comment marker, is valid. A warning shall 4091 4118 be produced when a key which has not been specified to be non-unique is 4092 4119 repeated; in this case, the former value shall be overwritten if … … 4140 4167 We support a modest tree structure by defining a reserved keyword \code{TYPE}. 4141 4168 Any line in the config file which starts with the word \code{TYPE} shall be 4142 interpret ted as defining a new valid type. The defined type name follows the4169 interpreted as defining a new valid type. The defined type name follows the 4143 4170 word \code{TYPE}, and is in turn followed by an arbitrary number of words. 4144 4171 These words are to be interpreted as the names of an embedded \code{psMetadata} … … 4257 4284 4258 4285 The next pair of functions read from and write to a file descriptor. 4259 The first converts the i mcoming data to a complete \code{psXMLDoc}4286 The first converts the incoming data to a complete \code{psXMLDoc} 4260 4287 (also in memory), the second writes the \code{psXMLDoc} to the file 4261 4288 descriptor: … … 4349 4376 collection represents a single table field. The name of the field is 4350 4377 given by the name of the \code{psMetadataItem} and the data type is 4351 give by the \code{psMetadataItem.type} and \code{psMetadataItem.ptype}4352 entries. A lookup table should be used to convert from PSLib types 4353 into MySQL compatible SQL data types. For example, a 4354 \code{PS_META_STR} would map to an SQL99 varchar. If the value of 4355 \code{ type} is \code{PS_META_STR} then the \code{psMetadataItem.data}4356 element is set to a string with the length for the field written as a 4357 text string. The value of the \code{psMetadataItem.data} element is 4358 unused for the \code{PS_META_PRIMITIVE} types. Other metadata types 4359 beyond \code{PS_META_STR} and \code{PS_META_PRIMITIVE} are not allowed 4360 in atable definition metadata collection.4378 given by the \code{psMetadataItem.type} entry. A lookup table should 4379 be used to convert from PSLib types into MySQL compatible SQL data 4380 types. For example, a \code{PS_META_STR} would map to an SQL99 4381 varchar. If the value of \code{type} is \code{PS_META_STR} then the 4382 \code{psMetadataItem.data} element is set to a string with the length 4383 for the field written as a text string. The value of the 4384 \code{psMetadataItem.data} element is unused for the 4385 \code{PS_META_PRIMITIVE} types. Other metadata types beyond 4386 \code{PS_META_STR} and \code{PS_META_PRIMITIVE} are not allowed in a 4387 table definition metadata collection. 4361 4388 4362 4389 Database indexes can be specified setting the \code{comment} field to … … 4374 4401 \begin{verbatim} 4375 4402 psArray *psDBSelectColumn(psDB *dbh, const char *tableName, const char *col, const psU64 limit); 4376 psVector *psDBSelectColumnNum(psDB *dbh, const char *tableName, const char *col, ps ElemType pType, const psU64 limit);4403 psVector *psDBSelectColumnNum(psDB *dbh, const char *tableName, const char *col, psMetadataType type, const psU64 limit); 4377 4404 \end{verbatim} 4378 4405 … … 4381 4408 the entire range is returned. The database response is processed and a 4382 4409 \code{psArray} of strings is returned. The Num version of the function returns 4383 the data in a \code{psVector}, data cast to \code{ pType}. It returns an error4410 the data in a \code{psVector}, data cast to \code{type}. It returns an error 4384 4411 (NULL) if the requested field is not a numerical type. 4385 4412 … … 4422 4449 \end{verbatim} 4423 4450 4424 Fetch all columns, as either a psVector or a psArray dep nding on whether or not4451 Fetch all columns, as either a psVector or a psArray depending on whether or not 4425 4452 the column is numeric, and return them in a psMetadata structure where 4426 4453 psMetadataItem.name contains the column's name. … … 4596 4623 at by the \code{psFits} file pointer. The row number to be read is 4597 4624 given by \code{row}. The result is returned as a \code{psMetadata} 4598 collection with elements of the app orpriate types and keys4625 collection with elements of the appropriate types and keys 4599 4626 corresponding to the table column names. The function must apply the 4600 4627 needed byte-swapping on the data in the row based on the description … … 4726 4753 \subsubsection{Constructors} 4727 4754 4728 To allocate a new, init alized to zero, \code{psTime}:4755 To allocate a new, initialized to zero, \code{psTime}: 4729 4756 4730 4757 \begin{verbatim} … … 4748 4775 This function may be used to convert between the various \code{psTimeType} time 4749 4776 representations. The \code{time} is modified and returned. Conversion between 4750 all of the \emph{SI} length second systems should be impl imented by first4777 all of the \emph{SI} length second systems should be implemented by first 4751 4778 converting to TAI and then to the destination system. UT1 is a special case 4752 for conversion as it uses variable length seco unds. Conversation to UT1, via4779 for conversion as it uses variable length seconds. Conversation to UT1, via 4753 4780 TAI, is allowed but conversion \emph{from} UT1 is currently forbidden. 4754 4781 … … 4790 4817 4791 4818 The following function accepts \code{PS_TIME_UTC} objects and 4792 determines if the time is potent aly a leapsecond, returning4819 determines if the time is potentially a leapsecond, returning 4793 4820 \code{TRUE} if so. 4794 4821 … … 4855 4882 4856 4883 Note that in both these functions the difference between two times is 4857 the elapsed number of seconds, inclu sing leap seconds. For example,4884 the elapsed number of seconds, including leap seconds. For example, 4858 4885 if we add 30 seconds to 1998-12-31T23:59:45Z, the result is 4859 4886 1999-01-01T00:00:14Z, since a leap second was introduced at … … 4873 4900 $x_p$ and $y_p$, may be determined from table lookups. Tables are available 4874 4901 covering different time periods and with different time resolution, and so it 4875 is important to be able to utili se multiple tables. Some tables may be found4902 is important to be able to utilize multiple tables. Some tables may be found 4876 4903 at: 4877 4904 … … 5244 5271 Spherical rotations represent coordinate transformation in 3-D, as 5245 5272 well as the effects of precession and nutation. We need spherical 5246 rotat ations to convert between ICRS, Galactic and Ecliptic5273 rotations to convert between ICRS, Galactic and Ecliptic 5247 5274 coordinates, and to determine Alt-Az coordinates for sources. All of 5248 5275 these basic spherical transformations represent rotations of the … … 5296 5323 5297 5324 The following function combines two rotations, to produce a single 5298 rotation which is the equival lent of applying the first rotation and5325 rotation which is the equivalent of applying the first rotation and 5299 5326 then the second. The output rotation may be supplied, or will be 5300 5327 allocated if \code{NULL}. … … 5389 5416 Celestial Reference System (GCRS), which uses the earth barycenter as 5390 5417 a reference. The transformation between these two includes the 5391 ab beration due to the Earth's velocity, the parallax of the object,5418 aberration due to the Earth's velocity, the parallax of the object, 5392 5419 which depends on both the Earth's position and the distance to the 5393 5420 object of interest, and the general relativistic correction for the 5394 5421 bending of light as it approaches the Earth. 5395 5422 5396 The next set of transformations compens tate for the 3-D rotation of5423 The next set of transformations compensate for the 3-D rotation of 5397 5424 the Earth on various timescales, including the effects of precession, 5398 5425 nutation, and simple solid-body rotation. These calculations can be … … 5400 5427 precision. Since the Earth's rotation is constantly affected by 5401 5428 stochastic processes (weather, earthquakes, etc), these conversions 5402 are constantly modified by observations reported by author atative5429 are constantly modified by observations reported by authoritative 5403 5430 sources such as the US Naval Observatory. The target of this 5404 5431 transformation is the International Terrestrial Reference System 5405 5432 (ITRS), which is fixed with respect to the Earth's crust. This 5406 transformation is subdivided into slow preces ion and nutation5433 transformation is subdivided into slow precession and nutation 5407 5434 (yielding the coordinate system CIP/CEO), followed by the Earth's 5408 5435 rotation (yielding the coordinate system CIP/TEO), and finally … … 5719 5746 5720 5747 \tbd{This section is to be deferred, and for now consists only of 5721 place holders, with no functional items.}5748 place holders, with no functional items.} 5722 5749 5723 5750 Photometric observations are performed in an instrumental photometric
Note:
See TracChangeset
for help on using the changeset viewer.
