[RegCNET] Re: Clarification about 'postproc.in'

Moetasim mashfaq at purdue.edu
Tue Feb 28 19:43:40 CET 2006


...Then It's something related to COARDS conventions that Postproc might not be 
following..which is one of the basic reason when we need descriptor-file for 
netcdf files in Grads.  
Anyway, its good to know some of the issues about Postproc. Hope we will have an 
improved postproc in near future.

Moet 

Quoting Sara Rauscher <srausche at ictp.it>:

> Hi,
> 
> Regarding reading netcdf files produced by postproc in Grads --
> ("unfortunately, the Netcdf files, which you get from postproc, are not
> readable in Grads") -- I have never had problems reading netCDF files
> created with postproc with Grads. Svetlana's problem with the "no
> discernable X coordinate" may be specific to her files -- Svetlana,
> would you send me the netCDF file and/or additional information? Maybe I
> can help.
> 
> Grads should read these netCDF files in, but the problem is that they
> don't contain the correct lat/lon information. You can create a data
> descriptor file that will supply the correct lat/lon information for
> your netcdf file to Grads.
> 
> For example, I created the following file using postproc: ATM200208AVG.nc
> 
> If I use the ncdump utility (ncdump -h ATM200208AVG.nc) I can view the
> file information:
> 
> netcdf ATM200208AVG {
> dimensions:
>         lon = 49 ;
>         lat = 32 ;
>         level = 18 ;
>         time = UNLIMITED ; // (1 currently)
> variables:
>         float lon(lon) ;
>                 lon:long_name = "Longitude" ;
>                 lon:units = "degrees_east" ;
>                 lon:actual_range = -4.888423f, 32.60124f ;
>         float lat(lat) ;
>                 lat:long_name = "Latitude" ;
>                 lat:units = "degrees_north" ;
>                 lat:actual_range = 37.03973f, 54.29553f ;
>         float level(level) ;
>                 level:long_name = "Height_Index" ;
>                 level:units = "level" ;
>                 level:actual_range = 1050.f, 0.f ;
>         double time(time) ;
>                 time:long_name = "Time" ;
>                 time:units = "hours since 1900-1-1 00:00:0.0" ;
>                 time:actual_range = 899544., 899544. ;
>         float U(time, level, lat, lon) ;
>                 U:long_name = "Zonal Wind" ;
>                 U:units = "m/s" ;
>                 U:missing_value = -1.e+30f ;
>         float V(time, level, lat, lon) ;
>                 V:long_name = "Meridional Wind" ;
>                 V:units = "m/s" ;
>                 V:missing_value = -1.e+30f ;
>         float TK(time, level, lat, lon) ;
>                 TK:long_name = "Temperature" ;
>                 TK:units = "K" ;
>                 TK:missing_value = -1.e+30f ;
>         float QD(time, level, lat, lon) ;
>                 QD:long_name = "Mixing Ratio" ;
>                 QD:units = "kg/kg" ;
>                 QD:missing_value = -1.e+30f ;
>         float QC(time, level, lat, lon) ;
>                 QC:long_name = "Cloud Mixing Ratio" ;
>                 QC:units = "kg/kg" ;
>                 QC:missing_value = -1.e+30f ;
>         float MSE(time, level, lat, lon) ;
>                 MSE:long_name = "Moist Static Energy" ;
>                 MSE:units = "m2/s2" ;
>                 MSE:missing_value = -1.e+30f ;
>         float RH(time, level, lat, lon) ;
>                 RH:long_name = "Relative Humidity" ;
>                 RH:units = "fraction" ;
>                 RH:missing_value = -1.e+30f ;
>         float HGT(time, level, lat, lon) ;
>                 HGT:long_name = "Geopotential Height" ;
>                 HGT:units = "m" ;
>                 HGT:missing_value = -1.e+30f ;
>         float PS(time, lat, lon) ;
>                 PS:long_name = "Surface Pressure" ;
>                 PS:units = "hPa" ;
>                 PS:missing_value = -1.e+30f ;
>         float RT(time, lat, lon) ;
>                 RT:long_name = "Total Precip" ;
>                 RT:units = "mm/day" ;
>                 RT:missing_value = -1.e+30f ;
>         float TGRND(time, lat, lon) ;
>                 TGRND:long_name = "Ground Temperature" ;
>                 TGRND:units = "K" ;
>                 TGRND:missing_value = -1.e+30f ;
>         float SMT(time, lat, lon) ;
>                 SMT:long_name = "Total Soil Water" ;
>                 SMT:units = "mm" ;
>                 SMT:missing_value = -1.e+30f ;
>         float RB(time, lat, lon) ;
>                 RB:long_name = "Base Flow" ;
>                 RB:units = "mm/day" ;
>                 RB:missing_value = -1.e+30f ;
> 
> // global attributes:
>                 :domxmin = -4.888423f ;
>                 :domxmax = 32.60124f ;
>                 :domymin = 37.03973f ;
>                 :domymax = 54.29553f ;
>                 :domzmin = 1050.f ;
>                 :domzmax = 0.f ;
> 
> With information about the model grid (from OUT_HEAD.CTL), I can take
> this information and make a data descriptor file that I can give any
> name I like (say, atmavg). Once I write the descriptor file, I can open
> the file in grads using "open atmavg", as indicated below:
> 
> DSET ^ATM200208AVG.nc
> dtype netcdf
> undef -1.e+30
> pdef   49   32 lcc   45.39   13.48   24.50   16.00   30.00   60.00   13.48 
> 60000.  60000.
> xdef  175 linear   -9.61  0.2703
> ydef   78 linear   34.70  0.2703
> zdef 18 levels 74.08  122.24 175.22 237.83 310.08 387.14 464.20 541.26 618.32
> 695.38 767.62 830.23 883.21 926.56 960.27 984.35 998.80 1008.43
> 1008.43
> tdef  1 linear  0z01aug2002  30dy
> vars 13
> U=>u          18  t,z,y,x westerly wind 
> V=>v          18  t,z,y,x southerly wind 
> TK=>tk        18  t,z,y,x air temperature 
> QD=>qd        18  t,z,y,x air specific humidity
> QC=>qc        18  t,z,y,x cloud water mixing ratio
> MSE=>mse      18  t,z,y,x moist static energy
> RH=>rh        18  t,z,y,x relative humidity
> HGT=>hgt      18  t,z,y,x geopotential height
> PSA=>psa      0   t,y,x   surface pressure 
> RT=>rt        0   t,y,x   total precipitation
> TGRND=>tgrnd  0   t,y,x   groud temperature in BATS
> SMT=>smt      0   t,y,x   total soil water in mm H2O
> RB=>rb        0   t,y,x   accumulated infiltration
> endvars
> 
> 
> Note that descriptor files (for netcdf!)  work with Grads version 1.9
> and above ONLY - you can see the documentation at
> http://grads.iges.org/grads/gadoc/descriptorfile.html.
> 
> I hope this is helpful, please let me know if you encounter problems or
> it doesn't work.
> 
> cheers,
> sara
> 
> 
> Moetasim wrote:
> 
> >Hi,
> >As far as I know...unfortunately, the Netcdf files, which you get from 
> >postproc, are not readable in Grads. You have two options:
> >1) Use ferret/NCL instead of Grads
> >2) Write CTL file for files which you get after postprocessing in Grads
> format.
> >Writing CTL file should not be very tricky. YOu can use ncdump to check the
> 
> >contents/list of variables of Netcdf postproc files..The sequence of
> variables 
> >in Grads formatted files will be same. You should use any ATM???.CTL file as
> 
> >template for ATM postproc file and similarly RAD and SRF CTL files as
> template 
> >for writing CTL files for your postprocessed Grads formatted files. Remember
> 
> >that you just need to change variable info and time info in CTL files...Rest
> 
> >should almost remain same...
> >Try writing one.. If you are successful then do post your CTL files at 
> >RegCNET. 
> >And if you are not successful then................. you can ask again..or
> may 
> >be someone else have already tried for such CTL files so he can post for
> you...
> >I hope you will give a try to any of the options I have mentioned above.
> >
> >
> >Quoting ?????? <dolgikh at meteo.kz>:
> >
> >  
> >
> >>Dear Moet.
> >>
> >>Thanks a lot for clarification about cru.param.
> >>
> >>But we face one more problem and can not go further.
> >>
> >>We have a problem with opening NetCDF files (ATM199703AVG.nc, etc) in
> GRads.
> >>
> >>The error is:
> >>ga-> sdfopen ATM199703AVG.nc
> >>Scanning self-describing file: ATM199703AVG.nc
> >>SDF file has no discernable X coordinate.
> >>
> >>But when we try to open PRE199703.nc everything is ok.
> >>May be it is possible to change parameters in postproc.in to get
> coordinates
> >>
> >>for output .nc file?
> >>Is there description of postproc.in file anywhere?
> >>it is possible to get output files in GRADS format (.dat), but we can't 
> >>recieve .ctl file with .dat file.
> >>
> >>I would be very grateful if you agree to help us again.
> >>Thank you in advance
> >>Best regards
> >>Svetlana
> >>
> >>
> >>    
> >>
> >
> >_______________________________________________
> >RegCNET mailing list
> >RegCNET at lists.ictp.it
> >https://lists.ictp.it/mailman/listinfo/regcnet
> >  
> >
> 
> -- 
> 
> Sara A. Rauscher
> Physics of Weather and Climate Section 
> The Abdus Salam International Centre for Theoretical Physics
> Strada Costiera 11 
> 34014 Trieste ITALY
> ph: +39 040 2240 225 (please note change) fax: +39 040 2240 449
> email: srausche at ictp.it
> 
> 
> 



More information about the RegCNET mailing list