NCDIFF
Section: 1Misc. Reference Manual Pages (1)
NAME
ncdiff - netCDF Differencer
SYNTAX
ncdiff [-A] [-C] [-c] [-D
dbg]
[-d
dim,[
min][,[
max]]]
[-F]
[-h] [-l
path]
[-O] [-p
path]
[-R] [-r] [-v
var[,...]]
[-x]
file_1
file_2
file_3
DESCRIPTION
ncdiff
subtracts variables in
file_2
from the corresponding
variables (those with the same name) in
file_1
and stores the
results in
file_3.
Variables in
file_2
are
broadcast
to conform to the
corresponding variable in
file_1
if necessary.
Broadcasting a variable means creating data in non-existing dimensions
from the data in existing dimensions.
For example, a two dimensional variable in
file_2
can be
subtracted from a four, three, or two (but not one or zero)
dimensional variable (of the same name) in
file_1.
This functionality allows the user to compute anomalies from the mean.
Note that variables in
file_1
are
not
broadcast to conform
to the dimensions in
file_2.
Thus,
ncdiff,
the number of dimensions, or
rank,
of any
processed variable in
file_1
must be greater than or equal to the
rank of the same variable in
file_2.
Furthermore, the size of all dimensions common to both
file_1
and
file_2
must be equal.
When computing anomalies from the mean it is often the case that
file_2
was created by applying an averaging operator to a file
with the same dimensions as
file_1,
if not
file_1
itself.
In these cases, creating
file_2
with
ncra
rather than
ncwa
will cause the
ncdiff
operation to fail.
For concreteness say the record dimension in
file_1
is
time.
If
file_2
were created by averaging
file_1
over the
time
dimension with the
ncra
operator rather than with the
ncwa
operator, then
file_2
will have a
time
dimension of size 1 rather than having no
time
dimension at all
In this case the input files to
ncdiff,
file_1
and
file_2,
will have unequally sized
time
dimensions which
causes
ncdiff
to fail.
To prevent this from occuring, use
ncwa
to remove the
time
dimension from
file_2.
An example is given below.
ncdiff
will never difference coordinate variables or variables of
type
NC_CHAR
or
NC_BYTE.
This ensures that coordinates like (e.g., latitude and longitude) are
physically meaningful in the output file,
file_3.
This behavior is hardcoded.
ncdiff
applies special rules to some NCAR CSM fields (e.g.,
ORO).
See
NCAR CSM Conventions
for a complete description.
Finally, we note that
ncflint
(ncflint netCDF File
Interpolator) can be also perform file subtraction (as well as
addition, multiplication and interpolation).
EXAMPLES
Say files
85_0112.nc
and
86_0112.nc
each contain 12 months
of data.
Compute the change in the monthly averages from 1985 to 1986:
-
ncdiff 86_0112.nc 85_0112.nc 86m85_0112.nc
The following examples demonstrate the broadcasting feature of
ncdiff.
Say we wish to compute the monthly anomalies of
T
from the yearly
average of
T
for the year 1985.
First we create the 1985 average from the monthly data, which is stored
with the record dimension
time.
-
ncra 85_0112.nc 85.nc
ncwa -O -a time 85.nc 85.nc
The second command,
ncwa,
gets rid of the
time
dimension
of size 1 that
ncra
left in
85.nc.
Now none of the variables in
85.nc
has a
time
dimension.
A quicker way to accomplish this is to use
ncwa
from the
beginning:
-
ncwa -a time 85_0112.nc 85.nc
We are now ready to use
ncdiff
to compute the anomalies for 1985:
-
ncdiff -v T 85_0112.nc 85.nc t_anm_85_0112.nc
Each of the 12 records in
t_anm_85_0112.nc
now contains the
monthly deviation of
T
from the annual mean of
T
for each
gridpoint.
Say we wish to compute the monthly gridpoint anomalies from the zonal
annual mean.
A
zonal mean
is a quantity that has been averaged over the
longitudinal (or
x)
direction.
First we use
ncwa
to average over longitudinal direction
lon,
creating
xavg_85.nc,
the zonal mean of
85.nc.
Then we use
ncdiff
to subtract the zonal annual means from the
monthly gridpoint data:
-
ncwa -a lon 85.nc xavg_85.nc
ncdiff 85_0112.nc xavg_85.nc tx_anm_85_0112.nc
Assuming
85_0112.nc
has dimensions
time
and
lon,
this example only works if
xavg_85.nc
has no
time
or
lon
dimension.
As a final example, say we have five years of monthly data (i.e., 60
months) stored in
8501_8912.nc
and we wish to create a file
which contains the twelve month seasonal cycle of the average monthly
anomaly from the five-year mean of this data.
The following method is just one permutation of many which will
accomplish the same result.
First use
ncwa
to create the file containing the five-year mean:
-
ncwa -a time 8501_8912.nc 8589.nc
Next use
ncdiff
to create a file containing the difference of
each month's data from the five-year mean:
-
ncdiff 8501_8912.nc 8589.nc t_anm_8501_8912.nc
Now use
ncks
to group the five January anomalies together in one
file, and use
ncra
to create the average anomaly for all five
Januarys.
These commands are embedded in a shell loop so they are repeated for all
twelve months:
-
foreach idx (01 02 03 04 05 06 07 08 09 10 11 12)
ncks -F -d time,,,12 t_anm_8501_8912.nc foo.
ncra foo. t_anm_8589_.nc
end
Note that
ncra
understands the
stride
argument so the two
commands inside the loop may be combined into the single command
-
ncra -F -d time,,,12 t_anm_8501_8912.nc foo.
Finally, use
ncrcat
to concatenate the 12 average monthly anomaly
files into one twelve-record file which contains the entire seasonal
cycle of the monthly anomalies:
-
ncrcat t_anm_8589_??.nc t_anm_8589_0112.nc
AUTHOR
NCO
manual pages written by Charlie Zender and Brian Mays.
REPORTING BUGS
COPYRIGHT
Copyright © 1995-2004 Charlie Zender
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
SEE ALSO
The full documentation for
NCO
is maintained as a Texinfo manual called the
NCO User's Guide.
Because
NCO
is mathematical in nature, the documentation includes TeX-intensive
portions not viewable on character-based displays.
Hence the only complete and authoritative versions of the
NCO User's Guide
are the PDF (recommended), DVI, and Postscript versions at
<
http://nco.sf.net/nco.pdf>, <
http://nco.sf.net/nco.dvi>,
and <
http://nco.sf.net/nco.ps>, respectively.
HTML and XML versions
are available at <
http://nco.sf.net/nco.html> and
<
http://nco.sf.net/nco.xml>, respectively.
If the
info
and
NCO
programs are properly installed at your site, the command
-
info nco
should give you access to the complete manual, except for the
TeX-intensive portions.
HOMEPAGE