# ncwa - Man Page

netCDF Weighted Averager

## Syntax

ncwa [-3] [-4] [-5] [-6] [-7] [-A] [-a *dim*[,...]] [-B *mask_cond]* [-b] [--bfr *sz_byt*]*[-C]*[-c] [--cmp *cmp_sng*] [--cnk_byt *sz_byt*]*[--cnk_csh sz_byt*]*[--cnk_dmn nm,sz_lmn*] [--cnk_map *map*] [--cnk_min *sz_byt*] [--cnk_plc *plc*] [--cnk_scl *sz_lmn*]*[-D dbg_lvl*] [-d *dim*,[ *min*][,[ *max*]]] [--dbl|flt] [-F] [--fl_fmt=fmt] [-G *gpe_dsc*] [-g *grp*[,...]] [--glb *att_name= att_val*]] [-H] [-h] [--hdf] [--hdr_pad *sz_byt*]*[--hpss_try]* [-I] [-L *dfl_lvl*]*[-l path*] [-M *val*] [-m *mask*] [-N] [--no_cll_msr] [--no_cll_mth] [--no_frm_trm] [--no_tmp_fl] [-O] [-o *output-file*] [-p *path*] [--qnt *var1*[, *var2*[,...]]= *prc*]] [--qnt_alg *alg_nm]* [-R] [-r] [--ram_all] [-T *mask_comp*] [-t *thr_nbr*] [--uio] [--unn] [-v *var*[,...]] [-w *weight*] [-x] [-y *op_typ*] *input-file output-file*

## Description

**ncwa** averages variables in a single file over arbitrary dimensions, with options to specify weights, masks, and normalization. The default behavior of **ncwa** is to arithmetically average every numerical variable over all dimensions and produce a scalar result. To average variables over only a subset of their dimensions, specify these dimensions in a comma-separated list following **-a**, e.g., **-a time,lat,lon**. As with all arithmetic operators, the operation may be restricted to an arbitrary hypserslab by employing the **-d** option **ncwa** also handles values matching the variable's **_FillValue** attribute correctly. Moreover, **ncwa** understands how to manipulate user-specified weights, masks, and normalization options. With these options, **ncwa** can compute sophisticated averages (and integrals) from the command line.

*mask* and *weight*, if specified, are broadcast to conform to the variables being averaged. The rank of variables is reduced by the number of dimensions which they are averaged over. Thus arrays which are one dimensional in the *input-file* and are averaged by **ncwa** appear in the *output-file* as scalars. This allows the user to infer which dimensions may have been averaged. Note that that it is impossible for **ncwa** to make make a *weight* or *mask* of rank *W* conform to a *var* of rank *V* if *W > V*. This situation often arises when coordinate variables (which, by definition, are one dimensional) are weighted and averaged. **ncwa** assumes you know this is impossible and so **ncwa** does not attempt to broadcast *weight* or *mask* to conform to *var* in this case, nor does **ncwa** print a warning message telling you this, because it is so common. Specifying *dbg > 2* does cause **ncwa** to emit warnings in these situations, however.

Non-coordinate variables are always masked and weighted if specified. Coordinate variables, however, may be treated specially. By default, an averaged coordinate variable, e.g., **latitude**, appears in *output-file* averaged the same way as any other variable containing an averaged dimension. In other words, by default **ncwa** weights and masks coordinate variables like all other variables. This design decision was intended to be helpful but for some applications it may be preferable not to weight or mask coordinate variables just like all other variables. Consider the following arguments to **ncwa**: “-a latitude -w lat_wgt -d latitude,0.,90.” where **lat_wgt** is a weight in the **latitude** dimension. Since, by default **ncwa** weights coordinate variables, the value of **latitude** in the *output-file* depends on the weights in *lat_wgt* and is not likely to be 45.---the midpoint latitude of the hyperslab. Option **-I** overrides this default behavior and causes **ncwa** not to weight or mask coordinate variables. In the above case, this causes the value of **latitude** in the *output-file* to be 45.---which is a somewhat appealing result. Thus, **-I** specifies simple arithmetic averages for the coordinate variables. In the case of latitude, **-I** specifies that you prefer to archive the central latitude of the hyperslab over which variables were averaged rather than the area weighted centroid of the hyperslab. Note that the default behavior of ( **-I**) changed on 1998/12/01---before this date the default was not to weight or mask coordinate variables. The mathematical definition of operations involving rank reduction is given above.

## Author

**NCO** manual pages written by Charlie Zender and originally formatted by Brian Mays.

## Reporting Bugs

Report bugs to <http://sf.net/bugs/?group_id=3331>.

## Copyright

Copyright © 1995-present 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 Users 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 Users 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.

ncap2(1), ncatted(1), ncbo(1), ncclimo(1), nces(1), ncecat(1), ncflint(1), ncz2psx(1), ncks(1), nco(1), ncpdq(1), ncra(1), ncrcat(1), ncremap(1), ncrename(1), **ncwa**(1)

## Homepage

The **NCO** homepage at <http://nco.sf.net> contains more information.

## Referenced By

ncap2(1), ncatted(1), ncchecker(1), ncclimo(1), ncecat(1), nces(1), ncflint(1), ncks(1), nco(1), ncpdq(1), ncra(1), ncrcat(1), ncremap(1), ncrename(1), ncz2psx(1).