SIMPLE = F / Standards-conformant FITS format? NO! BITPIX = -32 / IEEE single precision floating point NAXIS = 0 / No image data COMMENT ----------------------------------------------------------------------- COMMENT Use 'tofits' (supplied) to convert this file to FITS format via COMMENT sed '/^END$/q' pih.keyrec | tofits COMMENT ----------------------------------------------------------------------- COMMENT 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' BadKey = 111 / Syntax error, invalid keyword BADKEY! = 222 / Syntax error, invalid keyword BAD KEY = 333 / Syntax error, invalid keyword BADSTR = BAD / Syntax error, invalid keyvalue BADSTR = "BAD" / Syntax error, invalid keyvalue BADSTR = 'BAD' 'STR' / Syntax error, invalid string keyvalue BADFLT = 49 + 94 / Syntax error, invalid keyvalue BADFLT = 1D99 / Syntax error, invalid keyvalue BADCOMM = 999 Syntax error, invalid keycomment END = 'ILLEGAL' / Illegal END keyrecord END DANGLE1 Keyrecords following the END keyrecord should be ignored. DANGLE2 DANGLE3 * WCSLIB 4.3 - an implementation of the FITS WCS standard. * Copyright (C) 1995-2007, 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 . * * 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.3 2007/12/27 05:35:51 cal103 Exp $