[Thread Prev][Thread Next][Index]
Re: Spatial 2points averaging
Thanks a lot for your fast and nice answer!
El lun, 05-07-2004 a las 19:55, Mick Spillane escribió:
> On Mon, 5 Jul 2004, Enrique Sanchez wrote:
> > I have a field in a XY plane, of let's say 80x72 points. But I want to
> > average it to a 40x36 domain, just averaging every 2 points in both
> > dimensions. How can I do this?
>
> Hi Enrique,
> Try defining a new grid of points centered in the 2x2 blocks of
> the original grid. Then regrid the old data to the new grid. Here is an
> example for an original 8x6 region that we want to reduce to 4x3.
> Good luck,
> Mick
> !-----------------------------------------------------------------
> def axis/x=1:8:1 xax ; def axis/y=1:6:1 yax
> def grid/x=xax/y=yax grd ! the original grid ...
> let v=int(10*randu(x[g=grd]+y[g=grd]))
> list v
> VARIABLE : INT(10*RANDU(X[G=GRD]+Y[G=GRD]))
> SUBSET : 8 by 6 points (X-Y)
> 1 2 3 4 5 6 7 8
> 1 2 3 4 5 6 7 8
> 1 / 1: 9.000 5.000 0.000 1.000 7.000 1.000 8.000 4.000
> 2 / 2: 4.000 8.000 3.000 9.000 9.000 5.000 7.000 9.000
> 3 / 3: 4.000 0.000 0.000 6.000 7.000 7.000 8.000 1.000
> 4 / 4: 1.000 3.000 8.000 4.000 1.000 2.000 7.000 1.000
> 5 / 5: 5.000 6.000 1.000 7.000 5.000 8.000 9.000 3.000
> 6 / 6: 6.000 3.000 5.000 0.000 8.000 5.000 1.000 7.000
>
> def axis/x=1.5:7.5:2 xax2 ; def axis/y=1.5:5.5:2 yax2
> def grid/x=xax2/y=yax2 grd2 ! the new grid, centered in each 2x2 group
> let v2=v[g=grd2] ! regrid data to the new grid
> list v2
> VARIABLE : V[G=GRD2]
> SUBSET : 4 by 3 points (X-Y)
> 1.5 3.5 5.5 7.5
> 1 2 3 4
> 1.5 / 1: 6.500 3.250 5.500 7.000
> 3.5 / 2: 2.000 4.500 4.250 4.250
> 5.5 / 3: 5.000 3.250 6.500 5.000
>
> ! it seems to work ...
> ! (9+5+4+8)/4=6.5 ; (0+1+3+9)/4=3.25 ; (7+1+9+5)/4=5.5 ; (8+4+7+9)/4=7
> ! (4+0+1+3)/4=2.0 ; ... ; ... ; (8+1+7+1)/4=4.25
> ! (5+6+6+3)/4=5.0 ; ... ; ... ; (9+3+1+7)/4=5
[Thread Prev][Thread Next][Index]
Dept of Commerce /
NOAA /
OAR /
PMEL /
TMAP
Contact Us | Privacy Policy | Disclaimer | Accessibility Statement