[Thread Prev][Thread Next][Index]

Re: [ferret_users] listing with projected data

Hi Ansley and all,

I have tried using samplexy_curv function to convert my data to rectilinear coordinate. I tried to take some idea from  the mail http://ferret.pmel.noaa.gov/Ferret/Mail_Archives/fu_2006/msg00034.html as well But I couldn't figure out the how to apply it with my data.

Once again my data and grid looks like:
The data is in the form:
        lon = 118 ;
        lat = 109 ;
        time = UNLIMITED ; // (12 currently)
        float lon(lon) ;
                lon:long_name = "Longitude" ;
                lon:units = "degrees_east" ;
                lon:actual_range = 52.37275f, 108.0947f ;
        float lat(lat) ;
                lat:long_name = "Latitude" ;
                lat:units = "degrees_north" ;
                lat:actual_range = -2.378861f, 44.79094f ;
        double time(time) ;
                time:long_name = "Time" ;
                time:units = "hours since 1900-1-1 00:00:0.0" ;
                time:actual_range = 535056., 543072. ;
        float TA(time, lat, lon) ;
                TA:long_name = "Anemom Temp" ;
                TA:units = "K" ;
                TA:missing_value = -1.e+30f ;

in ferret:

use SRF.nc
sh d/file
     currently SET data sets:
    1> SRF.nc  (default)
 name     title                             I         J         K         L
 TA       Anemom Temp                      1:118     1:109     ...       1:12

 sh grid ta
 name       axis              # pts   start                end
 LON       LONGITUDE          118mi   52.372E(52.373)      108.09E(108.09)
 LAT       LATITUDE           109 i   2.378S               44.79N
 normal    Z
 TIME      TIME                12 i   15-JAN-1961 00:00    15-DEC-1961 00:00

Can you tell me necessary steps for using samplexy_curv function?

Well, as an alternate, I tried to use scat2grid functions with my data using the hints from the  jaison's curv2regular_demo.jnl. I did:
let curv_lon = x[gx=ta]   + y[gy=ta]*0
let curv_lat = x[gx=ta]*0  + y[gy=ta]
let scat_lon  = xsequence(curv_lon)
let scat_lat  = xsequence(curv_lat)
let x_min   = int(scat_lon[i=@min])
let x_max = int(scat_lon[i=@max])
let y_min   = int(scat_lat[i=@min]) ; let y_max = int(scat_lat[i=@max])
define axis/x=`x_min`:`x_max`:0.48/units=longitudes reg_lon
define axis/y=`y_min`:`y_max`:0.424/units=latitudes  reg_lat
define symbol scale  = 0.5
define symbol cutoff = 2
let reg_ta = scat2gridgauss_xy(scat_lon,scat_lat,ta,x[gx=reg_lon],y[gy=reg_lat],($scale),($scale),($cutoff),($cutoff))
fill/l=10/lev=1D/grat reg_ta

But the resulting plot is no different from the one with "fill/l=10/lev=1D/grat ta"  ie the graticules and potical boundry doesn't match with the plot underneth. However the field are slightly smoothened in the plot and the differnce plot (fill/l=10/lev=1D/grat ta-reg_ta) show difference as high as +/- 12 degree over the foot hill of himalayas

What am i missing here?

Thanking in advance!


Ansley Manke <Ansley.B.Manke@noaa.gov> wrote:
Hi Jagadish,
I think what you want is the SAMPLEXY_CURV function which lets you
specify curvilinear data with its grid, and a set of points. The output
is the variable at those points.


Love cheap thrills? Enjoy PC-to-Phone calls to 30+ countries for just 2/min with Yahoo! Messenger with Voice.
[Thread Prev][Thread Next][Index]

Dept of Commerce / NOAA / OAR / PMEL / TMAP

Contact Us | Privacy Policy | Disclaimer | Accessibility Statement