Next: , Previous: ncra netCDF Record Averager, Up: Operator Reference Manual


4.10 ncrcat netCDF Record Concatenator

SYNTAX

     ncrcat [-3] [-4] [-6] [-A] [-C] [-c]
     [--cnk_dmn nm,sz] [--cnk_map map] [--cnk_plc plc] [--cnk_scl sz]
     [-D dbg] [-d dim,[min][,[max][,[stride]]] [-F] [-h] [-L dfl_lvl] [-l path]
     [-n loop] [-O] [-o output-file] [-p path] [-R] [-r]
     [-t thr_nbr] [-v var[,...]] [-X ...] [-x]
     [input-files] [output-file]

DESCRIPTION

ncrcat concatenates record variables across an arbitrary number of input-files. The final record dimension is by default the sum of the lengths of the record dimensions in the input files. See Averaging vs. Concatenating, for a description of the distinctions between the various averagers and concatenators. As a multi-file operator, ncrcat will read the list of input-files from stdin if they are not specified as positional arguments on the command line (see Large Numbers of Files).

Input files may vary in size, but each must have a record dimension. The record coordinate, if any, should be monotonic (or else non-fatal warnings may be generated). Hyperslabs along the record dimension that span more than one file are handled correctly. ncra supports the stride argument to the ‘-d’ hyperslab option for the record dimension only, stride is not supported for non-record dimensions.

Concatenating a variable packed with different scales multiple datasets is beyond the capabilities of ncrcat (and ncecat, the other concatenator (Concatenation). ncrcat does not unpack data, it simply copies the data from the input-files, and the metadata from the first input-file, to the output-file. This means that data compressed with a packing convention must use the identical packing parameters (e.g., scale_factor and add_offset) for a given variable across all input files. Otherwise the concatenated dataset will not unpack correctly. The workaround for cases where the packing parameters differ across input-files requires three steps: First, unpack the data using ncpdq. Second, concatenate the unpacked data using ncrcat, Third, re-pack the result with ncpdq.

ncrcat applies special rules to ARM convention time fields (e.g., time_offset). See ARM Conventions for a complete description.

EXAMPLES

Concatenate files 85.nc, 86.nc, ... 89.nc along the record dimension, and store the results in 8589.nc:

     ncrcat 85.nc 86.nc 87.nc 88.nc 89.nc 8589.nc
     ncrcat 8[56789].nc 8589.nc
     ncrcat -n 5,2,1 85.nc 8589.nc

These three methods produce identical answers. See Specifying Input Files, for an explanation of the distinctions between these methods.

Assume the files 85.nc, 86.nc, ... 89.nc each contain a record coordinate time of length 12 defined such that the third record in 86.nc contains data from March 1986, etc. NCO knows how to hyperslab the record dimension across files. Thus, to concatenate data from December, 1985–February, 1986:

     ncrcat -d time,11,13 85.nc 86.nc 87.nc 8512_8602.nc
     ncrcat -F -d time,12,14 85.nc 86.nc 87.nc 8512_8602.nc

The file 87.nc is superfluous, but does not cause an error. When ncra and ncrcat encounter a file which does contain any records that meet the specified hyperslab criteria, they disregard the file and proceed to the next file without failing. The ‘-F’ turns on the Fortran (1-based) indexing convention. The following uses the stride option to concatenate all the March temperature data from multiple input files into a single output file

     ncrcat -F -d time,3,,12 -v temperature 85.nc 86.nc 87.nc 858687_03.nc

See Stride, for a description of the stride argument.

Assume the time coordinate is incrementally numbered such that January, 1985 = 1 and December, 1989 = 60. Assuming ?? only expands to the five desired files, the following concatenates June, 1985–June, 1989:

     ncrcat -d time,6.,54. ??.nc 8506_8906.nc