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

📄 sxwrite.pro

📁 basic median filter simulation
💻 PRO
字号:
pro SXWRITE, Unit, Data, Par;+; NAME:;	SXWRITE; PURPOSE:;	Write a group of data and parameters in ST format;	to a STSDAS data file.;; CALLING SEQUENCE:;	SXWRITE, Unit, Data,[ Par];; INPUTS:;	Unit = unit number of file.  The file must have been;		previously opened by SXOPEN.;	Data = Array of data to be written.  The dimensions;		must agree with those supplied to SXOPEN and written;		into the FITS header.  The type is converted if;		necessary.;; OPTIONAL INPUT PARAMETERS:;	Par = parameter block.  The size of this array must;		agree with the Psize parameter in the FITS header.;; OUTPUTS:;	None.; COMMON BLOCKS:;	STCOMMN - Contains RESULT(20,10) where RESULT(i,LUN) =;	0 - 121147 for consistency check, 1 - Unit for consistency,;	2 - bitpix, 3 - naxis, 4 - groups (0 or 1), 5 - pcount,;	6 - gcount, 7 - psize, 8 - data type as idl type code,;	9 - bytes / record, 10 to 10+N-1 - dimension N,;	18 - # of groups written, 19 = gcount.;; SIDE EFFECTS:;	The data are written into the next group.;; RESTRICTIONS:;	SXOPEN must have been called to initialize the;	header and the common block.;; MODIFICATION HISTORY:;	DMS, July, 1983.;	D.Lindler July, 1986 - changed block size of file to 512;			moved group parameters after the groups data.;	D.Lindler July, 1987 - modified to allow any size parameter block;			(in bytes).;	D. Lindler  April, 1990 - converted to new VMS IDL;	Converted to IDL V5.0   W. Landsman   September 1997;-;----------------------------------------------------------------------------;	common stcommn, result, filename	if N_params() LT 2 then begin		print,'Syntax - SXWRITE, Unit, Data,[ Par]		return        endif	;	if N_elements(result) ne 200 then begin		print,'SXWRITE - Sxopen not called'		return		endif	if result[1,unit] ne unit then begin		print,'SXWRITE - unit not opened with SXOPEN'		return		endif;	on_error,2			;return to caller on error	s = size(data)			;get data dims;; determine position in file to write;	start=result[18,unit]*result[9,unit];; create assoc variable for data;	rec = assoc(unit,data,start);; write data;	rec[0]=data;; write pblk;	if result[7,unit] gt 0 then begin		if n_params(0) lt 3 then par=bytarr(result[7,unit])		p=byte(par,0,result[7,unit])		rec=assoc(unit,p,start+result[9,unit]-result[7,unit])		rec[0]=p	end	result[18,unit] = result[18,unit]+1 ;did one more group	returnend

⌨️ 快捷键说明

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