[Thread Prev][Thread Next][Index]

Re: Fwd: [ferret_users] fourth-order polynomial least square



Hi ferreters,

processing satellite data with ferret, I found strange behaviour of the fill_xy - function. Earlier, I had processed data from a region 20W:22E, now the data sets are global. I notice different results from steps using
fill_xy near the 0 meridian compared with the earlier regional analysis.

To track this down the following example shows the problem:

!define a global grid:
define axis/x=10:350:20/unit=degrees_east/modulo xax
define axis/y=-50:50:10/unit=degrees_north yax

!define a variable and blank a stripe near the 0-meridian
let dummy=x[gx=xax]+0*y[gy=yax]
let d1= if i[gx=dummy] gt 3 then dummy else 1/0
let d2= if i[gx=d1] lt 17 then d1 else 1/0

This leaves two stripes undefined. Note that there are 3 cells empty in the east and 2 cells empty in the west.

Now save to a file otherwise results are really strange - but this is not the point here.

save/clobber/file=zw.nc dummy, d1, d2

ncdump shows a modula axis

variables:
        double XAX(XAX) ;
                XAX:units = "DEGREES_EAST" ;
                XAX:point_spacing = "even" ;
                XAX:axis = "X" ;
                XAX:modulo = 360. ;

Start ferret again

use zw.nc

Now fill d2 using fill_xy

shade fill_xy(d2,dummy,1)
shade fill_xy(d2,dummy,2)
shade fill_xy(d2,dummy,3)

The last example gives a wrong figure. Averaging should happen when filling near the 0 meridian, hence the modulo attribute is ignored
by fill_xy

Now define a region
set region/x=-60:100
shade fill_xy(d2,dummy,1)
shade fill_xy(d2,dummy,2)
shade fill_xy(d2,dummy,3)

This gives correct figures - in the last example, shade fill_xy(d2,dummy,3), averaging over right and left
neighbours of cells is carried out correctly.

Now consider the same for the @fnr transormation. Without any region
can region
shade d2[x=@fnr:1]
shade d2[x=@fnr:2]
shade d2[x=@fnr:3]

In the last example two neighbours are found and the average is displayed - should be correct.

But defining the region

set region/x=-60:100

gives a different result

shade d2[x=@fnr:1]

fills all missing cells and averages over both the neighbours. I would not expect this.

So both the filling methods show different behaviour if either a region around the 0-meridian is specified or not.

I would expect the same result as long as all points used for filling are within the region.
This should be achieved in future releases of ferret.

Greetings,
Martin








[Thread Prev][Thread Next][Index]
Contact Us
Dept of Commerce / NOAA / OAR / PMEL / Ferret

Privacy Policy | Disclaimer | Accessibility Statement