Synopsis
cubeinfo [-v|--verbose] [--include-pattern=PATTERN]… [--output-dir=DIRECTORY [--force-overwrite]] [--format=FORMAT] [file | directory]…
cubeinfo [-h|--help] [--version] [--sysinfo]
Description
Cubeinfo reads from a file (or standard input) and returns a short textual report of the content of the read Cube recording. If a directory is given instead, cubeinfo searches recursively for input files inside the directory.
The report is written to standard output (i.e. console) or saved in an
output directory (use option --output-dir
). Different report variants
(SUMMARY, DUMP, …) are predefined and can be selected using the
--format
option.
Options
The program pretty much follows expected Unix command line syntax. Some
command line options have two variants, one long and an additional short one
(for convenience). These are shown below, separated by commas. However, most
options only have a long variant. The ‘=
’ for options that take a
parameter is required and can not be replaced by a whitespace.
- -h, --help
-
Print a brief summary of all available command line options and exit.
- --version
-
Print the cubeinfo release information and exit.
- --sysinfo
-
Provide some basic system information and exit.
- -v, --verbose
-
This option increases the amount of information given to the user during program execution. By default, (i.e. without this option) cubeinfo only reports warnings and errors. (See the diagnostics section below.)
- --include-pattern=PATTERN
-
Only process files whose filename matches the given PATTERN. Files with a name not matching the search PATTERN will be ignored. This option is quite useful to speed up recursive searches through large subdirectory trees and can be used more than once in the same command line.
You can use the two wild card characters (
*
and?
) when specifying a PATTERN (e.g.*.123
). Or alternatively, you can also use a predefined filter calledGIPP
that can be used to exclude all files not following the usual GIPP naming convention for files recorded by Cubes.The search PATTERN is only applied to the filename part and not to the full pathname of a file. - --output-dir=DIRECTORY
-
Save the resulting reports to this DIRECTORY. The directory must already exist and be writable! Already existing files in that directory will not be overwritten unless the option
--force-overwrite
is used as well. - --force-overwrite
-
If this option is used, already existing files in the output directory will be overwritten without mercy!
The default behavior however is not to overwrite already existing files. Instead, a new file is created with an additional number in between filename and extension.
- --format=FORMAT
-
Select one of the following predefined output formats:
- INFO
-
Give a brief, minimal description of the content of the Cube recording. The report will contain the Cube instrument id and configuration, battery levels, as well as the approximate start and stop time of the recording. This is the default output format.
- SUMMARY
-
A slightly more verbose description of the content also includes statistics about how many data blocks (header, trailer, samples, GPS, …) are contained in the Cube recording.
This output format requires that the Cube file must be read completely, which may take a few seconds for extensive recordings. - GPS
-
List the content of all GPS blocks contained in the Cube recording. This output format is especially useful to obtain the actual position of a Cube while it was recording. You can also get a rough idea about the quality of the received GPS signal.
The returned information will depend on the build-in/connected clock hardware, which differs between Cube recorders. Usually the report contains at least the Cube block number and the time contained in the GPS block. Additional information is provided on an "as available" base and may include the number of leap seconds between GPS and UTC time (as reported by the GPS satellite and/or as officially announced by the International Earth Rotation and Reference Systems Service, IERS, the type of the GPS fix (2D, 3D, …), the position of the Cube (latitude, longitude and maybe elevation), temperature (measured by the clock hardware), the number of satellites received, and/or the age of the GPS fix ("less than 10s old").
The time information provided by the GPS output format is not identical to the recording time of any sample! Additional time corrections (depending amongst others on Cube hardware and configured sample rate) must be applied first to obtain the correct (precise) recording time. - DEBUG
-
Returns a textual representation of every data block contained in the Cube file. This rather voluminous report includes everything there is and should probably be used for debugging purpose only!
Environment
The following environment variables can optionally be used to influence the behavior of the GIPPtool utilities.
- GIPPTOOLS_HOME
-
This environment variable is used to find the location of the GIPPtools installation directory. In particular, the Java class files that make up the GIPPtools are expected to be in the
java
subdirectory of GIPPTOOLS_HOME. - GIPPTOOLS_JAVA
-
The utilities of the GIPPtools are written in the programming language Java and consequently need a Java Runtime Environment (JRE) to execute. Use this variable to specify the location of the JRE which should be used.
- GIPPTOOLS_OPTS
-
You can use this environment variable for additional fine-tuning of the Java runtime environment. This is typically used to set the Java heap size available to GIPPtool programs.
- GIPPTOOLS_LEAP
-
The GIPPtools require up-to-date leap second information to correctly interpret Cube files. Usually, this information is obtained from the
leap-seconds.list
file located in the config subdirectory of the GIPPtools installation directory. This environment variable can be used to provide a more up-to-date leap second list to GIPPtool programs.
It is usually not necessary to define any of those variables as suitable values should be selected automatically. However, if the automatic detection build into the start script fails, or you need to choose between different GIPPtool or Java runtime releases installed on your computer, these environment variables might become quite helpful to troubleshoot the situation.
Diagnostics
Occasionally, the cubeinfo utility will produce user feedback. In general,
user messages are classified as INFO, WARNING or ERROR. The INFO
messages are only displayed when the --verbose
command line option is used.
They usually report about the progress of the program run, give statistical
information or write a final summary.
More important are WARNING messages. In general, they warn about (possible) issues that may influence the outcome. Although the program will continue with execution, you certainly should check the results carefully. You might not have gotten what you (thought you) asked for. Finally, ERROR messages inform about problems that can not be resolved automatically. Program execution usually stops and the user must fix the cause of the error first.
Exit codes
Use the following program exit codes when calling cubeinfo from scripts or other programs to see if cubeinfo finished successfully. Any non-zero code indicates an ERROR!
- 0
-
Success.
- 64
-
Command line syntax or usage error.
- 65
-
Data format error. (The input was not a valid Cube recording.)
- 66
-
An input file did not exist or was not readable.
- 70
-
Error in internal program logic.
- 74
-
I/O error.
- 99
-
Other, unspecified errors.
Examples
-
To learn about the content of the single Cube file called
recording.cube
, you simply use one of the following:cubeinfo recording.cube
cubeinfo < recording.cube
The first variant will usually be much faster as cubeinfo will jump directly from the beginning of the file, where it reads the "header block", to the end of the file where the "trailer block" required by the INFO report is located.
The second variant does not have that option as it must always read the complete data stream piped in from console. There is, however, no significant difference when requesting a report format other than the default INFO format as the complete recording must be read for other predefined report formats. -
To get information about how many data blocks are contained in the Cube file
02161251.034
use the SUMMARY output format:cubeinfo --format=SUMMARY 02161251.034
This will not only return a table of the fields contained in the header and trailer block of the Cube file but also count every data block contained in the file and report those statistics too.
Using the SUMMARY output format is a convenient method to quickly check if the Cube file is "complete". If you suspect your Cube recording was cut-off early or might be otherwise damaged you can look for header, trailer and end-of-file block counts. A sound Cube file should contain exactly one of each! -
To find out at which coordinates the Cube was placed when it recorded the file
02161251.034
you use GPS report format:cubeinfo --format=GPS 02161251.034
The resulting output contains, besides other information, the coordinates (marked as lat and lon) of the Cube in degrees. Depending on the build-in GPS hardware additional information about elevation might or might not be available.
Files
- $GIPPTOOLS_HOME/bin/cubeinfo
-
The cubeinfo "program". Usually just a copy of or symbolic link pointing to the standard GIPPtools start script.
- $GIPPTOOLS_HOME/bin/gipptools
-
The GIPPtools start script. Almost all utilities of the GIPPtools package are started from this shell script.
See also
gipptools(1), cube2ascii(1), cube2mseed(1), cube2segy(1), cubeevent(1), mseed2ascii(1), mseed2mseed(1), mseed2pdas(1), mseed2segy(1), mseedcut(1), mseedinfo(1), mseedrecover(1), mseedrename(1)
Bugs and caveats
-
If a Cube file was cut-off early (i.e. it does not contain a trailer block at the end of the recording) no information about the end of the recording can be given! Although this should be obvious it always seems to surprise the user.