headfits.pro

来自「basic median filter simulation」· PRO 代码 · 共 126 行

PRO
126
字号
function HEADFITS, filename, EXTEN = exten, Compress = compress, $                    ERRMSG = errmsg, SILENT = silent;+; NAME:;       HEADFITS; PURPOSE:;       Read a FITS (primary or extension) header into a string array.; EXPLANATION:;       HEADFITS() can also read gzip (.gz) or Unix compressed (.Z) FITS files.;; CALLING SEQUENCE:;       Result = HEADFITS(Filename/Fileunit ,[ ERRMSG =, EXTEN= , COMPRESS=, ;                                            /SILENT ]);; INPUTS:;       Filename = String containing the name of the FITS file to be read.;                File names ending in '.gz' are assumed to be gzip'ed compressed;                and under Unix file names ending in '.Z' are assumed to be;                Unix compressed, and file names ending in .bz2 are assumed to;                be bzip2 compressed.    If this default behaviour is not ;                sufficient then use the COMPRESS keyword.;                            or;       Fileunit - A scalar integer specifying the unit of an already opened;                  FITS file.  The unit will remain open after exiting ;                  HEADFITS().  There are two possible reasons for choosing ;                  to specify a unit number rather than a file name:;          (1) For a FITS file with many extensions, one can move to the ;              desired extensions with FXPOSIT() and then use HEADFITS().  This;              is more efficient that repeatedly starting at the beginning of ;              the file.;          (2) For reading a FITS file across a Web http: address after opening;              the unit with the SOCKET procedure.; OPTIONAL INPUT KEYWORDS:;      EXTEN  = Either an integer scalar, specifying which FITS extension to ;               read, or a scalar string specifying the extension name (stored;               in the EXTNAME keyword).   For example, to read the header of ;               the first extension set EXTEN = 1.   Default is to read the ;               primary FITS header  (EXTEN = 0).    The EXTEN keyword cannot ;               be used when a unit number is supplied instead of a file name.;     COMPRESS - If this keyword is set and non-zero, then treat the file;              as compressed.  If 1 assume a gzipped file.   Use IDL's;              internal decompression facilities for gzip files, while for ;              Unix or bzip2 compression spawn off a process to decompress and ;              use its output as the FITS stream.  If the keyword is not 1, ;              then use its value as a string giving the command needed for ;              decompression.   See FXPOSIT for more info.;     /SILENT - If set, then suppress any warning messages about invalid ;              characters in the FITS file.; OPTIONAL KEYWORD OUTPUT:;       ERRMSG	= If this keyword is present, 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.  ;; OUTPUTS:;       Result of function = FITS header, string array;; EXAMPLE:;       Print the main FITS header of a file 'test.fits' into a string ;       variable, h;;       IDL>  print, headfits( 'test.fits');;       Print the second extension header of a gzip compressed FITS file;       'test.fits.gz'.  Use HPRINT for pretty format;;       IDL> hprint, headfits( 'test.fits.gz', ext=2);;       Read the extension named CALSPEC ;;       IDL> hprint,headfits('test.fits.gz',ext='CALSPEC');; PROCEDURES CALLED;       FXPOSIT(), MRD_HREAD; MODIFICATION HISTORY:;       adapted by Frank Varosi from READFITS by Jim Wofford, January, 24 1989;       Keyword EXTEN added, K.Venkatakrishna, May 1992;       Make sure first 8 characters are 'SIMPLE'  W. Landsman October 1993;       Check PCOUNT and GCOUNT   W. Landsman    December 1994;       Major rewrite, work for Unix gzip files,   W. Landsman  April 1996;       Added COMPRESS keyword  W. Landsman   April 2000;       Added ERRMSG keyword    W. Landsman   July 2000;       Added /SILENT keyword   W. Landsman    December 2000;       Option to read a unit number rather than file name W.L    October 2001;       Test output status of MRD_HREAD call October 2003 W. Landsman;       Allow extension to be specified by name Dec 2006 W. Landsman;- On_error,2 if N_params() LT 1 then begin     print,'Syntax - header = headfits( filename,[ EXTEN=, ERRMSG=, ' + $                   '/SILENT, COMPRESS= ])'     return, -1 endif  printerr = not arg_present(errmsg)   errmsg = ''  if not keyword_set(exten) then exten = 0  unitsupplied = size(filename,/TNAME) NE 'STRING'  if unitsupplied then unit = filename else begin      unit = FXPOSIT( filename, exten, errmsg = errmsg, $                   /READONLY,compress = compress, SILENT=silent)     if unit EQ -1 then begin           if printerr then  $	         message,'ERROR - ' + errmsg,/CON        return,-1     endif     if eof(unit) then begin        free_lun,unit        message = 'Extension past EOF'        if not printerr then errmsg = message else $               message,'ERROR - ' + message,/CON         return,-1     endif  endelse    MRD_HREAD, unit, header, status, SILENT = silent  if not unitsupplied then free_lun, unit  if status LT 0 then begin         if N_elements(errmsg) GT 0 then errmsg = !ERROR_STATE.MSG else $          message,'ERROR - ' + !ERROR_STATE.MSG,/CON           return, -1  endif else return, header	    end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?