Changeset 448 for trunk/SRC/Interpolation/file_interp.pro
- Timestamp:
- 01/26/11 14:44:08 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SRC/Interpolation/file_interp.pro
r443 r448 27 27 , INIRR = inirr, METHOD = method, SMOOTH = smooth $ 28 28 , WEIG = weig, ADDR = addr, MISSING_VALUE = missing_value $ 29 , DIVX = divx, DIVY = divy, OUTMASK = outmask $ 30 , GETHAN = gethan, LETHAN = lethan, _EXTRA = ex 29 , DIVX = divx, DIVY = divy, OUTMASK_IND = outmask_ind $ 30 , GETHAN = gethan, LETHAN = lethan, SET_OUTMSKVAL = set_outmskval $ 31 , _EXTRA = ex 31 32 ; 32 33 compile_opt idl2, strictarrsubs … … 73 74 IF n_elements(gethan) EQ 1 THEN data = gethan > temporary(data) 74 75 IF n_elements(lethan) EQ 1 THEN data = temporary(data) < lethan 75 76 IF outmask_ind[0] NE -1 THEN data[outmask_ind] = set_outmskval 77 76 78 if intype LE 3 THEN data = round(temporary(data)) 77 IF outmask[0] NE -1 THEN data = temporary(data) * outmask78 79 79 80 RETURN, data … … 226 227 ; used (in association with (IN/OUT)USEASMASK) to built the mask (that 227 228 ; does not change from one record to another). 228 ; Note: this value will be apply to all interpolated variables 229 ; Note: this value will be applied to all interpolated variables 230 ; 231 ; @keyword SET_OUTMSKVAL {type=scalar}{default=defined by attribute missing_value or _fillvalue of input file} 232 ; (Re)define the masked (over land) value in output data. 233 ; Note: output mask as to be defined through the keyword maskout and 234 ; its associated keywords... 235 ; Note: do not mismatch with OUTMISSING_VALUE which are missing value 236 ; used (in association with OUTUSEASMASK) to built the mask (that 237 ; does not change from one record to another). 229 238 ; 230 239 ; @keyword ADDR {type=2d array or variable name} … … 303 312 , INXAXISNAME = inxaxisname, INYAXISNAME = inyaxisname $ 304 313 , OUTXAXISNAME = outxaxisname, OUTYAXISNAME = outyaxisname $ 305 , GETHAN = gethan, LETHAN = lethan $314 , GETHAN = gethan, LETHAN = lethan, SET_OUTMSKVAL = set_outmskval $ 306 315 , _EXTRA = ex 307 316 ; … … 431 440 ; 432 441 outvarid = lonarr(ininq.nvars) 442 outmiss = fltarr(ininq.nvars) 433 443 FOR i = 0, ininq.nvars-1 DO BEGIN 434 444 varinq = ncdf_varinq(inid, i) … … 469 479 ; Variables attributes 470 480 IF outvarid[i] NE - 1 THEN BEGIN 481 482 IF varinq.ndims GE 2 THEN BEGIN 483 interp = varinq.dim[0] EQ indimx AND varinq.dim[1] EQ indimy 484 ENDIF ELSE interp = 0b 485 CASE 1 OF 486 strlowcase(varinq.name) EQ strlowcase(inxaxisname):interp = 0b 487 strlowcase(varinq.name) EQ strlowcase(inyaxisname):interp = 0b 488 strlowcase(varinq.name) EQ strlowcase(inmaskname):interp = 0b 489 ENDCASE 490 471 491 FOR j = 0, varinq.natts-1 DO BEGIN 472 492 name = ncdf_attname(inid, i, j) 473 dummy = ncdf_attcopy(inid, i, name, outid, outvarid[i]) 493 CASE 1 OF 494 keyword_set(interp) AND strlowase(name) EQ '_fillvalue':BEGIN 495 ncdf_attget, inid, i, '_fillvalue', tmp & outmiss[i] = tmp 496 END 497 keyword_set(interp) AND strlowase(name) EQ 'missing_value':BEGIN 498 ncdf_attget, inid, i, 'missing_value', tmp & outmiss[i] = tmp 499 END 500 ELSE:dummy = ncdf_attcopy(inid, i, name, outid, outvarid[i]) 501 ENDCASE 474 502 ENDFOR 503 504 IF keyword_set(interp) AND outmask[0] NE -1 THEN BEGIN 505 IF n_elements(set_outmskval) NE 0 THEN outmiss[i] = set_outmskval 506 ncdf_attput, outid, outvarid[i], '_fillvalue', outmiss[i] 507 ncdf_attput, outid, outvarid[i], 'missing_value', outmiss[i] 508 ENDIF 509 475 510 ENDIF 476 511 ENDIF ELSE outvarid[i] = -1 … … 478 513 ; 479 514 ncdf_control, outid, /endef 515 ; 516 IF outmask[0] NE -1 THEN outmask_ind = where(outmask EQ 0) ELSE outmask_ind = -1 480 517 ; 481 518 FOR i = 0, ininq.nvars-1 DO BEGIN … … 514 551 , INIRR = inirr, METHOD = method, SMOOTH = smooth $ 515 552 , WEIG = weig, ADDR = addr, MISSING_VALUE = var_missing_value $ 516 , DIVX = divx, DIVY = divy, OUTMASK = outmask $ 553 , SET_OUTMSKVAL = outmiss[i] $ 554 , DIVX = divx, DIVY = divy, OUTMASK_IND = outmask_ind $ 517 555 , GETHAN = gethan, LETHAN = lethan, _extra = ex) 518 556 IF interp AND n_elements(data) EQ 1 THEN data = replicate(data, jpiout, jpjout) … … 533 571 , INIRR = inirr, METHOD = method, SMOOTH = smooth $ 534 572 , WEIG = weig, ADDR = addr, MISSING_VALUE = var_missing_value $ 535 , DIVX = divx, DIVY = divy, OUTMASK = outmask $ 573 , SET_OUTMSKVAL = outmiss[i] $ 574 , DIVX = divx, DIVY = divy, OUTMASK_IND = outmask_ind $ 536 575 , GETHAN = gethan, LETHAN = lethan, _extra = ex) 537 576 IF interp AND n_elements(data) EQ 1 THEN data = replicate(data, jpiout, jpjout) … … 553 592 , INIRR = inirr, METHOD = method, SMOOTH = smooth $ 554 593 , WEIG = weig, ADDR = addr, MISSING_VALUE = var_missing_value $ 555 , DIVX = divx, DIVY = divy, OUTMASK = outmask $ 594 , SET_OUTMSKVAL = outmiss[i] $ 595 , DIVX = divx, DIVY = divy, OUTMASK_IND = outmask_ind $ 556 596 , GETHAN = gethan, LETHAN = lethan, _extra = ex) 557 597 IF interp AND n_elements(data) EQ 1 THEN data = replicate(data, jpiout, jpjout)
Note: See TracChangeset
for help on using the changeset viewer.