From dishfits-request@fits.CX.NRAO.EDU Mon Jun 4 13:51:45 1990 X-VM-VHeader: ("From:" "Sender:" "Resent-From" "To:" "Apparently-To:" "Cc:" "Subject:" "Date:" "Resent-Date:") nil X-VM-Bookmark: 3 Received: from cv3.cv.nrao.edu by fits.cx.nrao.edu (4.0/SMI-DDN) id AA00405; Mon, 4 Jun 90 13:51:39 EDT Received: from fits.cx.nrao.edu by cv3.cv.nrao.edu (4.0/DDN-DLB/1.9) id AA14110; Mon, 4 Jun 90 13:49:06 EDT Received: by fits.cx.nrao.edu (4.0/SMI-DDN) id AA00388; Mon, 4 Jun 90 13:07:57 EDT Return-Path: Message-Id: <900604130624.2643@CVAX.CV.NRAO.EDU> X-Vmsmail-To: DISHFITS Status: RO From: FGHIGO@NRAO.EDU Sender: dishfits-request@fits.CX.NRAO.EDU To: dishfits@fits.CX.NRAO.EDU Subject: Green Bank FITS programs Date: Mon, 4 Jun 1990 13:06:24 EDT SINGLE-DISH FITS TABLES AT GREEN BANK by F. Ghigo, June 1, 1990 INTRODUCTION The single-dish binary tables format has been implemented for data from the Green Bank 140-ft telescope. These notes describe some aspects of this version. Following the notes is a list of all the columns in the binary table, for both line and continuum cases, followed by the complete FITS header listings for both cases. I heartily request comments and suggestions. If anyone in the FITS community finds problems with my implementation, I would like to solve them before beginning to distribute data tapes in this format. I will be happy to send a pre-release FITS tape or file to anyone who will use their reader on it and comment on the format. Likewise, I am interested in reading FITS tapes with single-dish binary tables from other sites, to test my reader. KEYWORDS The choice of keywords has been guided by the summary of the FITS agreement of 1 November 1989, written by H. Liszt and W. Cotton. The Stobie and Morgan memo of 1986 has provided keywords for most of the site-dependent parameters. Occasionally, I have felt a need to create new keywords, for example, the three descriptive origin parameters, formerly DESORG(3), are now "RA-DESORG", "DEC- DESORG", and "ANG-DESORG". There appears to be no indication in the single-dish FITS literature on what to call the zenith distance. P. Harrison has suggested using "ZENI", which I have adopted. In my implementation, most of the keywords occur as table column headings, whose names may contain more than 8 characters. Thus, as a column heading, "TELESCOPE" is used instead of "TELESCOP". Nevertheless, it is intended that these column names are uniquely recognizable by the first 8 characters. I invite your close attention to the tables of column names and the FITS header listings given below, so that any controversy over choice of keywords can be worked out soon. OBSMODE I wish to urge that "OBSMODE" be promoted to the status of a standard FITS keyword, not merely a single-dish keyword. It succinctly describes the type of observing being done. It would be valid to label continuum interferometer data as "CONTINTR", for example. HOURLST Although "HOURLST" has been officially sanctioned as a shared single-dish keyword in the Nov.89 memo of H.Liszt, the FITS standard seems to require that all time-like parameters be in units of seconds. Would it not be more appropriate to use "TIME- LST" instead and give the value in seconds?? Nevertheless, for the present implementation, I am using HOURLST with the value in hours. HIERARCHIES? Since there is no agreement yet on hierarchies of keywords, I have avoided the issue, so far. The keywords "PROJID", "OBSMODE", "BACKEND", and "HOURLST" appear in the table header behind the "HISTORY" keyword. MORE PROMOTIONS? Most of the keywords in the "shared keyword" category of H. Liszt's memo of Nov. 1989 are of general enough use that they should become standard (but optional) FITS keywords, not hidden within a hierarchy. AXES In this implementation, all matrices are one-dimensional and all matrix axes but the first are dummy axes (i.e., MAXIS2= MAXIS3= ...=1). The number of axes has been kept minimal. For line data, only one axis (Velocity) is described. For continuum, 2 position axes (usually RA and DEC) are used. The 140-ft can scan in alt-az and in galactic coordinates as well, in which cases, these other coordinates will be the two position axes. All other potential axis items, such as TIME, RECEIVER, OBS-FREQ, LAMBDA, are given as table columns. It seems arbitrary whether parameters like these should be given simply as table columns or as dummy axes. Are there any strong opinions in the FITS community on this? Regarding the velocity axis name (VELO-LSR, etc.), what is the correct form for Earth-relative velocities? I am using "VELO- EAR". It this generally accepted?? PIPES AND REAL-TIME OPERATION The programs are intended to be useable in UNIX "pipes". The input data file comes in on standard input, and the output file goes to standard output. Tape reading or writing is done by the UNIX utility "dd". The programs will be wrapped in a shell script which will take care of asking the user for options, and for positioning the tape. Since the FITS header usually tells the total number of rows in the table (NAXIS2), it is necessary to preview the input file before creating the header. Usually, the FITS writing program reads data from standard input and makes a FITS binary table on a scratch disk file. At this point the total number of rows is known and the header can be written to standard output. The binary table is next copied to standard output from the scratch file, thus completing the FITS file. It was deemed useful to provide a real-time option in which the output was generated continuously as the standard input arrived, avoiding the use of an intermediate scratch file (which might be very large). In this mode, a maximum number of rows is specified as an input parameter to the FITS writing program. Each table header specifies this maximum as the value of NAXIS2, and the output file may contain a series of several binary tables, each preceded by a header, and each containing this maximum number of rows. The last table in the file may contain fewer than this maximum number of rows, but this is in accordance with the real- time FITS proposal made by E. Greisen at last November's meeting. COMPOSITION OF THE FITS TABLE Virtually all parameters describing each scan are included as columns in the binary table. This means that in many cases, the FITS file may be somewhat larger than necessary, because many of the parameters may not vary from one scan to the next. If parameters that do not change are left out of the table, their values can be given once in the header, and no space is wasted. It is hard to predict which parameters might stay constant during a series of scans, however. An astronomer may change observing modes, frequencies, etc, during a run, and wish to collect all scans from the run into one file. Thus, if we put all parameters into the table, all possibilities are covered, at the cost of some decrease in efficiency of writing tapes. Options for more efficient packing may be added to later versions. Since the binary table may contain a heterogeneous collection of scans, the header keywords TELESCOP, OBJECT, OBSMODE, TIME, etc., refer only to the first scan in the table. The only selection done by the program is to require that all data in a FITS file be line data or continuum data. No mixing of these two types is allowed. The format is different for the two cases, with 60 columns in the table for the continuum case, and 75 for the line case. IDENTIFICATION OF SCANS For the 140-ft data, we use the scan number and the receiver number to identify spectrum scans, and use the scan number and beam (or feed) number to identify continuum scans. In principle, all three (scan#, rcvr, and beam) can be used, if the front end were of such a nature as to require them. In the future, we may want to export raw data, in which the individual integrations, or records, are included. Stobie and Morgan (1986) have suggested giving the record number as a fractional part of the scan number. (i.e., integrations 1,2, and 3 of scan number 25 would be numbered 25.0001, 25.0002, 25.0003.) On the other hand, I would advocate introducing a separate table column, labeled "RECORD". Are there any comments on this? ******************************************************************* ******************************************************************* SUMMARY OF TABLE COLUMNS FOR SPECTRAL LINE DATA TTYPE TFORM TUNIT COL description --------- ----- ------ ---- ------------------------------ MAXIS1 1I - 1 Dimension of Velocity axis CRPIX1 1E - 2 Velocity reference Pixel. CDELT1 1E KM/SEC 3 Velocity increment. CRVAL1 1E KM/SEC 4 Velocity at Reference Pixel. SCAN 1E - 5 scan number RECEIVER 1I - 6 receiver number OBSID 1I - 7 observer's computer ID number OBSERVER 14A - 8 observer's name TELESCOPE 1I - 9 telescope designation. PROJID 4A - 10 Project ID code OBJECT 12A - 11 Observed object name. OBSMODE 8A - 12 observing mode. RFOCUS 1E METERS 13 radial box focus ORIENT 1E DEGREES 14 box orientation UTJULDATE 1D DAYS 15 Julian Date of observation. TIME 1E SECONDS 16 UT time of observation. HOURLST 1E HOURS 17 LST of observation (hours). SAMPRAT 1E SECONDS 18 record or sample integ. time. SCANMODE 4A - 19 140-ft codes [prg,typ,mode,#rx] CHSTART 1I - 20 starting channel number EPOCH 1E YEAR 21 epoch of RA and DEC XREF 1E DEGREES 22 Commanded horizontal coordinate YREF 1E DEGREES 23 Commanded vertical coordinate APPRA 1E DEGREES 24 apparent RA of date APPDEC 1E DEGREES 25 apparent DEC of date. EPOCRA 1E DEGREES 26 RA at epoch EPOCDEC 1E DEGREES 27 DEC at epoch GLON 1E DEGREES 28 galactic longitude GLAT 1E DEGREES 29 galactic latitude INDX 1E DEGREES 30 indicated RA INDY 1E DEGREES 31 indicated DECL ZENI 1E DEGREES 32 Zenith Distance. RA-DESORG 1E DEGREES 33 RA of Descriptive origin. DEC-DESORG 1E DEGREES 34 DEC of Descriptive origin. ANG-DESORG 1E DEGREES 35 Position Angle of Descr coords. COORDCD 8A - 36 Coordinate Type Code. TAMBIENT 1E KELVINS 37 Ambient outside Temperature. PRESSURE 1E mmHg 38 Atmospheric Pressure. DEWPOINT 1E KELVINS 39 DewPoint. DELTAXR 1E DEG/SEC 40 X-rate of position scanning. DELTAYR 1E DEG/SEC 41 Y-rate of position scanning. SCANDIR 1I - 42 Scan direction code (+/-0,1,or2) OFFSCAN 1E - 43 off scan number RVSYS 1E KM/SEC 44 Velocity Correction. VELDEF 8A - 45 Velocity Def. and reference. L1(SYNTH) 1D HZ 46 Synthesizer settings L1F1(SYNTH) 1D HZ 47 Synthesizer settings L1F2(SYNTH) 1D HZ 48 Synthesizer settings L2(SYNTH) 1D HZ 49 Synthesizer settings L2F1(SYNTH) 1D HZ 50 Synthesizer settings L2F2(SYNTH) 1D HZ 51 Synthesizer settings LA 1E HZ 52 LO settings. LB 1E HZ 53 LO settings. LC 1E HZ 54 LO settings. LD 1E HZ 55 LO settings. UXPNT 1E DEGREES 56 User Pointing "fudge". UYPNT 1E DEGREES 57 User Pointing "fudge". PVLS-P1 1E DEGREES 58 box offsets PVLS-P2 1E DEGREES 59 box offsets PVLS-P3 1E DEGREES 60 box offsets CFFORM 18A - 61 Center Frequency Formula. OBSFREQ 1D HZ 62 Observed Frequency. RESTFREQ 1D HZ 63 Rest Frequency. BANDWIDTH 1E HZ 64 Receiver Bandwidth. TCAL 1E KELVINS 65 Calibration Temperature. STSYS 1E KELVINS 66 Source System Temp. RTSYS 1E KELVINS 67 Reference System Temp. TRMS 1E KELVINS 68 Theoretical RMS temp of scan. EXPOSURE 1E SECONDS 69 Effective scan integration time SCANDURATION 1E SECONDS 70 Total duration of scan (secs). NOINT 1I - 71 Number of integrations in scan TAUH2O 1E mmH2O 72 Opacity at Zenith. DATAMAX 1E KELVINS 73 Max value in spectrum. DATAMIN 1E KELVINS 74 Min value in spectrum. SPECTRUM 1024E KELVINS 75 Observed Spectrum. ***************************************************************** ***************************************************************** SUMMARY OF TABLE COLUMNS FOR CONTINUUM DATA TTYPE TFORM TUNIT COL description --------- ----- ------ ---- --------------------------------- MAXIS1 1I - 1 Number of points in scan. CTYPE1 8A - 2 Type of matrix axis 1. (e.g.,RA, GLON) CRVAL1 1E - 3 Coordinate Value at Ref. pixel. CRPIX1 1E - 4 Scan Axis reference Pixel. CDELT1 1E - 5 Scan Axis increment. CROTA1 1E DEGREES 6 Rotation of Scan Axis. CTYPE2 8A - 7 Type of matrix axis 2. (e.g., DEC, GLAT) CRVAL2 1E - 8 Value at Reference Pixel. SCAN 1E - 9 scan number BEAM 1I - 10 beam or feed number OBSID 1I - 11 observer's computer ID number OBSERVER 14A - 12 observer's name TELESCOPE 1I - 13 telescope designation. PROJID 4A - 14 Project ID code OBJECT 12A - 15 Observed object name. OBSMODE 8A - 16 observing mode. RFOCUS 1E METERS 17 radial box focus ORIENT 1E DEGREES 18 box orientation UTJULDATE 1D DAYS 19 Julian date of observation. TIME 1E SECONDS 20 UT time of observation. HOURLST 1E HOURS 21 LST of observation (hours). EXPOSURE 1E SECONDS 22 record or sample integ. time. SCANMODE 4A - 23 140-ft codes: [prg,type,mode,1st_ch] NFEEDS 1I - 24 Number of Feeds. EPOCH 1E YEAR 25 epoch of RA and DEC XREF 1E DEGREES 26 Commanded horizontal coordinate YREF 1E DEGREES 27 Commanded vertical coordinate INDX 1E DEGREES 28 Indicated RA. INDY 1E DEGREES 29 Indicated DEC. APPRA 1E DEGREES 30 apparent RA of date APPDEC 1E DEGREES 31 apparent DEC of date. EPOCRA 1E DEGREES 32 RA at epoch EPOCDEC 1E DEGREES 33 DEC at epoch GLON 1E DEGREES 34 galactic longitude GLAT 1E DEGREES 35 galactic latitude ZENI 1E DEGREES 36 Zenith Distance. COORDCD 8A - 37 Coordinate Type Code. RA-DESORG 1E DEGREES 38 RA of Descriptive origin. DEC-DESORG 1E DEGREES 39 DEC of Descriptive origin. ANG-DESORG 1E DEGREES 40 Position Angle of Descr. coords. TAMBIENT 1E KELVINS 41 Ambient outside Temperature PRESSURE 1E mmHg 42 Atmospheric Pressure. DEWPOINT 1E KELVINS 43 DewPoint. DELTAXR 1E DEG/SEC 44 X-rate of position scanning. DELTAYR 1E DEG/SEC 45 Y-rate of position scanning. SCANDIR 1I - 46 Scan direction code (+/-0,1,or2) LAMBDA 1E METERS 47 Observed Wavelength in Meters. UXPNT 1E DEGREES 48 RA Pointing "fudge". UYPNT 1E DEGREES 49 DEC Pointing "fudge". PVLS-P1 1E DEGREES 50 box offsets PVLS-P2 1E DEGREES 51 box offsets PVLS-P3 1E DEGREES 52 box offsets RHO 1E DEGREES 53 Rho (feed offset) THETA 1E DEGREES 54 Theta (feed position angle) TCAL 1E KELVINS 55 Calibration Noise Tube Temp. TSYS 1E KELVINS 56 System Temperature. CALFACTOR 1E K/V 57 Calibration Factor (K per count). DATAMAX 1E KELVINS 58 Max value in scan. DATAMIN 1E KELVINS 59 Min value in scan. SCANDATA 1193E KELVINS 60 Continuum Scan Data ********************************************************************* ********************************************************************* LISTING OF HEADERS FOR SPECTRAL LINE FITS FILE ---------------------------------------------- ******** Start of Header Record ********* SIMPLE = T / File conforms to FITS standards (we hope) BITPIX = 8 / NAXIS = 0 / No image data array present. BLOCKED = T / Tape block may be 1-10 times 2880 bytes. EXTEND = T / Standard table extensions follow. ORIGIN = 'NRAO-GB pgm=wfits0.9 ' / Written by Green Bank SUN or MassComp. DATE = ' 1/ 6/90 ' / UT Date on which tape was written. COMMENT Single dish LINE data from NRAO (Green Bank). END ******** Start of Header Record ********* XTENSION= '3DTABLE' / Single dish 3-D table. BITPIX = 8 / Binary data. NAXIS = 2 / Table is a Matrix. NAXIS1 = 1386 / Width of table in bytes. NAXIS2 = 30 / Number of entries (rows) in Table. PCOUNT = 0 / Random Parameter Count. GCOUNT = 1 / Group Count. TFIELDS = 75 / Number of columns in each row. EXTNAME = 'NRAO-GB SINGLE DISH' / Moniker of Table. (ver.1.0, 31may90) EXTVER = 1 / Version number of Table. NMATRIX = 1 / no.matrixes following SD convention. / The following global keywords apply, at least, to the first scan. TELESCOP= 'NRAO-43M ' / Designation of Telescope. OBJECT = 'ORION K-L ' / Name of observed object. OBSERVER= 'BELL ' / Name of observer. DATE-OBS= '21/ 2/90 ' / UT date of observation. TIME = 58136. / UT time of observation (seconds). DATAMAX = 1.3317E+01 / max spectral value (K) - for whole file. DATAMIN = -2.0947E+01 / min spectral value (K) - for whole file. HISTORY PROJID = 'B524 ' / Observer's Project ID HISTORY OBSMODE = 'LINEFQSW ' / Observing mode. HISTORY BACKEND = '1024ACIV ' / Receiver Backend name. HISTORY HOURLST = 2.091444E+01 / LST time of observation (hours). / The following defines the data matrix. MAXIS = 1 / no. axes in data matrix. CTYPE1 = 'VELO-LSR ' / Velocity Axis of matrix. TFORM1 = '1I ' / TTYPE1 = 'MAXIS1 ' / Dimension of Velocity axis TFORM2 = '1E ' / TTYPE2 = 'CRPIX1 ' / Velocity reference Pixel. TFORM3 = '1E ' / TTYPE3 = 'CDELT1 ' / Velocity increment. TUNIT3 = 'KM/SEC ' / TFORM4 = '1E ' / TTYPE4 = 'CRVAL1 ' / Velocity at Reference Pixel. TUNIT4 = 'KM/SEC ' / TFORM5 = '1E ' / TTYPE5 = 'SCAN ' / scan number (frac.part is rec num.) TFORM6 = '1I ' / TTYPE6 = 'RECEIVER ' / receiver number TFORM7 = '1I ' / TTYPE7 = 'OBSID ' / observer's computer ID number TFORM8 = '14A ' / TTYPE8 = 'OBSERVER ' / observer's name TFORM9 = '1I ' / TTYPE9 = 'TELESCOPE ' / telescope designation. TFORM10 = '4A ' / TTYPE10 = 'PROJID ' / Project ID code TFORM11 = '12A ' / TTYPE11 = 'OBJECT ' / Observed object name. TFORM12 = '8A ' / TTYPE12 = 'OBSMODE ' / observing mode. TFORM13 = '1E ' / TTYPE13 = 'RFOCUS ' / radial box focus TUNIT13 = 'METERS ' / TFORM14 = '1E ' / TTYPE14 = 'ORIENT ' / box orientation TUNIT14 = 'DEGREES ' / TFORM15 = '1D ' / TTYPE15 = 'UTJULDATE ' / Julian Date (frac.part is UT time). TUNIT15 = 'DAYS ' / TFORM16 = '1E ' / TTYPE16 = 'TIME ' / UT time of observation. TUNIT16 = 'SECONDS ' / TFORM17 = '1E ' / TTYPE17 = 'HOURLST ' / LST of observation (hours). TUNIT17 = 'HOURS ' / TFORM18 = '1E ' / TTYPE18 = 'SAMPRAT ' / record or sample integration time. TUNIT18 = 'SECONDS ' / TFORM19 = '4A ' / TTYPE19 = 'SCANMODE ' / 140-ft codes [prog][type][mode][#rcvrs] TFORM20 = '1I ' / TTYPE20 = 'CHSTART ' / starting channel number TFORM21 = '1E ' / TTYPE21 = 'EPOCH ' / epoch of RA and DEC TUNIT21 = 'YEAR ' / TFORM22 = '1E ' / TTYPE22 = 'XREF ' / Commanded horizontal coordinate TUNIT22 = 'DEGREES ' / TFORM23 = '1E ' / TTYPE23 = 'YREF ' / Commanded vertical coordinate TUNIT23 = 'DEGREES ' / TFORM24 = '1E ' / TTYPE24 = 'APPRA ' / apparent RA of date TUNIT24 = 'DEGREES ' / TFORM25 = '1E ' / TTYPE25 = 'APPDEC ' / apparent DEC of date. TUNIT25 = 'DEGREES ' / TFORM26 = '1E ' / TTYPE26 = 'EPOCRA ' / RA at epoch TUNIT26 = 'DEGREES ' / TFORM27 = '1E ' / TTYPE27 = 'EPOCDEC ' / DEC at epoch TUNIT27 = 'DEGREES ' / TFORM28 = '1E ' / TTYPE28 = 'GLON ' / galactic longitude TUNIT28 = 'DEGREES ' / TFORM29 = '1E ' / TTYPE29 = 'GLAT ' / galactic latitude TUNIT29 = 'DEGREES ' / TFORM30 = '1E ' / TTYPE30 = 'INDX ' / indicated RA TUNIT30 = 'DEGREES ' / TFORM31 = '1E ' / TTYPE31 = 'INDY ' / indicated DECL TUNIT31 = 'DEGREES ' / TFORM32 = '1E ' / TTYPE32 = 'ZENI ' / Zenith Distance. TUNIT32 = 'DEGREES ' / TFORM33 = '1E ' / TTYPE33 = 'RA-DESORG ' / RA of Descriptive origin. TUNIT33 = 'DEGREES ' / TFORM34 = '1E ' / TTYPE34 = 'DEC-DESORG ' / DEC of Descriptive origin. TUNIT34 = 'DEGREES ' / TFORM35 = '1E ' / TTYPE35 = 'ANG-DESORG ' / Position Angle of Descriptive coords. TUNIT35 = 'DEGREES ' / TFORM36 = '8A ' / TTYPE36 = 'COORDCD ' / Coordinate Type Code. TFORM37 = '1E ' / TTYPE37 = 'TAMBIENT ' / Ambient Temperature at the 140-ft. TUNIT37 = 'KELVINS ' / TFORM38 = '1E ' / TTYPE38 = 'PRESSURE ' / Atmospheric Pressure. TUNIT38 = 'mmHg ' / TFORM39 = '1E ' / TTYPE39 = 'DEWPOINT ' / DewPoint. TUNIT39 = 'KELVINS ' / TFORM40 = '1E ' / TTYPE40 = 'DELTAXR ' / X-rate of position scanning. TUNIT40 = 'DEG/SEC ' / TFORM41 = '1E ' / TTYPE41 = 'DELTAYR ' / Y-rate of position scanning. TUNIT41 = 'DEG/SEC ' / TFORM42 = '1I ' / TTYPE42 = 'SCANDIR ' / Scan direction code (+/-0,1,or2) TFORM43 = '1E ' / TTYPE43 = 'OFFSCAN ' / off scan number TFORM44 = '1E ' / TTYPE44 = 'RVSYS ' / Velocity Correction. TUNIT44 = 'KM/SEC ' / TFORM45 = '8A ' / TTYPE45 = 'VELDEF ' / Velocity Definition and reference. TFORM46 = '1D ' / TTYPE46 = 'L1(SYNTH) ' / Synthsizer settings TUNIT46 = 'HZ ' / TFORM47 = '1D ' / TTYPE47 = 'L1F1(SYNTH) ' / Synthsizer settings TUNIT47 = 'HZ ' / TFORM48 = '1D ' / TTYPE48 = 'L1F2(SYNTH) ' / Synthsizer settings TUNIT48 = 'HZ ' / TFORM49 = '1D ' / TTYPE49 = 'L2(SYNTH) ' / Synthsizer settings TUNIT49 = 'HZ ' / TFORM50 = '1D ' / TTYPE50 = 'L2F1(SYNTH) ' / Synthsizer settings TUNIT50 = 'HZ ' / TFORM51 = '1D ' / TTYPE51 = 'L2F2(SYNTH) ' / Synthsizer settings TUNIT51 = 'HZ ' / TFORM52 = '1E ' / TTYPE52 = 'LA ' / LO settings. TUNIT52 = 'HZ ' / TFORM53 = '1E ' / TTYPE53 = 'LB ' / LO settings. TUNIT53 = 'HZ ' / TFORM54 = '1E ' / TTYPE54 = 'LC ' / LO settings. TUNIT54 = 'HZ ' / TFORM55 = '1E ' / TTYPE55 = 'LD ' / LO settings. TUNIT55 = 'HZ ' / TFORM56 = '1E ' / TTYPE56 = 'UXPNT ' / Pointing correction additives. TUNIT56 = 'DEGREES ' / TFORM57 = '1E ' / TTYPE57 = 'UYPNT ' / Pointing correction additives. TUNIT57 = 'DEGREES ' / TFORM58 = '1E ' / TTYPE58 = 'PVLS-P1 ' / box offsets TUNIT58 = 'DEGREES ' / TFORM59 = '1E ' / TTYPE59 = 'PVLS-P2 ' / box offsets TUNIT59 = 'DEGREES ' / TFORM60 = '1E ' / TTYPE60 = 'PVLS-P3 ' / box offsets TUNIT60 = 'DEGREES ' / TFORM61 = '18A ' / TTYPE61 = 'CFFORM ' / Center Frequency Formula. TFORM62 = '1D ' / TTYPE62 = 'OBSFREQ ' / Observed Frequency. TUNIT62 = 'HZ ' / TFORM63 = '1D ' / TTYPE63 = 'RESTFREQ ' / Rest Frequency. TUNIT63 = 'HZ ' / TFORM64 = '1E ' / TTYPE64 = 'BANDWIDTH ' / Receiver Bandwidth. TUNIT64 = 'HZ ' / TFORM65 = '1E ' / TTYPE65 = 'TCAL ' / Calibration Temperature. TUNIT65 = 'KELVINS ' / TFORM66 = '1E ' / TTYPE66 = 'STSYS ' / Source System Temp. TUNIT66 = 'KELVINS ' / TFORM67 = '1E ' / TTYPE67 = 'RTSYS ' / Reference System Temp. TUNIT67 = 'KELVINS ' / TFORM68 = '1E ' / TTYPE68 = 'TRMS ' / Theoretical RMS temp of scan. TUNIT68 = 'KELVINS ' / TFORM69 = '1E ' / TTYPE69 = 'EXPOSURE ' / Effective integration time of scan. TUNIT69 = 'SECONDS ' / TFORM70 = '1E ' / TTYPE70 = 'SCANDURATION ' / Total duration of scan (secs). TUNIT70 = 'SECONDS ' / TFORM71 = '1I ' / TTYPE71 = 'NOINT ' / Number of integrations in scan. TFORM72 = '1E ' / TTYPE72 = 'TAUH2O ' / Opacity at Zenith. TUNIT72 = 'mmH2O ' / TFORM73 = '1E ' / TTYPE73 = 'DATAMAX ' / Max value in spectrum. TUNIT73 = 'KELVINS ' / TFORM74 = '1E ' / TTYPE74 = 'DATAMIN ' / Min value in spectrum. TUNIT74 = 'KELVINS ' / TFORM75 = '256E ' / TTYPE75 = 'SPECTRUM ' / Observed Spectrum. TUNIT75 = 'KELVINS ' / TMATX75 = T / A binary data matrix, begorrah. END ********************************************************************* ********************************************************************* LISTING OF HEADERS FOR CONTINUUM FITS FILE ---------------------------------------------- ******** Start of Header Record ********* SIMPLE = T / File conforms to FITS standards (we hope) BITPIX = 8 / NAXIS = 0 / No image data array present. BLOCKED = T / Tape block may be 1-10 times 2880 bytes. EXTEND = T / Standard table extensions follow. ORIGIN = 'NRAO-GB pgm=wfits0.9 ' / Written by Green Bank SUN or MassComp. DATE = ' 1/ 6/90 ' / UT Date on which tape was written. COMMENT Single dish CONTINUUM data from NRAO (Green Bank). END ******** Start of Header Record ********* XTENSION= '3DTABLE' / Single dish 3-D table. BITPIX = 8 / Binary data. NAXIS = 2 / Table is a Matrix. NAXIS1 = 742 / Width of table in bytes. NAXIS2 = 22 / Number of entries (rows) in Table. PCOUNT = 0 / Random Parameter Count. GCOUNT = 1 / Group Count. TFIELDS = 60 / Number of columns in each row. EXTNAME = 'NRAO-GB SINGLE DISH' / Moniker of Table. (ver.1.0, 31may90) EXTVER = 1 / Version number of Table. NMATRIX = 1 / no.matrixes following SD convention. / The following global keywords apply, at least, to the first scan. TELESCOP= 'NRAO-43M ' / Designation of Telescope. OBJECT = '1730-130 ' / Name of observed object. OBSERVER= 'MADDEN ET AL ' / Name of observer. DATE-OBS= '19/ 4/90 ' / UT date of observation. TIME = 25720. / UT time of observation (seconds). DATAMAX = 6.8040E+03 / max spectral value (K) - for whole file. DATAMIN = -2.0000E+00 / min spectral value (K) - for whole file. HISTORY PROJID = 'M284 ' / Observer's Project ID HISTORY OBSMODE = 'CONTTLPW ' / Observing mode. HISTORY BACKEND = 'STD A/D ' / Receiver Backend name. HISTORY HOURLST = 1.563099E+01 / LST time of observation (hours). / The following defines the data matrix. MAXIS = 2 / no. data axes in matrix TFORM1 = '1I ' / TTYPE1 = 'MAXIS1 ' / Number of points in scan. TFORM2 = '8A ' / TTYPE2 = 'CTYPE1 ' / Type of matrix axis 1. TFORM3 = '1E ' / TTYPE3 = 'CRVAL1 ' / Coordinate Value at Reference pixel. TFORM4 = '1E ' / TTYPE4 = 'CRPIX1 ' / Scan Axis reference Pixel. TFORM5 = '1E ' / TTYPE5 = 'CDELT1 ' / Scan Axis increment. TFORM6 = '1E ' / TTYPE6 = 'CROTA1 ' / Rotation of Scan Axis. TUNIT6 = 'DEGREES ' / MAXIS2 = 1 / Number of points on axis 2. TFORM7 = '8A ' / TTYPE7 = 'CTYPE2 ' / Type of matrix axis 2. TFORM8 = '1E ' / TTYPE8 = 'CRVAL2 ' / Value at Reference Pixel. CRPIX2 = 1.0 / 2nd Axis reference pixel. TFORM9 = '1E ' / TTYPE9 = 'SCAN ' / scan number TFORM10 = '1I ' / TTYPE10 = 'BEAM ' / beam or feed number TFORM11 = '1I ' / TTYPE11 = 'OBSID ' / observer's computer ID number TFORM12 = '14A ' / TTYPE12 = 'OBSERVER ' / observer's name TFORM13 = '1I ' / TTYPE13 = 'TELESCOPE ' / telescope designation. TFORM14 = '4A ' / TTYPE14 = 'PROJID ' / Project ID code TFORM15 = '12A ' / TTYPE15 = 'OBJECT ' / Observed object name. TFORM16 = '8A ' / TTYPE16 = 'OBSMODE ' / observing mode. TFORM17 = '1E ' / TTYPE17 = 'RFOCUS ' / radial box focus TUNIT17 = 'METERS ' / TFORM18 = '1E ' / TTYPE18 = 'ORIENT ' / box orientation TUNIT18 = 'DEGREES ' / TFORM19 = '1D ' / TTYPE19 = 'UTJULDATE ' / Julian Date (frac.part is UT time). TUNIT19 = 'DAYS ' / TFORM20 = '1E ' / TTYPE20 = 'TIME ' / UT time of observation. TUNIT20 = 'SECONDS ' / TFORM21 = '1E ' / TTYPE21 = 'HOURLST ' / LST of observation (hours). TUNIT21 = 'HOURS ' / TFORM22 = '1E ' / TTYPE22 = 'EXPOSURE ' / record or sample integration time. TUNIT22 = 'SECONDS ' / TFORM23 = '4A ' / TTYPE23 = 'SCANMODE ' / 140-ft codes [prog][type][mode][1st_ch] TFORM24 = '1I ' / TTYPE24 = 'NFEEDS ' / Number of Feeds. TFORM25 = '1E ' / TTYPE25 = 'EPOCH ' / epoch of RA and DEC TUNIT25 = 'YEAR ' / TFORM26 = '1E ' / TTYPE26 = 'XREF ' / Commanded horizontal coordinate TUNIT26 = 'DEGREES ' / TFORM27 = '1E ' / TTYPE27 = 'YREF ' / Commanded vertical coordinate TUNIT27 = 'DEGREES ' / TFORM28 = '1E ' / TTYPE28 = 'INDX ' / Indicated RA. TUNIT28 = 'DEGREES ' / TFORM29 = '1E ' / TTYPE29 = 'INDY ' / Indicated DEC. TUNIT29 = 'DEGREES ' / TFORM30 = '1E ' / TTYPE30 = 'APPRA ' / apparent RA of date TUNIT30 = 'DEGREES ' / TFORM31 = '1E ' / TTYPE31 = 'APPDEC ' / apparent DEC of date. TUNIT31 = 'DEGREES ' / TFORM32 = '1E ' / TTYPE32 = 'EPOCRA ' / RA at epoch TUNIT32 = 'DEGREES ' / TFORM33 = '1E ' / TTYPE33 = 'EPOCDEC ' / DEC at epoch TUNIT33 = 'DEGREES ' / TFORM34 = '1E ' / TTYPE34 = 'GLON ' / galactic longitude TUNIT34 = 'DEGREES ' / TFORM35 = '1E ' / TTYPE35 = 'GLAT ' / galactic latitude TUNIT35 = 'DEGREES ' / TFORM36 = '1E ' / TTYPE36 = 'ZENI ' / Zenith Distance. TUNIT36 = 'DEGREES ' / TFORM37 = '8A ' / TTYPE37 = 'COORDCD ' / Coordinate Type Code. TFORM38 = '1E ' / TTYPE38 = 'RA-DESORG ' / RA of Descriptive origin. TUNIT38 = 'DEGREES ' / TFORM39 = '1E ' / TTYPE39 = 'DEC-DESORG ' / DEC of Descriptive origin. TUNIT39 = 'DEGREES ' / TFORM40 = '1E ' / TTYPE40 = 'ANG-DESORG ' / Position Angle of Descriptive coords. TUNIT40 = 'DEGREES ' / TFORM41 = '1E ' / TTYPE41 = 'TAMBIENT ' / Ambient Temperature at the 140-ft. TUNIT41 = 'KELVINS ' / TFORM42 = '1E ' / TTYPE42 = 'PRESSURE ' / Atmospheric Pressure. TUNIT42 = 'mmHg ' / TFORM43 = '1E ' / TTYPE43 = 'DEWPOINT ' / DewPoint. TUNIT43 = 'KELVINS ' / TFORM44 = '1E ' / TTYPE44 = 'DELTAXR ' / X-rate of position scanning. TUNIT44 = 'DEG/SEC ' / TFORM45 = '1E ' / TTYPE45 = 'DELTAYR ' / Y-rate of position scanning. TUNIT45 = 'DEG/SEC ' / TFORM46 = '1I ' / TTYPE46 = 'SCANDIR ' / Scan direction code (+/-0,1,or2) TFORM47 = '1E ' / TTYPE47 = 'LAMBDA ' / Observed Wavelength in Meters. TUNIT47 = 'METERS ' / TFORM48 = '1E ' / TTYPE48 = 'UXPNT ' / RA Pointing "fudge". TUNIT48 = 'DEGREES ' / TFORM49 = '1E ' / TTYPE49 = 'UYPNT ' / DEC Pointing "fudge". TUNIT49 = 'DEGREES ' / TFORM50 = '1E ' / TTYPE50 = 'PVLS-P1 ' / box offsets TUNIT50 = 'DEGREES ' / TFORM51 = '1E ' / TTYPE51 = 'PVLS-P2 ' / box offsets TUNIT51 = 'DEGREES ' / TFORM52 = '1E ' / TTYPE52 = 'PVLS-P3 ' / box offsets TUNIT52 = 'DEGREES ' / TFORM53 = '1E ' / TTYPE53 = 'RHO ' / Rho (feed offset) TUNIT53 = 'DEGREES ' / TFORM54 = '1E ' / TTYPE54 = 'THETA ' / Theta (feed position angle) TUNIT54 = 'DEGREES ' / TFORM55 = '1E ' / TTYPE55 = 'TCAL ' / Calibration Noise Tube Temperature. TUNIT55 = 'KELVINS ' / TFORM56 = '1E ' / TTYPE56 = 'TSYS ' / System Temperature. TUNIT56 = 'KELVINS ' / TFORM57 = '1E ' / TTYPE57 = 'CALFACTOR ' / Calibration Factor (K per count). TUNIT57 = 'K/V ' / TFORM58 = '1E ' / TTYPE58 = 'DATAMAX ' / Max value in scan. TUNIT58 = 'KELVINS ' / TFORM59 = '1E ' / TTYPE59 = 'DATAMIN ' / Min value in scan. TUNIT59 = 'KELVINS ' / TFORM60 = '120E ' / TTYPE60 = 'SCANDATA ' / Continuum Scan Data TUNIT60 = 'KELVINS ' / TMATX60 = T / A binary data matrix, begorrah. END From GSEIELST@cvax.cv.nrao.edu Mon Jun 4 14:10:43 1990 Return-Path: Received: from cvax.cv.nrao.edu by fits.cx.nrao.edu (4.0/SMI-DDN) id AA00640; Mon, 4 Jun 90 14:10:41 EDT Message-Id: <900604140918.274e@CVAX.CV.NRAO.EDU> X-Vmsmail-To: SMTP%"dishfits-request@fits.cx.nrao.edu" Status: RO From: GSEIELST@CVAX.CV.NRAO.EDU To: dishfits-request@fits.CX.NRAO.EDU Subject: RE: Green Bank FITS programs Date: Mon, 4 Jun 1990 14:09:18 EDT Frank, you're a genius. What a breakthrough: writing tapes that we can read. Thanks for your help. From RBROWN@cvax.cv.nrao.edu Mon Jun 4 14:23:06 1990 Return-Path: Received: from cvax.cv.nrao.edu by fits.cx.nrao.edu (4.0/SMI-DDN) id AA00674; Mon, 4 Jun 90 14:23:04 EDT Message-Id: <900604142137.1e2c@CVAX.CV.NRAO.EDU> X-Vmsmail-To: SMTP%"dishfits-request@fits.cx.nrao.edu" Status: RO From: RBROWN@CVAX.CV.NRAO.EDU To: dishfits-request@fits.CX.NRAO.EDU Subject: RE: Green Bank FITS programs Date: Mon, 4 Jun 1990 14:21:36 EDT Frank, I just skimmed the message, and I'm no expert, but perhaps you can tell me why you decided not to stick scrupulously to SI units. I see box offsets in degrees, velocity offsets in Km/s, pressure in mmHg etc. Does this make a difference, or does the 'self-documenting' property of FITS render this point moot?