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

📄 sxmake.pro

📁 basic median filter simulation
💻 PRO
字号:
Pro sxmake, unit, File, Data, Par, Groups, Header, PSIZE = psize;+; NAME:;       SXMAKE; PURPOSE:;       Create a basic ST header file from an IDL array prior to writing data.;; CALLING SEQUENCE:;       sxmake, Unit, File, Data, Par, Groups, Header, [ PSIZE = ];; INPUTS:;       Unit = Logical unit number from 1 to 9.;       File = file name of data and header files to create.   If no file name;              extension is supplied then the default is to use .hhh for the;              header file extension and .hhd for the data file extension    ;              If an extension is supplied, it should be of the form .xxh;              where xx are any alphanumeric characters.;       Data = IDL data array of the same type, dimensions and;               size as are to be written to file.;       Par = # of elements in each parameter block for each data record.  If ;             set equal to 0, then parameter blocks will not be written.  The ;             data type of the parameter blocks must be the same as the data ;             array.   To get around this restriction, use the PSIZE keyword.;       Groups = # of groups to write.  If 0 then write in basic;               format without groups.  ;; OPTIONAL INPUT PARAMETERS:;       Header = String array containing ST header file.  If this;               parameter is omitted, a basic header is constructed.;               If included, the basic parameters are added to the;               header using sxaddpar.  The END keyword must terminate;               the parameters in Header.;; OPTIONAL KEYWORD INPUT PARAMETER:;        PSIZE - Integer scalar giving the number of bits in the parameter ;               block.    If the PSIZE keyword is given, then the Par input;               parameter is ignored.;                ; OPTIONAL OUTPUT PARAMETERS:;       Header = ST header array, an 80 by N character array.;; COMMON BLOCKS:;       Stcommn - as used in sxwrite, sxopen, etc.;; SIDE EFFECTS:;       The header file is created and written and then the;       data file is opened on the designated unit.;; RESTRICTIONS:;       Header files must be named .xxh and data files must be;       named .xxd, where xx are any alphanumeric characters.;; PROCEDURE:;       Call sxmake to create a header file.  Then call sxwrite;       to output each group.; ; PROCEDURES USED:;       GET_DATE, SXADDPAR, SXOPEN; MODIFICATION HISTORY:;       DMS, July, 1983.;       converted to new VMS IDL  April 90;       Use SYSTIME() instead of !STIME   W. Landsman   Aug 1997;       Converted to IDL V5.0   W. Landsman   September 1997;       Added optional PSIZE keyword   August 1999 W. Landsman ;       Recognize unsigned datatype    January 2000   W. Landsman ;-        common stcommn, result, filename;        if N_params() LT 2 then begin           print,'Syntax - SXMAKE,unit,file,data,par,groups,header, [PSIZE = ]'           return        endif;        if N_elements(result) ne 200 then begin                result = lonarr(20,10)  ;define common blks                filename = strarr(10)                endif;        if (unit lt 1) or (unit gt 9) then $  ;unit ok?                message,'Unit number must be from 1 to 9.';        close,unit        result[unit,*]=0;        if N_elements(par) EQ 0 then par = 0        if N_elements(groups) EQ 0 then groups = 0;        s = size(data)                  ;obtain size of array.        stype = s[s[0]+1]               ;type of data.        if (par eq 0) and (groups eq 0) and (stype LT 6) then $                sxaddpar,header,'simple','T','Written by IDL:  '+ systime() $            else $                sxaddpar,header,'simple','F','Written by IDL:  '+ systime()        case stype of0:      message,'Data parameter is not defined'7:      message,"Can't write strings to ST files"1:      begin& bitpix=  8 & d = 'INTEGER*1' & endcase2:      begin& bitpix= 16 & d = 'INTEGER*2' & endcase4:      begin& bitpix= 32 & d = 'REAL*4' & endcase3:      begin& bitpix= 32 & d = 'INTEGER*4' & endcase5:      begin& bitpix= 64 & d = 'REAL*8' & endcase6:      begin& bitpix= 64 & d = 'COMPLEX*8' & endcase12:     begin & bitpix=16 & d='UNSIGNED*2' & endcase13:     begin & bitpix=32 & d='UNSIGNED*4' & endcaseelse:   message,'ERROR -- Unrecognized input data type'        endcase;        sxaddpar,header,'BITPIX',bitpix        sxaddpar,header,'NAXIS',S[0]    ;# of dimensions        for i=1,s[0] do sxaddpar,header,'NAXIS'+strtrim(i,2),s[i]        sxaddpar,header,'DATATYPE',d,'Type of data'        Get_date,dte        sxaddpar,header,'DATE',dte;        if groups eq 0 then $           ;true if not group fmt.                sxaddpar,header,'GROUPS','F','No groups' $           else begin                   ;make group params.                sxaddpar,header,'GROUPS','T'                sxaddpar,header,'PCOUNT',par                sxaddpar,header,'GCOUNT',groups                if N_elements(psize) EQ 0 then psize = bitpix*par                sxaddpar,header,'PSIZE',psize,'# of bits in parm blk'           endelse;        sxopen,unit,file,header,hist,'W' ;make header file, etc.        returnend

⌨️ 快捷键说明

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