[Thread Prev][Thread Next][Index]

Re: [ferret_users] listing with projected data

Hi Jagadish,
Your data is not on a curvilinear grid.  A curvilinear grid has the latitudes and longitudes defined as 2-dimensional variables,  lon(i,j) and lat(i,j). 

Your data has lon and lat as 1-dimensional axes, so your data is on a rectilinear grid, and you can regrid it to any other rectilinear grid or plot it as it is.  Your grid is irregularly spaced, but  that poses no difficulties. To put it on a regularly-spaced grid similar to what you outline in your script,

cancel mode long_label
cancel mode latit_label

let x_min = `ta,return=xstrt`
let x_max = `ta,return=xend`
let y_min = `ta,return=ystart`
let y_max = `ta,return=yend`

define axis/x=`x_min`:`x_max`:0.48/units=longitude/modulo reg_lon
define axis/y=`y_min`:`y_max`:0.424/units=latitude  reg_lat

let reg_ta = ta[gx=reg_lon, gy=reg_lat]

jagadish karmacharya wrote:
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