Changeset 383
- Timestamp:
- 10/30/08 14:55:33 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SRC/Interpolation/file_interp.pro
r371 r383 15 15 ; 16 16 ; take care of NaN values 17 nanmsk = finite(data) 18 IF total(nanmsk) NE n_elements(nanmsk) THEN BEGIN 19 data[where(nanmsk EQ 0b)] = 1.e20 ; put large value to be sure they are removed during the interpolation 20 mask = inmask * temporary(nanmsk) 17 nanmask = finite(data) 18 totnanmask = total(nanmask) 19 IF totnanmask EQ 0 THEN return, !values.f_nan 20 IF totnanmask NE n_elements(nanmask) THEN BEGIN 21 data[where(nanmask EQ 0b)] = 1.e20 ; put large value to be sure they are removed during the interpolation 22 IF inmask[0] NE -1 THEN mask = temporary(nanmask) * inmask ELSE mask = temporary(nanmask) 21 23 ENDIF ELSE mask = inmask 22 ; 24 ; take care of missing values 23 25 tpmiss = size(missing_value, /type) 24 26 IF tpmiss NE 0 AND tpmiss NE 7 THEN BEGIN 25 27 CASE 1 OF 26 missing_value GT 1.e6:m ask = temporary(mask) * (data LT (missing_value-10.))27 missing_value LT -1.e6:m ask = temporary(mask) * (data GT (missing_value+10.))28 abs(missing_value) LT 1.e-6:m ask = temporary(mask) * (abs(data) GT 1.e-6)29 ELSE:m ask = temporary(mask) * (data NE missing_value)28 missing_value GT 1.e6:missmask = data LT (missing_value - 10.) 29 missing_value LT -1.e6:missmask = data GT (missing_value + 10.) 30 abs(missing_value) LT 1.e-6:missmask = abs(data) GT 1.e-6 31 ELSE:missmask = data NE missing_value 30 32 ENDCASE 33 IF total(missmask) EQ 0 THEN return, missing_value 34 IF mask[0] NE -1 THEN mask = temporary(missmask) * mask ELSE mask = temporary(missmask) 31 35 ENDIF 32 36 ; extrapolation 33 34 37 IF keyword_set(smooth) THEN data = extrapsmooth(temporary(data), mask, /x_periodic, _extra = ex) $ 38 ELSE data = extrapolate(temporary(data), mask, /x_periodic, _extra = ex) 35 39 ; interpolation 36 40 IF NOT keyword_set(inirr) THEN BEGIN … … 436 440 , INIRR = inirr, METHOD = method, SMOOTH = smooth $ 437 441 , WEIG = weig, ADDR = addr, MISSING_VALUE = var_missing_value, _extra = ex) 442 IF interp AND n_elements(data) EQ 1 THEN data = replicate(data, jpiout, jpjout) 438 443 ncdf_varput, outid, outvarid[i], temporary(data) 439 444 END … … 451 456 , INIRR = inirr, METHOD = method, SMOOTH = smooth $ 452 457 , WEIG = weig, ADDR = addr, MISSING_VALUE = var_missing_value, _extra = ex) 458 IF interp AND n_elements(data) EQ 1 THEN data = replicate(data, jpiout, jpjout) 453 459 ncdf_varput, outid, outvarid[i], temporary(data), offset = off, count = outcnt 454 460 ENDFOR … … 467 473 , INIRR = inirr, METHOD = method, SMOOTH = smooth $ 468 474 , WEIG = weig, ADDR = addr, MISSING_VALUE = var_missing_value, _extra = ex) 475 IF interp AND n_elements(data) EQ 1 THEN data = replicate(data, jpiout, jpjout) 469 476 ncdf_varput, outid, outvarid[i], temporary(data), offset = off, count = outcnt 470 477 ENDFOR
Note: See TracChangeset
for help on using the changeset viewer.