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

📄 ten.pro

📁 basic median filter simulation
💻 PRO
字号:
      FUNCTION ten,dd,mm,ss;+; NAME:;	TEN(); PURPOSE:;	Converts a sexigesimal number or string to decimal.; EXPLANATION:;	Inverse of the SIXTY() function.;; CALLING SEQUENCES:;	X = TEN( [ HOUR_OR_DEG, MIN, SEC ] );	X = TEN( HOUR_OR_DEG, MIN, SEC );	X = TEN( [ HOUR_OR_DEG, MIN ] );	X = TEN( HOUR_OR_DEG, MIN );	X = TEN( [ HOUR_OR_DEG ] )      <--  Trivial cases;	X = TEN( HOUR_OR_DEG )          <--;;        or;       X = TEN(HRMNSC_STRING);; INPUTS:;	HOUR_OR_DEG,MIN,SEC -- Scalars giving sexigesimal quantity in ;		in order from largest to smallest.    ;                         or;       HRMNSC_STRING - String giving sexigesmal quantity separated by;               spaces or colons e.g. "10 23 34" or "-3:23:45.2";               Any negative values should begin with a minus sign.; OUTPUTS:;	Function value returned = double real scalar, decimal equivalent of;	input sexigesimal quantity.  A minus sign on any nonzero element;	of the input vector causes all the elements to be taken as;	< 0.;; EXAMPLES:;       IDL> print,ten(0,-23,34);                 --> -0.39277778;       IDL> print,ten("-0:23:34");                 --> -0.39277778; PROCEDURE:;	Mostly involves checking arguments and setting the sign.;;	The procedure TENV can be used when dealing with a vector of ;	sexigesimal quantities.;; MODIFICATION HISTORY:;	Written by R. S. Hill, STX, 21 April 87       ;	Modified to allow non-vector arguments.  RSH, STX, 19-OCT-87;       Recognize -0.0   W. Landsman/B. Stecklum   Dec 2005;       Work with string input  W. Landsman Dec 2008;-      compile_opt idl2      np = N_params()      if (np eq 1) then begin         if size(dd,/TNAME) EQ 'STRING' then begin  	      temp = strtrim(dd,2)	      neg = strmid(dd,0,1) EQ '-'	      temp = repchr(temp,':',' ')	      value = abs(double(gettok(temp,' ')))	       mm = double(gettok(temp,' '))	       decimal =  value + mm/60. + double(temp)/3600.0d               if neg then decimal = -decimal	      return,decimal         endif else vector=dd      endif else begin         if (np lt 1) or (np gt 3) then goto,bad_args         vector=dblarr(3)         vector[0]=dd         vector[1]=mm         if np gt 2 then vector[2]=ss      endelse      sz = size(vector)      ndim = sz[0]      if (ndim eq 0) then return,double(vector)      facs=[1.0d0,60.0d0,3600.0d0]      nel = sz[1]      sign = +1.0d0       dummy=where(strpos(string(vector),'-') ge 0,cnt)       if cnt gt 0 then sign = -1.0d0      vector = abs(vector)      decim = double(vector[0])      i = 1      while (i le nel-1) do begin         decim = decim + double(vector[i])/facs[i]         i = i + 1      endwhile      return,decim*signbad_args:          print,'Argument(s) should be hours/degrees, minutes (optional),'      print,'seconds (optional)   in vector or as separate arguments.'      print,'If any one number negative, all taken as negative.'      return,0.0d0           end

⌨️ 快捷键说明

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