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

📄 rdfloat.pro

📁 basic median filter simulation
💻 PRO
字号:
pro rdfloat,name,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17, $            v18,v19,SKIPLINE = skipline, NUMLINE = numline,DOUBLE=double, $            SILENT = silent, COLUMNS = columns;+; NAME:;      RDFLOAT; PURPOSE:;      Quickly read a numeric ASCII data file into IDL floating/double vectors.; EXPLANATION:;      Columns of data may be separated by tabs or spaces.      This ;      program is fast but is restricted to data files where all columns can ;      be read as floating point (or all double precision).   ;;      Use READCOL if  greater flexibility is desired.   Use READFMT to read a ;      fixed-format ASCII file.   Use FORPRINT to print columns of data.;; CALLING SEQUENCE:;      RDFLOAT, name, v1, [ v2, v3, v4, v5, ...  v19] ;                         COLUMNS, /DOUBLE, SKIPLINE = , NUMLINE = ];; INPUTS:;      NAME - Name of ASCII data file, scalar string.  In VMS, an extension of ;              .DAT is assumed, if not supplied.;; OPTIONAL INPUT KEYWORDS:;      COLUMNS - Numeric scalar or vector specifying which columns in the file;               to read.    For example, if COLUMNS = [3,7,11] then the first;               output variable (v1) would contain column 3, the second would;               contain column 7 and the third would contain column 11.   If;               the number of elements in the COLUMNS vector is less than the;               number of output parameters, then consecutive columns are ;               implied.    For example, if 3 output parameters are supplied;               (v1,v2,v3) and COLUMNS = 3, then columns 3,4, and 5 will be;               read.   ;      SKIPLINE - Integer scalar specifying number of lines to skip at the top;              of file before reading.   Default is to start at the first line.;      NUMLINE - Integer scalar specifying number of lines in the file to read.  ;             Default is to read the entire file;      /DOUBLE - If this keyword is set, then all variables are read in as;              double precision.;      /SILENT - Set this keyword to suppress any informative messages;; OUTPUTS:;      V1,V2,V3,...V19 - IDL vectors to contain columns of data.;               Up to 19 columns may be read.  All output vectors are of type;               float, unless the /DOUBLE keyword is set, ;; EXAMPLES:;      Each row in a file 'position.dat' contains a star number and 6 columns;      of data giving an RA and Dec in sexigesimal format.   Read into IDL ;      variables.     ;;       IDL> rdfloat,'position.dat',ID,hr,min,sec,deg,dmin,dsec  ;;       All output vectors will be floating point.    To only read the ;       declination vectors (Deg,dmin,dsec);;       IDL> rdfloat,'position.dat',deg,dmin,dsec,col=4;; RESTRICTIONS:;      (1) All rows in the file must be formatted identically (except for ;          those skipped by SKIPLINE).    RDFLOAT reads the first line of ;          the data (after SKIPLINE) to determine the number of columns of ;          data.;      (2) Cannot be used to read strings; PROCEDURES USED:;      None.; REVISION HISTORY:;      Written         W. Landsman                 September 1995;      Call NUMLINES() function                    February 1996;      Read up to 19 columns                       August 1997;      Converted to IDL V5.0   W. Landsman         September 1997;      Allow to skip more than 32767 lines  W. Landsman  June 2001;      Added /SILENT keyword   W. Landsman         March 2002;      Added COLUMNS keyword, use STRSPLIT    W. Landsman May 2002;      Use SKIP_LUN if V5.6 or later          W. Landsman Nov 2002;      V5.6 version, use FILE_LINES()         W. Landsman Dec 2002;-  On_error,2                           ;Return to caller  if N_params() lt 2 then begin     print,'Syntax - RDFLOAT, name, v1, [ v2, v3,...v19 '     print,'                    COLUMNS = ,/DOUBLE, SKIPLINE =, NUMLINE = ]'     return  endif; Get number of lines in file   nlines = FILE_LINES( name )   if nlines LE 0 then begin        message,'ERROR - File ' + name+' contains no data',/CON	return   endif         if not keyword_set( SKIPLINE ) then skipline = 0   nlines = nlines - skipline   if keyword_set( NUMLINE) then nlines = numline < nlines;Read first line, and determine number of columns of data   openr, lun, name, /GET_LUN   temp = ''   if skipline GT 0 then $        skip_lun, lun, skipline, /lines   readf,lun,temp         colval = strsplit(temp, count=ncol)         ;Determine number of columns ;Create big output array and read entire file into the array   bigarr = keyword_set(DOUBLE) ? dblarr(ncol, nlines, /NOZERO):  $                                  fltarr(ncol, nlines, /NOZERO)    close,lun   openr, lun, name   if skipline GT 0 then skip_lun, lun, skipline, /lines    readf, lun, bigarr   free_lun, lun   if not keyword_set(SILENT) then $       message, strtrim(nlines,2) + ' lines of data read',/INF   Nvector = (N_params()-1) < ncol   if N_elements(columns) EQ 0 then c = indgen(nvector) else c = columns - 1   Nc = N_elements(c)   if Nc LT nvector then c = [c,indgen(nvector-nc) + c[nc-1] +1 ]    v1 = reform( bigarr[c[0],*])    if Nvector GT 1 then v2 = reform( bigarr[c[1],*]) else return   if Nvector GT 2 then v3 = reform( bigarr[c[2],*]) else return   if Nvector GT 3 then v4 = reform( bigarr[c[3],*]) else return   if Nvector GT 4 then v5 = reform( bigarr[c[4],*]) else return   if Nvector GT 5 then v6 = reform( bigarr[c[5],*]) else return   if Nvector GT 6 then v7 = reform( bigarr[c[6],*]) else return   if Nvector GT 7 then v8 = reform( bigarr[c[7],*]) else return   if Nvector GT 8 then v9 = reform( bigarr[c[8],*]) else return   if Nvector GT 9 then v10 = reform( bigarr[c[9],*]) else return   if Nvector GT 10 then v11 = reform( bigarr[c[10],*]) else return   if Nvector GT 11 then v12 = reform( bigarr[c[11],*]) else return   if Nvector GT 12 then v13 = reform( bigarr[c[12],*]) else return   if Nvector GT 13 then v14 = reform( bigarr[c[13],*]) else return   if Nvector GT 14 then v15 = reform( bigarr[c[14],*]) else return   if Nvector GT 15 then v16 = reform( bigarr[c[15],*]) else return   if Nvector GT 16 then v17 = reform( bigarr[c[16],*]) else return   if Nvector GT 17 then v18 = reform( bigarr[c[17],*]) else return   if Nvector GT 18 then v19 = reform( bigarr[c[18],*])   return  end

⌨️ 快捷键说明

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