[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