Re: poisson grid fill and linmsg interpolation difference for missing value filling

From: Mary Haley <haley_at_nyahnyahspammersnyahnyah>
Date: Wed Aug 14 2013 - 18:08:03 MDT

Hi,

I asked an 'expert' offline about this, and he said in general you don't want to use poisson_grid_fill when you have huge areas that are missing.

I think what you're doing with linmsg should be appropriate.

--Mary

On Aug 11, 2013, at 2:57 AM, dyjbean wrote:

> hi,
> i met a question when using interpolation function for filling in missing value in land surface,
> so made two function for comparsion:
>
> 1. first , poisson_grid_fill
>
> the following figure is from poisson interpolation for air temperature, but it's strange for so many few low value occurrence.
>
> this is my part code for interpolation:
> .............................
> .............................
> ;-----------------------------------------------------------------
> ; Set the poisson_grid_fill variables
> ; Global grid: Fill in over land
> ;-----------------------------------------------------------------
> nscan = 2000 ; usually *much* fewer
> eps = 0.001 ; variable depended
> gtype = True ; Cyclic in longitude [global]
> guess = 0 ; use zonal means
> relc = 0.6 ; standard relaxation coef
> opt = 0
> lsm=addfile("$NCARG_ROOT/lib/ncarg/data/cdf/landsea.nc","r")
> lsm_t2m=landsea_mask(lsm->LSMASK,t2m&lat,t2m&lon)
>
> t2m=mask(t2m,lsm_t2m.eq.0,False)
> ;; poisson interpolation
> poisson_grid_fill( t2m, gtype, guess, nscan, eps, relc, opt)
>
> t2m=mask(t2m,lsm_t2m.eq.0,False)
>
> .....................................
>
>
> <Catch.jpg>
>
>
> if i make a linear interpolation with linmsg function, then will obtain good effect.
>
> 2. linmsg function, the effect is as below:
>
> the part of ncl codes is:
> ..........................
> ..........................
> Origt2m = t2m ;; save origin grid for later plot
>
> lsm=addfile("$NCARG_ROOT/lib/ncarg/data/cdf/landsea.nc","r")
> lsm_t2m=landsea_mask(lsm->LSMASK,t2m&lat,t2m&lon)
>
> t2m=mask(t2m,lsm_t2m.eq.0,False)
>
> ;; linear interpolation
> t2m=linmsg(t2m,-1)
>
> t2m=mask(t2m,lsm_t2m.eq.0,False)
>
> ................................
> ................................
>
>
> <Catch15FF.jpg>
>
> i wonder why so obvious difference appeared between this two methods?
>
> dyjbean
> _______________________________________________
> ncl-talk mailing list
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk

_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Wed Aug 14 18:08:13 2013

This archive was generated by hypermail 2.1.8 : Wed Aug 14 2013 - 18:35:09 MDT