Next: , Previous: CF Conventions, Up: Common features


3.31 ARM Conventions

Availability: ncrcat
Short options: None
ncrcat has been programmed to correctly handle data files which utilize the Atmospheric Radiation Measurement (ARM) Program convention for time and time offsets. If you do not work with ARM data then you may skip this section. ARM data files store time information in two variables, a scalar, base_time, and a record variable, time_offset. Subtle but serious problems can arise when these type of files are just blindly concatenated. Therefore ncrcat has been specially programmed to be able to chain together consecutive ARM input-files and produce and an output-file which contains the correct time information. Currently, ncrcat determines whether a datafile is an ARM datafile simply by testing for the existence toragecode>time from a fixed dimension to a record dimension. This may be useful, for example, when the user wishes to append additional time slices to the data. The procedure is to use ncecat followed by ncpdq and then ncwa:

     ncecat -O in.nc out.nc # Add degenerate record dimension named "record"
     ncpdq -O -a time,record out.nc out.nc # Switch "record" and "time"
     ncwa -O -a record out.nc out.nc # Remove (degenerate) "record"

The first step creates a degenerate (size equals one) record dimension named (by default) record. The second step swaps the ordering of the dimensions named time and record. Since time now occupies the position of the first (least rapidly varying) dimension, it becomes the record dimension. The dimension named record is no longer a record dimension. The third step averages over this degenerate record dimension. Averaging over a degenerate dimension does not alter the data. The ordering of other dimensions in the file (lat, lon, etc.) is immaterial to this procedure. See ncecat netCDF Ensemble Concatenator for other methods of changing variable dimensionality, including the record dimension.