1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385
|
#-----------------------------------------------------------------------------
# WCSLIB 4.8 - an implementation of the FITS WCS standard.
# Copyright (C) 1995-2011, Mark Calabretta
#
# This file is part of WCSLIB.
#
# WCSLIB is free software: you can redistribute it and/or modify it under the
# terms of the GNU Lesser General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option)
# any later version.
#
# WCSLIB is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
# more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with WCSLIB. If not, see <http://www.gnu.org/licenses/>.
#
# Correspondence concerning WCSLIB may be directed to:
# Internet email: mcalabre@atnf.csiro.au
# Postal address: Dr. Mark Calabretta
# Australia Telescope National Facility, CSIRO
# PO Box 76
# Epping NSW 1710
# AUSTRALIA
#
# Author: Mark Calabretta, Australia Telescope National Facility
# http://www.atnf.csiro.au/~mcalabre/index.html
# $Id: pih.keyrec,v 4.8.1.1 2011/08/15 08:07:06 cal103 Exp cal103 $
#-----------------------------------------------------------------------------
# FITS header keyrecords used for testing by tpih1, tpih2 and tfitshdr.
#
# Use 'tofits' (supplied) to convert this file to proper FITS format via
#
# tofits < bth.keyrec > bth.fits
#
# Lines in this file beginning with '#' are ignored by tofits.
#-----------------------------------------------------------------------------
SIMPLE = F / Standards-conformant FITS format? NO!
BITPIX = -32 / IEEE single precision floating point
NAXIS = 0 / No image data
COMMENT WARNING WARNING WARNING
COMMENT -------------------------
COMMENT This header has been developed for test purposes and as such contains
COMMENT all standard WCS keywords. Combining certain of them (e.g. PCi_ja,
COMMENT CDi_ja, and CROTAn) within a single FITS header violates certain WCS
COMMENT standards. However, taken individually, each representation is legal,
COMMENT except as indicated.
COMMENT
COMMENT The three alternate representations define essentially the same
COMMENT coordinate system in three different ways. The older AIPS convention
COMMENT is necessarily used for the primary representation because the
COMMENT alternate version code (e.g. the "a" in CTYPEia) is not applicable in
COMMENT that convention.
COMMENT
COMMENT For compatibility testing, the header also contains a number of non-
COMMENT standard keywords and constructs: the AIPS keywords CROTAn, EPOCH, and
COMMENT VELREF retrofitted with alternate version codes, and PROJPn, a
COMMENT forerunner of PVi_ma. However, non-standard CD00i00j and PC00i00j
COMMENT keywords, while recognized, are not included since they can only apply
COMMENT to the primary representation which is used here to test the AIPS
COMMENT convention.
COMMENT
COMMENT A simple TAN projection used in the primary representation is
COMMENT expressed as an equivalent SZP projection in the "A" representation,
COMMENT and approximated by a ZPN in the "I" representation. A bulk image
COMMENT rotation of 15 deg applied by the defunct CROTAn keyword in the AIPS
COMMENT convention is replaced in the alternates by an equivalent bulk image
COMMENT rotation of 30 deg applied by the linear transformation matrix,
COMMENT together with an effective bulk rotation of -15 deg applied by
COMMENT LONPOLE (this is only possible for zenithal projections).
COMMENT
COMMENT Similarly, the spectral axis in the primary representation, a simple
COMMENT linear frequency axis, is recast as non-linear wavelength and redshift
COMMENT axes in the alternates.
COMMENT
COMMENT Although the parser handles free-format character string, integer, and
COMMENT floating-point keyvalues (NOST 100-2.0, Sect. 5.2) most numeric values
COMMENT in this header are given in the conventional fixed-format, with only
COMMENT CROTA2I, EPOCHI, and VELREFI as exceptions for testing. Most string
COMMENT values are free-format, only those in the "A" representation are fixed.
COMMENT
COMMENT -----------------------------------------------------------------------
COMMENT -----------------------------------------------------------------------
COMMENT Primary representation
COMMENT ----------------------
COMMENT
COMMENT In the AIPS convention CROTAn associated with the latitude axis
COMMENT defines a bulk image rotation. Strictly speaking, the representation
COMMENT here is illegal since it mixes new WCS keywords (WCSAXESa and
COMMENT WCSNAMEa) with CROTAn, an older AIPS convention keyword. WCSAXES is
COMMENT used here because setting NAXIS non-zero would require that this FITS
COMMENT file contain a data section.
COMMENT
COMMENT Several PROJPn keyrecords (non-standard) are also included here for
COMMENT test purposes; they were never part of the AIPS convention and only
COMMENT appeared in early drafts of the WCS papers. Their values are not
COMMENT actually used in the TAN projection.
COMMENT
COMMENT -----------------------------------------------------------------------
COMMENT The following two keyrecords are not part of the AIPS convention.
WCSAXES = 4 / Four coordinate axes
WCSNAME = 'AIPS convention: TAN projection' / Name of this coordinate system
CRPIX1 = 513.0 / Pixel coordinate of reference point
CRPIX2 = 513.0 / Pixel coordinate of reference point
CRPIX3 = 1025.0 / Pixel coordinate of reference point
CRPIX4 = 1.0 / Pixel coordinate of reference point
CDELT1 = -0.10 / x-scale
CDELT2 = 0.10 / y-scale
CROTA2 = 15.0 / Bulk image rotation
CTYPE1 = 'RA---TAN' / Right ascension in a gnomonic projection
CRVAL1 = 150.0 / Right ascension at the reference point
CTYPE2 = 'DEC--TAN' / Declination in a gnomonic projection
CRVAL2 = -30.0 / Declination at the reference point
EPOCH = 2000.0 / Equinox of equatorial coordinates
CDELT3 = 62.5e3 / Frequency scale
CTYPE3 = 'FREQ ' / Frequency axis
CRVAL3 = 1.3945e9 / Reference frequency
VELREF = 258 / Barycentric radio velocity
ALTRPIX = 0.0 / Alternate reference pixel (not handled)
ALTRVAL = 0.0 / Alternate reference value (not handled)
RESTFREQ= 1.42040575e9 / HI rest frequency
CDELT4 = 1.0 / Stokes increment
CTYPE4 = 'STOKES ' / Stokes convention axis (I, Q, U, V)
CRVAL4 = 1.0 / Stokes I
COMMENT As explained above, the following keyrecords are non-standard.
PROJP0 = 0.0 / Projection parameter (not used)
PROJP1 = 0.0 / Projection parameter (not used)
PROJP2 = 0.0 / Projection parameter (not used)
COMMENT -----------------------------------------------------------------------
COMMENT Alternate representation 'A'
COMMENT ----------------------------
COMMENT
COMMENT This coordinate representation utilizing a PCi_ja matrix expresses the
COMMENT above gnomonic (TAN) projection as a slant zenithal perspective
COMMENT projection (SZP) in order to test the reading of a number of PVi_ma
COMMENT keywords. It also includes a linear time axis.
COMMENT
COMMENT This representation contains only standard keywords and usage.
COMMENT
COMMENT -----------------------------------------------------------------------
WCSAXESA= 4 / Four coordinate axes
WCSNAMEA= 'Standard representation: SZP projection' / Name of this system
CRPIX1A = 513.0 / Pixel coordinate of reference point
CRPIX2A = 513.0 / Pixel coordinate of reference point
CRPIX3A = 1025.0 / Pixel coordinate of reference point
CRPIX4A = 1.0 / Pixel coordinate of reference point
PC1_1A = 0.866025404 / Linear transformation matrix element
PC1_2A = 0.500000000 / Linear transformation matrix element
PC2_1A = -0.500000000 / Linear transformation matrix element
PC2_2A = 0.866025404 / Linear transformation matrix element
CDELT1A = -0.10 / [deg] x-scale
CUNIT1A = 'deg' / Degree units are required
CTYPE1A = 'RA---SZP' / Right ascension in slant zenithal projection
CRVAL1A = 150.0 / [deg] Right ascension at the reference point
CNAME1A = 'Right ascension (J2000)' / Axis name for labelling purposes
CDELT2A = 0.10 / [deg] y-scale
CUNIT2A = 'deg' / Degree units are required
CTYPE2A = 'DEC--SZP' / Declination in a slant zenithal projection
CRVAL2A = -30.0 / [deg] Declination at the reference point
CNAME2A = 'Declination (J2000)' / Axis name for labelling purposes
PV1_1A = 0.0 / [deg] Native longitude of the reference point
PV1_2A = 90.0 / [deg] Native latitude of the reference point
PV1_3A = 195.0 / [deg] LONPOLEa by another name (precedence)
PV1_4A = 999.0 / [deg] LATPOLEa by another name (precedence)
PV2_1A = 0.0 / SZP distance, in spherical radii
PV2_2A = 180.0 / [deg] SZP P-longitude
PV2_3A = 45.0 / [deg] SZP P-latitude
LONPOLEA= 195.0 / [deg] Native longitude of the NCP
LATPOLEA= 999.0 / [deg] Native latitude of the NCP
RADESYSA= 'FK5' / Mean equatorial coordinates, IAU 1984 system
EQUINOXA= 2000.0 / [yr] Equinox of equatorial coordinates
CDELT3A = -9.635265432e-6 / [m] Wavelength scale
CUNIT3A = 'm' / Wavelength units
CTYPE3A = 'WAVE-F2W' / Frequency axis expressed as wavelength
CRVAL3A = 0.214982042 / [m] Reference wavelength
CNAME3A = 'Wavelength' / Axis name for labelling purposes
CRDER3A = 1.0e-11 / [m] Wavelength calibration, random error
CSYER3A = 1.0e-12 / [m] Wavelength calibration, systematic error
RESTFRQA= 1.42040575e9 / [Hz] HI rest frequency
RESTWAVA= 0.211061141 / [m] HI rest wavelength
SPECSYSA= 'BARYCENT' / Reference frame of spectral coordinates
SSYSOBSA= 'TOPOCENT' / Reference frame of observation
VELOSYSA= 1500.0 / [m/s] Bary-topo velocity towards the source
SSYSSRCA= 'LSRK' / Reference frame of source redshift
ZSOURCEA= 0.0025 / Redshift of the source
CDELT4A = 1.0 / [s] Time scale
CUNIT4A = 's' / Time units
CTYPE4A = 'TIME''x''' / String value and comment containing quotes (')
CRVAL4A = -2e3 / [s] Time at the reference point
CNAME4A = 'Time offset' / Axis name for labelling purposes
PS4_0A = 'UTC' / Time measurement system
COMMENT -----------------------------------------------------------------------
COMMENT Alternate representation 'I'
COMMENT ----------------------------
COMMENT
COMMENT In the IRAF representation, if one CDi_ja keyword is given then the
COMMENT default is zero for any that are omitted. CDELTia and CROTAn
COMMENT keywords are included for informational purposes only and otherwise
COMMENT are to be ignored.
COMMENT
COMMENT Strictly speaking, alternate version codes are not defined for CROTAn
COMMENT (e.g. CROTA2I below), EPOCHa or VELREFa. The latter two should be
COMMENT overridden by EQUINOXa and SPECSYSa even though they occur later in
COMMENT the header.
COMMENT
COMMENT While encoding a TAN projection as SZP may be good for testing
COMMENT purposes, approximating it by a zenithal polynomial projection (ZPN)
COMMENT is even better! The polynomial coefficients are accurate to the
COMMENT number of decimal places given (but don't ever do this in a real
COMMENT header).
COMMENT
COMMENT -----------------------------------------------------------------------
WCSAXESI= 3 / Three coordinate axes
WCSNAMEI= 'IRAF representation: ZPN projection' / Name of this coordinate system
CRPIX1I = 513.0 / Pixel coordinate of reference point
CRPIX2I = 513.0 / Pixel coordinate of reference point
CRPIX3I = 1025.0 / Pixel coordinate of reference point
CD1_1I = -0.086602540 / Linear transformation matrix element
CD1_2I = -0.050000000 / Linear transformation matrix element
CD2_1I = -0.050000000 / Linear transformation matrix element
CD2_2I = 0.086602540 / Linear transformation matrix element
CD3_3I = -4.565153674e-5 / Redshift scale
CDELT1I = -0.10 / [deg] x-scale (informational)
CUNIT1I = 'deg' / Degree units are required
CTYPE1I = 'RA---ZPN' / Right ascension in slant zenithal projection
CRVAL1I = 150.0 / [deg] Right ascension at the reference point
CNAME1I = 'Right ascension (J2000)' / Axis name for labelling purposes
CDELT2I = 0.10 / [deg] y-scale (informational)
CUNIT2I = 'deg' / Degree units are required
CTYPE2I = 'DEC--ZPN' / Declination in a slant zenithal projection
CRVAL2I = -30.0 / [deg] Declination at the reference point
CNAME2I = 'Declination (J2000)' / Axis name for labelling purposes
PV2_1I = 1.000000000 / ZPN P1 coefficient for approximating TAN
PV2_3I = 0.333333333 / ZPN P3 coefficient for approximating TAN
PV2_5I = 0.133333333 / ZPN P5 coefficient for approximating TAN
PV2_7I = 0.053968254 / ZPN P7 coefficient for approximating TAN
PV2_9I = 0.021869489 / ZPN P9 coefficient for approximating TAN
PV2_11I = 0.008863236 / ZPN P11 coefficient for approximating TAN
PV2_13I = 0.003592128 / ZPN P13 coefficient for approximating TAN
PV2_15I = 0.001455834 / ZPN P15 coefficient for approximating TAN
PV2_17I = 0.000590027 / ZPN P17 coefficient for approximating TAN
PV2_19I = 0.000239129 / ZPN P19 coefficient for approximating TAN
LONPOLEI= 195.0 / [deg] Native longitude of the NCP
LATPOLEI= 999.0 / [deg] Native latitude of the NCP
RADESYSI= 'FK5' / Mean equatorial coordinates, IAU 1984 system
EQUINOXI= 2000.0 / [yr] Equinox of equatorial coordinates
CDELT3I = -4.565153674e-5 / Redshift scale (informational)
CTYPE3I = 'ZOPT-F2W' / Frequency axis expressed as redshift
CRVAL3I = 0.018577089 / Reference redshift
CNAME3I = 'Redshift' / Axis name for labelling purposes
CRDER3I = 5.0e-11 / Redshift calibration, random error
CSYER3I = 5.0e-12 / Redshift calibration, systematic error
RESTFRQI= 1.42040575e9 / [Hz] HI rest frequency
RESTWAVI= 0.211061141 / [m] HI rest wavelength
SSYSOBSI= 'TOPOCENT' / Reference frame of observation
VELOSYSI= 1500.0 / [m/s] Bary-topo velocity towards the source
SSYSSRCI= 'LSRK' / Reference frame of source redshift
VSOURCEI= 748544.3 / [m/s] Apparent radial velocity of the source
COMMENT As explained above, the following keyrecords are non-standard.
CROTA2I = 30.0 / [deg] Bulk image rotation
EPOCHI = 2000 / [yr] Equinox of equatorial coordinates
VELREFI = 258 / Barycentric radio velocity
COMMENT -----------------------------------------------------------------------
COMMENT
COMMENT The following keywords have no alternates; they apply to each
COMMENT coordinate representation, even that of the AIPS convention for
COMMENT which, strictly, only the DATE-OBS keyword should be recognized.
COMMENT
COMMENT The keycomments for OBSGEO-Y and OBSGEO-Z have been omitted
COMMENT deliberately for test purposes.
COMMENT
COMMENT -----------------------------------------------------------------------
OBSGEO-X= -4554231.9 / [m] ITRF observatory coordinates
OBSGEO-Y= 2816758.3 /
OBSGEO-Z= -3454035.9
MJD-OBS = 35883.625 / [d] MJD at start of observation (UTC)
MJD-AVG = 35883.700 / [d] MJD mid-observation time (UTC)
DATE-OBS= '1957-02-14T15:00:00'/ UTC date corresponding to MJD-OBS
DATE-AVG= '1957-02-14T16:48:00'/ UTC date corresponding to MJD-AVG
COMMENT -----------------------------------------------------------------------
COMMENT
COMMENT The following look a little like WCS keywords but should be discarded:
COMMENT
COMMENT -----------------------------------------------------------------------
COMMENT
CRPIXELS= 0.0 / Furphy, not CRPIXja
PCATALOG= 0.0 / Furphy, not PCi_ja
CDELTA = 0.0 / Furphy, not CDELTia
CDI_JA = 0.0 / Furphy, not CDi_ja
CUNITARY= 0.0 / Furphy, not CUNITia
CTYPEXY = 0.0 / Furphy, not CTYPEia
CRVALUE = 0.0 / Furphy, not CRVALia
CNAME = 0.0 / Furphy, not CNAMEia
PV1_1AL = 0.0 / Furphy, not PVi_ma
PV02_1 = 0.0 / Furphy, not PVi_ma (leading zero on i)
PV2_01 = 0.0 / Furphy, not PVi_ma (leading zero on m)
PSEUDO = 0.0 / Furphy, not PSi_ma
EPOCHAL = 0.0 / Furphy, not EPOCH
VELREF1 = 0.0 / Furphy, not VELREF
COMMENT -----------------------------------------------------------------------
COMMENT
COMMENT The following illegal WCS keyrecords should be rejected by wcspih():
COMMENT
COMMENT -----------------------------------------------------------------------
COMMENT
CTYPE1 = 0.0 / Illegal, CTYPEia must be string type
PV2_1 = '0.0' / Illegal, PVi_ma must be numeric
PV2_1 = 0.0 / Illegal, "= " not in columns 9-10
EPOCH = '2000.0' / Illegal, EPOCH must be numeric
COMMENT -----------------------------------------------------------------------
COMMENT
COMMENT The following keyrecords are for testing fitshdr():
COMMENT
COMMENT -----------------------------------------------------------------------
COMMENT
NOVLSPEC=1 / Not a valid value specifier (no " " in col. 10)
INT32 = 00000012345 / Not a 64-bit integer
INT32 = -000000123456789 / Not a 64-bit integer
INT32 = -2147483648 / Not a 64-bit integer (INT_MIN)
INT32 = 2147483647 / Not a 64-bit integer (INT_MAX)
INT32 = 0000000000000000000000000000000000012345 / Not a very long integer
INT32 = -000000000000000000000000000123456789 / Not a very long integer
INT64 = -2147483649 / 64-bit integer (INT_MIN - 1)
INT64 = +2147483648 / 64-bit integer (INT_MAX + 1)
INT64 = +100000000000000000 / 64-bit integer
INT64 = -876543210987654321 / 64-bit integer
INT64 = -9223372036854775808 / Not a very long integer (LONG_MIN)
INT64 = +9223372036854775807 / Not a very long integer (LONG_MAX)
INT64 = -000000000000000000000000000000876543210987654321 / 64-bit integer
INTVL = -9223372036854775809 / Very long integer (LONG_MIN - 1)
INTVL = +9223372036854775808 / Very long integer (LONG_MAX + 1)
INTVL = -100000000000000000000000000000876543210987654321 / Very-long integer
INTVL = +123456789012345678901234567890123456789012345678901234567890123456789
INTVL = 1234567890123456789012345678901234567890123456789012345678901234567890
COMPLEX = (137, -1) / An integer complex keyvalue
COMPLEX = (10e5, -0.1) / A floating point complex keyvalue
GOODSTR = '"G''DAY" ' / A valid string keyvalue
BLANKS = ' ' / An all-blank string equals a single blank
LONGSTR = 'The loooooongest possible non-continued string value, 68 characters.'
CONTSTR = 'The quick brown & ' / Continued string, with & (will be stripped off)
CONTINUE 'fox jumps over the' Relaxed handling of invalid keycomment
CONTINUE ' lazy dog'
PI = 3.14159265358929323 / [!?] is not a valid units specification
CONTINUE 'Not a valid string continuation'
COMMENT The following are all deliberate syntax errors:
BadKey = 111 / Example of a syntax error, invalid keyword
BADKEY! = 222 / Example of a syntax error, invalid keyword
BAD KEY = 333 / Example of a syntax error, invalid keyword
BADSTR = BAD / Example of a syntax error, invalid keyvalue
BADSTR = "BAD" / Example of a syntax error, invalid keyvalue
BADSTR = 'BAD' 'STR' / Example syntax error, invalid string keyvalue
BADFLT = 49 + 94 / Example of a syntax error, invalid keyvalue
BADFLT = 1D99 / Example of a syntax error, invalid keyvalue
BADCOMM = 999 Example of a syntax error, invalid keycomment
END = 'ILLEGAL' / Illegal END keyrecord
END
DANGLE1 Keyrecords following the END keyrecord should be ignored.
DANGLE2
DANGLE3
|