[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

20020816: help needed! (cont.)



>From: Sangeet <address@hidden>
>Organization: IIT
>Keywords: 200208140551.g7E5p0K21485 netCDF ferret

Sangeet,

>I am using 
>
>1) netcdf 3.5.0
>2) Sun solaris 2.7 (Sun Ultra 10) and solaris 2.8 (Sun blade 100)
>3) The data file is pres.sfc.1988.nc which has been downloaded from 
>   ftp.cdc.noaa.gov
>   cd Datasets/ncep.reanalysis/pressure
>   get pres.sfc.1988.nc

OK, this should help in the troubleshooting.

>   The data file is of the size of approx. 30 mb thats why the file can
>not be sent through email. I hope this wont be a great problem to you to
>get the file from the above mentioned source.

I grabbed the file you are looking at as follows:

ftp ftp.cdc.noaa.gov
  <user> anonymous
  <pass> full_email_address
  cd Datasets/ncep.reanalysis/surface
  binary
  get pres.sfc.1988.nc
   quit

I then used ncdump to look at the variables in the file:

% ncdump -h pres.sfc.1988.nc
netcdf pres.sfc.1988 {
dimensions:
        lon = 144 ;
        lat = 73 ;
        time = UNLIMITED ; // (1464 currently)
variables:
        float lat(lat) ;
                lat:units = "degrees_north" ;
                lat:actual_range = 90.f, -90.f ;
                lat:long_name = "Latitude" ;
        float lon(lon) ;
                lon:units = "degrees_east" ;
                lon:long_name = "Longitude" ;
                lon:actual_range = 0.f, 357.5f ;
        double time(time) ;
                time:units = "hours since 1-1-1 00:00:0.0" ;
                time:long_name = "Time" ;
                time:actual_range = 17417712., 17426490. ;
                time:delta_t = "0000-00-00 06:00:00" ;
        short pres(time, lat, lon) ;
                pres:long_name = "4xDaily Pressure" ;
                pres:valid_range = 40000.f, 115000.f ;
                pres:actual_range = 49430.f, 109410.f ;
                pres:units = "Pascals" ;
                pres:add_offset = 367650.f ;
                pres:scale_factor = 10.f ;
                pres:missing_value = 32766s ;
                pres:precision = -1s ;
                pres:least_significant_digit = -1s ;
                pres:GRIB_id = 1s ;
                pres:GRIB_name = "PRES" ;
                pres:var_desc = "Pressure\n",
    "CC" ;
                pres:dataset = "NMC Reanalysis\n",
    "L" ;
                pres:level_desc = "Surface\n",
    "0" ;
                pres:statistic = "Individual Obs\n",
    "I" ;
                pres:parent_stat = "Other\n",
    "-" ;

// global attributes:
                :title = "4x daily NMC reanalysis" ;
                :base_date = 1988s, 1s, 1s ;
                :history = "/home/hoop/crdc/cpreanjuke2farm/cpreanjuke2farm Thu 
Oct 26 20:16:44 1995 from pres.sfc.88.nc\n",
    "created 95/03/13 by Hoop (netCDF2.3)" ;
                :description = "Data is from NMC initialized reanalysis\n",
    "(4x/day).  It consists of most variables interpolated to\n",
    "pressure surfaces from model (sigma) surfaces." ;
                :platform = "Model" ;
                :Conventions = "COARDS" ;
}

The key pieces of information in this list are the additive offset and
scale factor you need to apply to pressure values in the file to get
real pressures:

                pres:add_offset = 367650.f ;
                pres:scale_factor = 10.f ;

After you apply these to the data values you are seeing with ncdump,
you will get the values you were seeing in Ferret:

Ferret    ncdump   ncdump with scale and offset
---------+--------+----------------------------
103860    -26379   103860

Ferret_value = add_offset + (scale * ncdump_value)

So, your job is to write a program/script that does this calculation on
every point that you want the value for.

>with warm regards,

Best of luck in your research.

Tom

>From address@hidden Sat Aug 17 01:54:13 2002

Dear Tom, 

its so nice of you to helping me out from the doldrum. I appreciate your
timely help a lot. 

With warm regards,

sangeet