⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sxaddhist.pro

📁 basic median filter simulation
💻 PRO
字号:
pro sxaddhist,history,header,blank = blank,comment= comment, location=key, $                            pdu=pdu;+; NAME:;	SXADDHIST                           ; PURPOSE:;	Procedure to add HISTORY (or COMMENT) line(s) to a FITS header;; EXPLANATION:;       The advantage of using SXADDHIST instead of SXADDPAR is that with ;       SXADDHIST many HISTORY or COMMENT records can be added in a single call.;; CALLING SEQUENCE;	sxaddhist, history, header, [ /PDU, /COMMENT ];; INPUTS:;	history - string or string array containing history or comment line(s);		to add to the FITS header; INPUT/OUTPUT;	header - FITS header (string array).   Upon output, it will contain the;               specified HISTORY records added to the end;; OPTIONAL KEYWORD INPUTS:;       /BLANK - If specified then blank ('       ') keywords will be written;              rather than 'HISTORY ' keywords.;       /COMMENT - If specified, then 'COMMENT ' keyword will be written rather;              than 'HISTORY ' keywords.    ;              Note that according to the FITS definition, any number of ;              'COMMENT' and 'HISTORY' or blank keywords may appear in a header,;              whereas all other keywords may appear only once.   ;	LOCATION=key - If present, the history will be added before this;	       keyword.  Otherwise put it at the end.;	/PDU - if specified, the history will be added to the primary;		data unit header, (before the line beginning BEGIN EXTENSION...)               ;		Otherwise, it will be added to the end of the header.;               This has meaning only for extension headers using the STScI;               inheritance convention. ; OUTPUTS:;	header - updated FITS header;; EXAMPLES:;	sxaddhist, 'I DID THIS', header      ;Add one history record;;	hist = strarr(3);	hist[0] = 'history line number 1';	hist[1[ = 'the next history line';	hist[2] = 'the last history line';	sxaddhist, hist, header              ;Add three history records;; SIDE EFFECTS:;       Header array is truncated to the final END statement;	LOCATION overrides PDU.; HISTORY:;	D. Lindler  Feb. 87;	April 90  Converted to new idl  D. Lindler;	Put only a single space after HISTORY   W. Landsman  November 1992;	Aug. 95	  Added PDU keyword parameters;	Converted to IDL V5.0   W. Landsman   September 1997;	LOCATION added.  M. Greason, 28 September 2004.;-;-------------------------------------------------------------------- 	On_error,2 	if N_params() LT 2 then begin 	   print, ' Syntax - SXADDHIST, hist, header, '	   print,  '       /PDU, /BLANK, /COMMENT, LOCATION= ] ' 	   return 	endif; Check input parameters	if (n_elements(key) LE 0) then keynam = ''			$	                          else keynam = strupcase(strtrim(key, 2)) 	s = size(history) & ndim = s[0] & type = s[ndim+1] 	if type NE 7 then message, $ 	    'Invalid history lines specified; must be a string or string array'         if keyword_set(COMMENT) then keyword = 'COMMENT ' else $        if keyword_set(BLANK) then keyword = ' ' else $                                   keyword = 'HISTORY ' 	nadd = N_elements(history)	      ;Number of lines to add 	s = size(header) & ndim2 = s[0] & type = s[ndim2+1] 	if (ndim2 NE 1) or (type NE 7) then message, $		'Invalid FITS header supplied; header must be a string array'	nlines = N_elements(header)	      ;Number of lines in header; Find END statement of FITS header         	endline = where( strtrim(strmid(header,0,8),2) EQ 'END' ) 	n = endline[0] 	if n LT 0 then message, $		    'Invalid FITS header array, END keyword not found' 	blank = string( replicate(32b,80) )	n1 = n		;position to insert;; if LOCATION was specified and found, make room before it.;	locfnd = 0	if (strlen(keynam) gt 0) then begin	    extline = where( strupcase(strtrim(strmid(header,0,8),2)) EQ keynam )	    n_ext = extline[0]	    if (n_ext gt 1) then begin	        n1 = n_ext	        locfnd = 1	    endif	endif;; if /PDU find beginning of the extension header and make room for the; history;	if (keyword_set(PDU) and (locfnd EQ 0)) then begin	    extline = where( strupcase(strtrim(strmid(header,0,8),2)) EQ 'BEGIN EX' )	    n_ext = extline[0]	    if n_ext gt 1 then n1 = n_ext	end;; make room in the header;	if n1 eq 0 then header = [replicate(blank,nadd),header[n1:n]] else $		header = [header[0:n1-1],replicate(blank,nadd),header[n1:n]]; Add history records to header starting at position N1 	for i = 0, nadd-1 do begin			newline = blank		strput, newline, keyword + history[i]		header[n1+i] = newline 	endfor return end

⌨️ 快捷键说明

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