NCDIFF(1)
NAME
ncdiff - netCDF Differencer
SYNTAX
ncdiff [-3] [-4] [-6] [-A] [-C] [-c] [-D dbg] [-d dim,[ min][,[ max]]] [-F] [-h] [-L dfl_lvl] [-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
Report bugs to <http://sf.net/bugs/?group_id=3331>.
COPYRIGHT
Copyright (C) 1995-2010 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 characterbased 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 TeXintensive portions.
HOMEPAGE
- The NCO homepage at <http://nco.sf.net> contains more information.