NetCDF Files in GrADS: XDFOPEN
The XDFOPEN command is used to open netCDF files when you are opening several files at once that have different time indices or when there is some problem with the file metadata (i.e., lat, lon, time variables).Multiple Files Open at Once
You may have more than one file open in GrADS at the same time. Files are identified by the order in which they are opened: file 1 is the first file opened, and so on. Files that are opened at the same time should have the same values for coordinate variables. For example, if you try to use data from two files with different time indices, GrADS will give an error message similar to the following:
>d prectmm.1 - prectmm.2
Data Request Warning: Request beyond file limits
Entire grid contents are set to missing data
Dimension ranges are: X = 1 48 Y = 1 40 Z = 1 1 T = 1746275
Warning issued for variable = prectmm.2
Cannot contour grid - all undefined values
To get around such a problem, you can use the xdfopen command to open files with different time indices. For example, consider these two files: ha.F1.6k.mone486605.nc and ha.F1.6kFix.mone461470.nc.
When you open up ha.F1.6k.mone486605.nc in GrADS, you can see
that the GrADS time index begins at 00Z11FEB479 (use the q
time command), whereas the time index of ha.F1.6kFix.mone461470.nc
begins at 00Z22JUN454.
If you try to use functions (e.g., oromask, aave) on variables from both files, GrADS will give you an error message as shown above because the time indices of the two files are different. We need to make GrADS believe the time indices in the two files are the same by creating XDF files to "dummy" the time variables for the two files. We will use the time index from ha.F1.6k.mone486605.nc to create a XDF file for ha.F1.6kFix.mone461470.nc. This will give the two files the same time indices and will allow you to work with both files at the same time.
Here are the contents of two sample XDF files. The text in purple is the text you would find in the xdf text file!
XDF File for ha.F1.6kFix.mone461470.nc ("xdf6kfix")
*DSET path to data
DSET /grove3/iesuw/foam/ha.F1.6kFix.mone461470.nc
* TDEF T_Dimension_Name T_Count LINEAR First_T_Value T_Step
TDEF time 12 LINEAR 00Z11FEB479 30DY
XDF File for ha.F1.6k.mone486605.nc ("xdf6k")
*DSET path to data
DSET /grove3/iesuw/foam/ha.F1.6k.mone486605.nc
* TDEF T_Dimension_Name T_Count LINEAR First_T_Value T_Step
TDEF time 12 LINEAR 00Z11FEB479 30DY
How do you use the xdf files? Say the first is named "xdf6kfix" and the second is "xdf6k". In your script, in lieu of using sdfopen /path/filename, simply use
xdfopen xdf6kfix
xdfopen xdf6k
Here is another example of a ncdump output of a netcdf file and its accompanying xdfopen file.
File Metadata
GrADS is very picky about the netCDF coordinate variables (such as
time, latitude, longitude, level). All coordinate variables must be
COARDS-compliant.
If you open the data set and get a message like
Data has no discernable x-coordinate
there is a problem with the file metadata. You may be able to fix the
metadata using NCO or some
other netCDF utility, or you may be able to read the offending file
using the xdfopen
commmand.
For example, in some of the CSM files (e.g., csmatm.6k.seae00100049.nc), ilev is the first vertical coordinate given, whereas lev is the correct vertical coordinate. GrADS uses the first coordinate variable that is defined vertically as the vertical coordinate. To make GrADS use lev instead of ilev, you need to create a xdf file for the offending netCDF file.
Example:
DSET /grove3/iesuw/csm/csmatm.6k.seae00100049.nc
ZDEF lev
That's it! That's all you need to put in the xdf file. DSET tells GrADS where the file is, and the ZDEF defines the vertical coordinate as the variable lev in the file.
Menu
About
Research
- Present Climate
- Future Climate
- Past Climate
- Ecosystems Climate
- Civilizations Climate
- Laboratories
- International Projects

