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

📄 ftprint.pro

📁 basic median filter simulation
💻 PRO
字号:
pro ftprint,h,tab,columns,rows,textout=textout;+;  NAME:;      FTPRINT;  PURPOSE:;       Procedure to print specified columns and rows of a FITS table;; CALLING SEQUENCE:;       FTPRINT, h, tab, columns, [ rows, TEXTOUT = ];; INPUTS:;       h - Fits header for table, string array;       tab - table array ;       columns - string giving column names, or vector giving;               column numbers (beginning with 1).  If string ;               supplied then column names should be separated by comma's.;       rows - (optional) vector of row numbers to print.  If;               not supplied or set to scalar, -1, then all rows;               are printed.;; OUTPUTS:;       None;; OPTIONAL INPUT KEYWORDS:;       TEXTOUT controls the output device; see the procedure TEXTOPEN;; SYSTEM VARIABLES:;       Uses nonstandard system variables !TEXTOUT and !TEXTOPEN;       These will be defined (using ASTROLIB) if not already present.;       Set !TEXTOUT = 3 to direct output to a disk file.   The system;       variable is overriden by the value of the keyword TEXTOUT;; EXAMPLES:;;       ftprint,h,tab,'STAR ID,RA,DEC'    ;print id,ra,dec for all stars;       ftprint,h,tab,[2,3,4],indgen(100) ;print columns 2-4 for ;                                         ;first 100 stars;       ftprint,h,tab,text="stars.dat"    ;Convert entire FITS table to;                                         ;an ASCII file named STARS.DAT;; PROCEDURES USED:;       FTSIZE, FTINFO, TEXTOPEN, TEXTCLOSE;; RESTRICTIONS: ;       (1) Program does not check whether output length exceeds output;               device capacity (e.g. 80 or 132).;       (2) Column heading may be truncated to fit in space defined by;               the FORMAT specified for the column;       (3) Program does not check for null values;; MINIMUM IDL VERSION:;       V5.3 (uses STRSPLIT); HISTORY:;       version 1  D. Lindler Feb. 1987;       Accept undefined values of rows, columns   W. Landsman August 1997;       Converted to IDL V5.0   W. Landsman   September 1997;       New FTINFO calling sequence    W. Landsman   May 2000;       Parse scalar string with STRSPLIT   W. Landsman  July 2002;       Fix format display of row number  W. Landsman March 2003;       Fix format display of row number again  W. Landsman May 2003;-; On_error,2;; set defaulted parameters; if N_params() LT 2 then begin   print,'Syntax -  FTPRINT, h, tab, [ columns, rows, TEXTOUT= ]'   return endif defsysv,'!textout',exists = i if i EQ 0 then astrolib  if N_elements(columns) EQ 0 then columns = -1 if N_elements(rows) EQ 0 then rows= -1 if  not keyword_set(TEXTOUT)  then textout = !TEXTOUT; make sure rows is a vector n = N_elements(rows) if n EQ 1 then r = [rows] else r = long(rows) ftsize,h,tab,ncols,nrows,tfields,allcols,allrows, ERRMSG = errmsg   ;table size if ERRMSG NE '' then message,errmsg if r[0] EQ -1 then r = lindgen(nrows)          ;default Nr = N_elements(r) good = where( (r GE 0) and (r LT nrows), Ngood) if Ngood NE Nr then begin      if Ngood EQ 0 then message,'ERROR - No valid row numbers supplied'      r = r[good] endif;; extract column info; title1 = '' title2 = '' FTINFO,h,ft_str ;; if columns is a string, change it to string array; if size(columns,/TNAME) EQ 'STRING'  then begin          colnames = strsplit(columns,',',/EXTRACT)          numcol = N_elements(colnames)        colnames = strupcase(strtrim(colnames,2))        ttype = strtrim(ft_str.ttype,2)        colnum = intarr(numcol)        for i = 0,numcol-1 do begin             icol = where(ttype EQ colnames[i], Nfound)              if Nfound EQ 0 then message, $               'ERROR - Field ' + colnames[i] + ' not found in FITS ASCII table'             colnum[i] = icol[0]        endfor   end else begin                       ;user supplied vector        colnum = fix(columns) -1                ;make sure it is integer        numcol = N_elements(colnum)     ;number of elements        if numcol EQ 1 then begin            if colnum[0] LT 0 then begin               colnum = indgen(tfields) & numcol = tfields        endif & endif end flen = ft_str.width[colnum] colpos = ft_str.tbcol[colnum] ttype = strtrim( ft_str.ttype[colnum],2) tunit = strtrim( ft_str.tunit[colnum],2);; create header lines;  for i=0,numcol-1 do begin        name = strn(ttype[i],padtype=2,len=flen[i] )        unit = strn(tunit[i],padtype=2,len=flen[i] )         title1 = title1 + ' ' + name        title2 = title2 + ' ' + unit  endfor;; open output file; textopen,'FTPRINT',TEXTOUT=textout, MORE_SET = more_set ifmt = fix(alog10(max(r)+1)) > 3 title1 = strn('ROW',padtype=2,len = ifmt) +  title1 title2 = string(replicate(32b,ifmt+1)) + title2 ifmt = strtrim(ifmt,2);; loop on rows ; printf,!TEXTUNIT,title1 printf,!TEXTUNIT,title2 printf,!TEXTUNIT,' '  for i = 0, Nr-1 do begin;; loop on columns;        line = string(r[i],format='(i' + ifmt + ')')     ;print line        for j = 0,numcol-1 do begin                cpos=colpos[j]-1                        ;column number                val = string(tab[cpos:cpos+flen[j]-1,r[i]])                line = line+' '+ val        endfor        printf,!TEXTUNIT,line        if more_set then if (!ERR EQ 1) then goto, DONE endfor;; done;DONE:  textclose,textout=textout return end

⌨️ 快捷键说明

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