Your browser does not have javaScript enabled. Please enable it, or resize your browsers width so you can view the scriptless navigation bar below and the page's content.
NetCDF Files in GrADS: XDFOPEN
Return to the GrADS Overview
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.