Changeset 196
- Timestamp:
- 01/19/10 16:34:34 (14 years ago)
- Location:
- trunk/procs
- Files:
-
- 25 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/procs/ajoutvectz.pro
r194 r196 10 10 ; et V des valeurs de la composante horizontale et verticale du 11 11 ; champ de vecteurs a tracer. 12 ; 12 13 ; par ex: 13 14 ; vecteur={matriceu:lec('unsurface'),matricev:lec('vnsurface')} … … 31 32 ; @keyword VECTMAX 32 33 ; norme minimun des vecteurs a tracer 34 ; 35 ; @keyword VECTMIN 36 ; 37 ; @keyword VECTMAX 38 ; 39 ; @keyword _EXTRA 40 ; 41 ; @keyword TYPE 33 42 ; 34 43 ; @examples … … 48 57 ; 49 58 ; @todo 59 ; 60 ; fix pb in param vecteur description with idldoc. It seems that {...} 61 ; have side effects 62 ; 50 63 ; in example current pb with lec('vnsurface') 51 64 ; -
trunk/procs/data_read.pro
r195 r196 13 13 ; 14 14 ; @param IOVER {in}{required} 15 ; 16 ; @keyword ALL_DATA 17 ; 18 ; @keyword USE_LARGE_DOMAIN 19 ; 20 ; @keyword _EXTRA 15 21 ; 16 22 ; @returns -
trunk/procs/def_dbase.pro
r182 r196 5 5 ; @param EXPID {in}{required}{type=string} 6 6 ; 7 ; @returns 8 ; -1 in case of error 7 9 ; @examples 8 10 ; -
trunk/procs/extract_str.pro
r185 r196 16 16 ; last character of the substring to 17 17 ; be extracted from LINE 18 ; 19 ; @returns 20 ; -1 in case of error 18 21 ; 19 22 ; @examples … … 39 42 ; 40 43 compile_opt idl2, strictarrsubs 41 ;42 44 ; 43 45 ; Return to caller if errors -
trunk/procs/macros/make_depth.pro
r194 r196 4 4 ; 5 5 ; @param FILE_NAME {in}{required}{type=string} 6 ;7 6 ; 8 7 ; @param NCDF_DB {in}{required}{type=string} -
trunk/procs/macros/make_eos_sal.pro
r194 r196 31 31 ; @param NCDF_DB {in}{required}{type=string} 32 32 ; <location>:<path> or just <path> 33 ; 34 ; @keyword BOXZOOM 35 ; 36 ; @keyword TIME_1 37 ; 38 ; @keyword TIME_2 39 ; 40 ; @keyword ALL_DATA 41 ; 42 ; @keyword ZMTYP 33 43 ; 34 44 ; @returns -
trunk/procs/mask_z.pro
r189 r196 4 4 ; 5 5 ; mask pltz data according to bathy or box 6 ; 7 ; @param FLD 6 8 ; 7 9 ; @param CMD {in}{required}{type=structure} -
trunk/procs/meshes/build_mesh_glosea.pro
r173 r196 1 1 ;+ 2 ; 3 ; @keyword I_INDEX 4 ; 5 ; @keyword DELTA_I 6 ; 7 ; @keyword J_INDEX 8 ; 9 ; @keyword DELTA_J 10 ; 11 ; @keyword K_INDEX 12 ; 13 ; @keyword DELTA_K 14 ; 15 ; @keyword ZONAL 2 16 ; 3 17 ; @uses -
trunk/procs/meshes/mesh_from_file.pro
r195 r196 1 1 ;+ 2 ; 3 ; @param MODEL 4 ; 5 ; @param FILE_NAME {in}{required}{type=string} 6 ; 7 ; @param NCDF_DB {in}{required}{type=string} 8 ; <location>:<path> or just <path> 9 ; 10 ; @param VAR_NAME {in}{required}{type=string} 11 ; variable name 12 ; 13 ; @keyword ALL_DATA 2 14 ; 3 15 ; @uses -
trunk/procs/meshes/mesh_gaussian.pro
r194 r196 1 1 ;+ 2 ; 3 ; @param TRUNC 4 ; 5 ; @keyword IBEG 6 ; 7 ; @keyword IFIN 8 ; 9 ; @keyword JBEG 10 ; 11 ; @keyword JFIN 12 ; 13 ; @keyword ZOOM 14 ; 15 ; @keyword NO_SHIFT 16 ; 17 ; @keyword WHOLE_ARRAYS 18 ; 19 ; @keyword GLAMBOUNDARY 2 20 ; 3 21 ; @uses -
trunk/procs/meshes/mesh_glosea.pro
r191 r196 1 1 ;+ 2 ; 3 ; @keyword I_INDEX 4 ; 5 ; @keyword DELTA_I 6 ; 7 ; @keyword J_INDEX 8 ; 9 ; @keyword DELTA_J 10 ; 11 ; @keyword K_INDEX 12 ; 13 ; @keyword DELTA_K 14 ; 15 ; @keyword ZONAL 16 ; 17 ; @keyword NO_SHIFT 18 ; 19 ; @keyword WHOLE_ARRAYS 2 20 ; 3 21 ; @uses … … 17 35 , DELTA_K=delta_k $ 18 36 , ZONAL=zonal $ 19 , NO_SHIFT =no_shift $37 , NO_SHIFT=no_shift $ 20 38 , WHOLE_ARRAYS=whole_arrays 21 39 ; -
trunk/procs/meshes/mesh_micom.pro
r170 r196 1 1 ;+ 2 ; 3 ; @keyword I_INDEX 4 ; 5 ; @keyword DELTA_I 6 ; 7 ; @keyword J_INDEX 8 ; 9 ; @keyword DELTA_J 10 ; 11 ; @keyword K_INDEX 12 ; 13 ; @keyword DELTA_K 14 ; 15 ; @keyword ZONAL 16 ; 17 ; @keyword NO_SHIFT 18 ; 19 ; @keyword WHOLE_ARRAYS 20 ; 21 ; @keyword H_CONFIG 22 ; 23 ; @keyword V_CONFIG 2 24 ; 3 25 ; @uses -
trunk/procs/meshes/mesh_orca.pro
r170 r196 1 1 ;+ 2 ; 3 ; @keyword I_INDEX 4 ; 5 ; @keyword DELTA_I 6 ; 7 ; @keyword J_INDEX 8 ; 9 ; @keyword DELTA_J 10 ; 11 ; @keyword K_INDEX 12 ; 13 ; @keyword DELTA_K 14 ; 15 ; @keyword ZONAL 16 ; 17 ; @keyword NO_SHIFT 18 ; 19 ; @keyword WHOLE_ARRAYS 20 ; 21 ; @keyword H_CONFIG 22 ; 23 ; @keyword V_CONFIG 2 24 ; 3 25 ; @uses -
trunk/procs/meshes/mesh_pcmdi.pro
r195 r196 1 1 ;+ 2 ; 3 ; @param MODEL 4 ; 5 ; @keyword NO_SHIFT 6 ; 7 ; @keyword WHOLE_ARRAYS 2 8 ; 3 9 ; @uses -
trunk/procs/meshes/mesh_regular.pro
r194 r196 1 1 ;+ 2 ; 3 ; @param DELTAX 4 ; 5 ; @param DELTAY 6 ; 7 ; @keyword INILON 8 ; 9 ; @keyword EQUATOR 10 ; 11 ; @keyword NOMASK 12 ; 13 ; @keyword MASK_FILE 14 ; 15 ; @keyword I_INDEX 16 ; 17 ; @keyword DELTA_I 18 ; 19 ; @keyword J_INDEX 20 ; 21 ; @keyword DELTA_J 22 ; 23 ; @keyword NO_SHIFT 24 ; 25 ; @keyword WHOLE_ARRAYS 26 ; 27 ; @keyword REVERSE_Y 28 ; 29 ; @keyword GLAMBOUNDARY 2 30 ; 3 31 ; @uses -
trunk/procs/meshes/mesh_tao.pro
r194 r196 1 1 ;+ 2 ; 3 ; @keyword NO_SHIFT 4 ; 5 ; @keyword WHOLE_ARRAYS 2 6 ; 3 7 ; @uses -
trunk/procs/meshes/mesh_um.pro
r194 r196 1 1 ;+ 2 ; 3 ; @param ISIZE 4 ; 5 ; @param JSIZE 6 ; 7 ; @param TYPE 8 ; 9 ; @keyword NO_SHIFT 10 ; 11 ; @keyword WHOLE_ARRAYS 12 ; 13 ; @keyword REVERSE_Y 2 14 ; 3 15 ; @uses -
trunk/procs/nc_put.pro
r195 r196 5 5 ; fdl.data, fld.units, fld.short_name, fld.long_name, fld.missing_value, fld.direc 6 6 ; with fld.direc= data type (x,xy,xyzt,yt,etc...) 7 ; 8 ; @param FILE_NAME {in}{required}{type=string} 7 9 ; 8 10 ; @keyword NCDF_DB {required}{type=string} -
trunk/procs/saxo_mods/ncdf_meshmicom.pro
r194 r196 1 1 ;+ 2 ; 3 ; @param FILENAME 4 ; 5 ; @keyword GLAMBOUNDARY 6 ; 7 ; @keyword _EXTRA 2 8 ; 3 9 ; @uses -
trunk/procs/saxo_mods/plttg.pro
r194 r196 197 197 ; l''argument et le mot cle sont specifies en meme temps, c''est 198 198 ; la valeur specifiee par le mot cle qui est retenue. 199 ; 200 ; @keyword XT 201 ; 202 ; @keyword YT 203 ; 204 ; @keyword ZT 205 ; 206 ; @keyword TT 207 ; 208 ; @keyword _EXTRA 199 209 ; 200 210 ; @uses -
trunk/procs/saxo_mods/skewness_4d.pro
r194 r196 18 18 ; If set to a non-zero value, computations are done in 19 19 ; double precision arithmetic. 20 ; 21 ; @keyword NVAL 22 ; 23 ; @returns 24 ; -1 in case of error 20 25 ; 21 26 ; @uses -
trunk/procs/saxo_mods/skewness_num.pro
r194 r196 15 15 ; If set to a non-zero value, computations are done in 16 16 ; double precision arithmetic. 17 ; 18 ; @keyword NAN 19 ; 20 ; @returns 21 ; -1 in case of error 17 22 ; 18 23 ; @history -
trunk/procs/tools_wavelets/wave_signif.pro
r191 r196 27 27 ; 28 28 ; If 0 (the default), then just do a regular chi-square test, 29 ; 29 ; i.e. Eqn (18) from Torrence & Compo. 30 30 ; If 1, then do a "time-average" test, i.e. Eqn (23). 31 ; 32 ; 33 ; 34 ; 31 ; In this case, DOF should be set to NA, the number 32 ; of local wavelet spectra that were averaged together. 33 ; For the Global Wavelet Spectrum, this would be NA=N, 34 ; where N is the number of points in your time series. 35 35 ; If 2, then do a "scale-average" test, i.e. Eqns (25)-(28). 36 ; 37 ; 38 ; 39 ; 36 ; In this case, DOF should be set to a 37 ; two-element vector [S1,S2], which gives the scale 38 ; range that was averaged together. 39 ; e.g. if one scale-averaged scales between 2 and 8, 40 40 ; then DOF=[2,8]. 41 41 ; … … 76 76 ; IF SIGTEST=2, then DOF = [S1,S2], the range of scales averaged. 77 77 ; 78 ; 79 ; 80 ; 81 ; 82 ; 83 ; 78 ; Note: IF SIGTEST=1, then DOF can be a vector (same length as SCALEs), 79 ; in which case NA is assumed to vary with SCALE. 80 ; This allows one to average different numbers of times 81 ; together at different scales, or to take into account 82 ; things like the Cone of Influence. 83 ; See discussion following Eqn (23) in Torrence & Compo. 84 84 ; 85 85 ; @keyword GWS {in}{optional} … … 101 101 ; to the SCALEs. 102 102 ; 103 ; @keyword SAVG 104 ; 105 ; @keyword SMID 106 ; 107 ; @keyword CDELTA 108 ; 109 ; @keyword PSI0 103 110 ; 104 111 ; @version … … 107 114 ;- 108 115 FUNCTION wave_signif, y, dt, scale, sigtest $ 109 116 , MOTHER=mother $ 110 117 , PARAM=param $ 111 118 , LAG1=lag1 $ 112 119 , SIGLVL=siglvl $ 113 120 , DOF=dof $ 114 121 , GWS=gws $ 115 122 , CONFIDENCE=confidence $ 116 123 , FFT_THEOR=fft_theor $ 117 124 , PERIOD=period $ 118 , SAVG=savg$125 , SAVG=savg $ 119 126 , SMID=smid $ 120 127 , CDELTA=cdelta $ … … 122 129 ; 123 130 compile_opt idl2, strictarrsubs 124 ; 125 126 127 128 129 130 131 131 ; 132 ON_ERROR,2 133 IF (N_ELEMENTS(y) LT 1) THEN MESSAGE,'Time series Y must be input' 134 IF (N_ELEMENTS(dt) LT 1) THEN MESSAGE,'DT must be input' 135 IF (N_ELEMENTS(scale) LT 1) THEN MESSAGE,'Scales must be input' 136 IF (N_PARAMS() LT 4) THEN sigtest = 0 ; the default 137 IF (N_ELEMENTS(y) EQ 1) THEN variance=y ELSE variance=(MOMENT(y))[1] 138 132 139 ;....check keywords & optional inputs 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 140 IF (N_ELEMENTS(mother) LT 1) THEN mother = 'MORLET' 141 IF (N_ELEMENTS(param) LT 1) THEN param = -1 142 IF (N_ELEMENTS(siglvl) LT 1) THEN siglvl = 0.95 143 IF (N_ELEMENTS(lag1) LT 1) THEN lag1 = 0.0 144 confidence = KEYWORD_SET(confidence) 145 146 lag1 = lag1[0] 147 148 J = N_ELEMENTS(scale) - 1 149 s0 = MIN(scale) 150 dj = ALOG(scale[1]/scale[0])/ALOG(2) 151 152 CASE (STRUPCASE(mother)) OF 153 'MORLET': BEGIN 154 IF (param EQ -1) THEN k0=6d ELSE k0=param 155 fourier_factor = (4*!PI)/(k0 + SQRT(2+k0^2)) ; [Sec.3h] 156 empir = [2.,-1,-1,-1] 157 IF (k0 EQ 6) THEN empir[1:3]=[0.776,2.32,0.60] 158 END 159 'PAUL': BEGIN ;****************** PAUL 160 IF (param EQ -1) THEN m=4d ELSE m=param 161 fourier_factor = 4*!PI/(2*m+1) 162 empir = [2.,-1,-1,-1] 163 IF (m EQ 4) THEN empir[1:3]=[1.132,1.17,1.5] 164 END 165 'DOG': BEGIN ;******************* DOG 166 IF (param EQ -1) THEN m=2 ELSE m=param 167 fourier_factor = 2*!PI*SQRT(2./(2*m+1)) 168 empir = [1.,-1,-1,-1] 169 IF (m EQ 2) THEN empir[1:3] = [3.541,1.43,1.4] 170 IF (m EQ 6) THEN empir[1:3] = [1.966,1.37,0.97] 171 END 172 ENDCASE 173 174 period = scale*fourier_factor 175 dofmin = empir[0] ; Degrees of freedom with no smoothing 176 Cdelta = empir[1] ; reconstruction factor 177 gamma = empir[2] ; time-decorrelation factor 178 dj0 = empir[3] ; scale-decorrelation factor 172 179 173 180 ;....significance levels [Sec.4] 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 181 freq = dt/period ; normalized frequency 182 fft_theor = (1-lag1^2)/(1-2*lag1*COS(freq*2*!PI)+lag1^2) ; [Eqn(16)] 183 fft_theor = variance*fft_theor ; include time-series variance 184 IF (N_ELEMENTS(gws) EQ (J+1)) THEN fft_theor = gws 185 signif = fft_theor 186 187 CASE (sigtest) OF 188 189 0: BEGIN ; no smoothing, DOF=dofmin 190 dof = dofmin 191 signif = fft_theor*CHISQR_CVF(1. - siglvl,dof)/dof ; [Eqn(18)] 192 IF confidence THEN BEGIN 193 sig = (1. - siglvl)/2. 194 chisqr = dof/[CHISQR_CVF(sig,dof),CHISQR_CVF(1.-sig,dof)] 195 signif = fft_theor # chisqr 196 ENDIF 197 END 198 199 1: BEGIN ; time-averaged, DOFs depend upon scale [Sec.5a] 200 IF (N_ELEMENTS(dof) LT 1) THEN dof = dofmin 201 IF (gamma EQ -1) THEN MESSAGE, $ 202 'Gamma (decorrelation factor) not defined for '+mother+ $ 203 ' with param='+STRTRIM(param,2) 204 IF (N_ELEMENTS(dof) EQ 1) THEN dof = FLTARR(J+1) + dof 205 dof = dof > 1 206 dof = dofmin*SQRT( 1 + (dof*dt/gamma/scale)^2 ) ; [Eqn(23)] 207 dof = dof > dofmin ; minimum DOF is dofmin 208 IF (NOT confidence) THEN BEGIN 209 FOR a1=0,J DO BEGIN 210 chisqr = CHISQR_CVF(1. - siglvl,dof[a1])/dof[a1] 211 signif[a1] = fft_theor[a1]*chisqr 212 ENDFOR 213 ENDIF ELSE BEGIN 214 signif = FLTARR(J+1,2) 215 sig = (1. - siglvl)/2. 216 FOR a1=0,J DO BEGIN 217 chisqr = dof[a1]/ $ 218 [CHISQR_CVF(sig,dof[a1]),CHISQR_CVF(1.-sig,dof[a1])] 219 signif[a1,*] = fft_theor[a1]*chisqr 220 ENDFOR 221 ENDELSE 222 END 223 224 2: BEGIN ; scale-averaged, DOFs depend upon scale range [Sec.5b] 225 IF (N_ELEMENTS(dof) NE 2) THEN $ 226 MESSAGE,'DOF must be set to [S1,S2], the range of scale-averages' 227 IF (Cdelta EQ -1) THEN MESSAGE, $ 228 'Cdelta & dj0 not defined for '+mother+ $ 229 ' with param='+STRTRIM(param,2) 230 s1 = dof[0] 231 s2 = dof[1] 232 avg = WHERE((scale GE s1) AND (scale LE s2),navg) 233 IF (navg LT 1) THEN MESSAGE,'No valid scales between ' + $ 234 STRTRIM(s1,2) + ' and ' + STRTRIM(s2,2) 235 s1 = MIN(scale(avg)) 236 s2 = MAX(scale(avg)) 237 Savg = 1./TOTAL(1./scale(avg)) ; [Eqn(25)] 238 Smid = EXP((ALOG(s1)+ALOG(s2))/2.) ; power-of-two midpoint 239 dof = (dofmin*navg*Savg/Smid)*SQRT(1 + (navg*dj/dj0)^2) ; [Eqn(28)] 240 fft_theor = Savg*TOTAL(fft_theor(avg)/scale(avg)) ; [Eqn(27)] 241 chisqr = CHISQR_CVF(1. - siglvl,dof)/dof 242 IF confidence THEN BEGIN 243 sig = (1. - siglvl)/2. 244 chisqr = dof/[CHISQR_CVF(sig,dof),CHISQR_CVF(1.-sig,dof)] 245 ENDIF 246 signif = (dj*dt/Cdelta/Savg)*fft_theor*chisqr ; [Eqn(26)] 247 END 248 249 ENDCASE 250 251 RETURN,signif 245 252 246 253 END -
trunk/procs/tvnplot.pro
r194 r196 1 1 ;+ 2 ; 3 ; @param IMAGE 4 ; 5 ; @keyword MIN 6 ; 7 ; @keyword MAX 8 ; 9 ; @keyword GAMMA 10 ; 11 ; @keyword MSK 12 ; 13 ; @keyword ERASE 14 ; 15 ; @keyword IBASE 16 ; 17 ; @keyword JBASE 18 ; 19 ; @keyword INTERP 20 ; 21 ; @keyword SCALE_X 22 ; 23 ; @keyword SCALE_Y 24 ; 25 ; @keyword PS 2 26 ; 3 27 ; @version … … 12 36 , ERASE=erase $ 13 37 , IBASE=ibase $ 14 , JBAS e=jbase $38 , JBASE=jbase $ 15 39 , INTERP=interp $ 16 40 , SCALE_X=scale_x $ -
trunk/procs/update_data.pro
r195 r196 1 1 ;+ 2 ; 3 ; @keyword TAB 4 ; 5 ; @keyword VNAME 6 ; 7 ; @keyword BOXZOOM 8 ; 9 ; @keyword ZUNITS 10 ; 11 ; @keyword ZINVAR 12 ; 13 ; @keyword SUFFIX 14 ; 15 ; @keyword D_DIREC 16 ; 17 ; @keyword TIME_1 18 ; 19 ; @keyword TIME_2 20 ; 21 ; @keyword NO_MEAN 22 ; 23 ; @keyword _EXTRA 2 24 ; 3 25 ; @uses
Note: See TracChangeset
for help on using the changeset viewer.