📄 fxbhmake.pro
字号:
PRO FXBHMAKE,HEADER,NROWS,EXTNAME,COMMENT,DATE=DATE, $ INITIALIZE=INITIALIZE,EXTVER=EXTVER,EXTLEVEL=EXTLEVEL, $ ERRMSG=ERRMSG;+; NAME: ; FXBHMAKE; Purpose : ; Create basic FITS binary table extension (BINTABLE) header.; Explanation : ; Creates a basic header array with all the required keywords, but with; none of the table columns defined. This defines a basic structure; which can then be added to or modified by other routines.; Use : ; FXBHMAKE, HEADER, NROWS [, EXTNAME [, COMMENT ]]; Inputs : ; NROWS = Number of rows in the binary table.; Opt. Inputs : ; EXTNAME = If passed, then the EXTNAME record is added with this value.; COMMENT = Comment to go along with EXTNAME.; Outputs : ; HEADER = String array containing FITS extension header.; Opt. Outputs: ; None.; Keywords : ; INITIALIZE = If set, then the header is completely initialized, and any; previous entries are lost.; DATE = If set, then the DATE keyword is added to the header.; EXTVER = Extension version number (integer).; EXTLEVEL = Extension level number (integer).; ERRMSG = If defined and passed, then any error messages will be; returned to the user in this parameter rather than; depending on the MESSAGE routine in IDL. If no errors are; encountered, then a null string is returned. In order to; use this feature, ERRMSG must be defined first, e.g.;; ERRMSG = ''; FXBHMAKE, ERRMSG=ERRMSG, ...; IF ERRMSG NE '' THEN ...;; Calls : ; GET_DATE, FXADDPAR, FXHCLEAN; Common : ; None.; Restrictions: ; Warning: No checking is done of any of the parameters.; Side effects: ; None.; Category : ; Data Handling, I/O, FITS, Generic.; Prev. Hist. : ; William Thompson, Jan 1992.; William Thompson, Sep 1992, added EXTVER and EXTLEVEL keywords.; Written : ; William Thompson, GSFC, January 1992.; Modified : ; Version 1, William Thompson, GSFC, 12 April 1993.; Incorporated into CDS library.; Version 2, William Thompson, GSFC, 21 June 1994; Added ERRMSG keyword.; Version 3, William Thompson, GSFC, 23 June 1994; Modified so that ERRMSG is not touched if not defined.; Version :; Version 3, 23 June 1994; Converted to IDL V5.0 W. Landsman September 1997;-; ON_ERROR,2;; Check the number of parameters first.; IF N_PARAMS() LT 2 THEN BEGIN MESSAGE = 'Calling sequence: FXBHMAKE, HEADER, NROWS ' + $ '[, EXTNAME [, COMMENT ]]' IF N_ELEMENTS(ERRMSG) NE 0 THEN BEGIN ERRMSG = MESSAGE RETURN END ELSE MESSAGE, MESSAGE ENDIF;; If requested, then initialize the header.; IF KEYWORD_SET(INITIALIZE) THEN BEGIN HEADER = STRARR(36) HEADER[0] = 'END' + STRING(REPLICATE(32B,77));; Else, if undefined, then initialize the header.; END ELSE IF N_ELEMENTS(HEADER) EQ 0 THEN BEGIN HEADER = STRARR(36) HEADER[0] = 'END' + STRING(REPLICATE(32B,77));; Otherwise, make sure that HEADER is a string array, and remove any keywords; that describe the format of the file.; END ELSE BEGIN SZ = SIZE(HEADER) IF (SZ[0] NE 1) OR (SZ[2] NE 7) THEN BEGIN MESSAGE = 'HEADER must be a (one-dimensional) ' + $ 'string array' IF N_ELEMENTS(ERRMSG) NE 0 THEN BEGIN ERRMSG = MESSAGE RETURN END ELSE MESSAGE, MESSAGE ENDIF IF N_ELEMENTS(ERRMSG) NE 0 THEN BEGIN FXHCLEAN,HEADER,ERRMSG=ERRMSG IF ERRMSG EQ '' THEN RETURN END ELSE FXHCLEAN,HEADER ENDELSE;; Add the required keywords. Start out with a completely blank table, with no; columns.; FXADDPAR,HEADER,'XTENSION','BINTABLE','Written by IDL: '+ SYSTIME() FXADDPAR,HEADER,'BITPIX',8 FXADDPAR,HEADER,'NAXIS',2,'Binary table' FXADDPAR,HEADER,'NAXIS1',0,'Number of bytes per row' FXADDPAR,HEADER,'NAXIS2',LONG(NROWS),'Number of rows' FXADDPAR,HEADER,'PCOUNT',0,'Random parameter count' FXADDPAR,HEADER,'GCOUNT',1,'Group count' FXADDPAR,HEADER,'TFIELDS',0,'Number of columns';; If requested, add the EXTNAME keyword to the header.; IF N_PARAMS() GE 3 THEN BEGIN IF N_PARAMS() EQ 3 THEN COMMENT = 'Extension name' FXADDPAR,HEADER,'EXTNAME',EXTNAME,COMMENT ENDIF;; If requested, add the EXTVER keyword to the header.; IF N_ELEMENTS(EXTVER) EQ 1 THEN $ FXADDPAR,HEADER,'EXTVER',LONG(EXTVER),'Extension version';; If requested, add the EXTLEVEL keyword to the header.; IF N_ELEMENTS(EXTLEVEL) EQ 1 THEN $ FXADDPAR,HEADER,'EXTLEVEL',LONG(EXTLEVEL),'Extension level';; If requested, add the DATE keyword to the header, containing the current; date.; IF KEYWORD_SET(DATE) THEN BEGIN GET_DATE,DTE ;Get current date as CCYY-MM-DD FXADDPAR,HEADER,'DATE',DTE,'Creation date' ENDIF; IF N_ELEMENTS(ERRMSG) NE 0 THEN ERRMSG = '' RETURN END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -