Hi - You found out what you needed, but just so you know, he simplest way to find out about a function in Ferret, is to ask Ferret itself: yes? show function missing (also, the MISSING function is documented in the Users Guide - see "MISSING function" in the index. ) Ansley On 3/10/2011 7:35 AM, Szymon Roziewski wrote: Hi Martin, It looks very nice. I have to try out this but I don't really know what the function missing does. I had a look at manual and searched ferret site but there's no anything about this function. Kind regards, Szymon Roziewski 2011/3/9 Ansley Manke <Ansley.B.Manke@xxxxxxxx>Hi - We had noticed recently that documentation for fill_xy was missing from the manual. Your email here gives a nice example that we can use there. Ansley On 3/9/2011 7:16 AM, Martin Schmidt wrote:Hi, you are right, the documentation did not find its way into the manual. It is easy anyway. The mask needs to be 1 where filling is allowed and zero otherwise. Please try the following yes? use coads_climatology yes? let mask=missing(sst/sst,1) yes? shade/l=1 mask yes? shade/l=1 fill_xy(sst,mask,5) Filling is allowed !Now missings at land yes? let mask=sst/sst yes? shade/l=1 mask yes? shade/l=1 fill_xy(sst,mask,5) Nothing is filled. And now: yes? let mask= if y[gy=sst] gt 0 then missing(sst/sst,1) else sst/sst yes? shade/l=1 fill_xy(sst,mask,5) Now filling happens in the northern hemisphere. Hope this helps, Martin Szymon Roziewski wrote:Dear Martin / Ferreters, I have problem with using fill_xy function. I saw some examples and read sth in the ferret archives but I still stuck. I try to explain my issue. This is reading an ice field and putting into a lndseaf. I also quote the grid definition. DEFINE AXIS/X=-5.666666667:5.25:0.083333333/unit=degree xlon DEFINE AXIS/Y=-2.0:10.0:0.083333333/unit=degree ylat DEFINE GRID/x=xlon/y=ylat grid_xlon_xlat file/skip=1/format=(80f1.0/52f1.0)/columns=132/grid=grid_xlon_xlat/var=lndseaf ICE.DAT Then I interpolate the lndseaf onto a fine grid. DEFINE AXIS/X=-5.666666667:5.25:0.010416667/unit=degree xfine DEFINE AXIS/Y=-2.0:10.0:0.010416667/unit=degree yfine !1/8 DEFINE GRID/x=xfine/y=yfine grid_xfine_yfine let ice_regridded lndseaf[gxy=grid_xfine_yfine] What I did next was make the mask. let mask = ice_regridded/ice_regridded And I used the mask with fill_xy as the following let ice_ext = fill_xy(ice_regridded,mask,5) But It didn't change anything. I tried out using different values of third argument of fill_xy. However, I didn't improve at all. So, I think either I was using fill_xy badly or I misunderstood something. I also tried out FLN function as follows let ext = ice_regridded[x=@FLN:50,y=@FLN:50] But this resulted with no changes to the ice_regridded as well. I attach ICE.DAT to make it more real. Kind regards, Szymon Roziewski 2011/3/9 Martin Schmidt <martin.schmidt@xxxxxxxxxxxxxxxxx <mailto: martin.schmidt@xxxxxxxxxxxxxxxxx>> Dear Szymon, you may use fill_xy(data, mask, 2) before you filter data. This extrapolates the data smoothly into land by two points and the filter @SBX and @SHN can do something reasonable near land too. Applying your land mask later removes remaining extrapolated points. Greetings, Martin Szymon Roziewski wrote: Dear Ferreters, I have an ice field that is a matrix filled by 0 or 1. Because of weak resolution I need it to be interpolated on a finer grid. I tried out two approaches. The first, I interpolated with using @SBX and @SHN functions. Basically, I got neat result except to the boundary where I got a lack of data. Because this functions don't have data to interpolate and ending up with 0 value. As the second I used scat2gridgauss_xy function which gave me smoother result but near the boundary I got the ice that should not to be. I think that this function is do smooth the data sometimes to much. Have any of you had something similar with it? Maybe there are some good ferret functions to interpolate ice field which is 0 or 1. I attach two graphics for better explanation. Kind regards, Szymon Roziewski -- Z wyrazami szacunku, Szymon Roziewski |