Getting Started with StreamTool

This is an ad hoc page for using Mihael's StreamTool script to examine LIGO stream files. When we get the chance, we should
  1. learn how to use all of the scripts in the i2u2-data /usr/local/ligotools/ligotools/ and /usr/local/ligotools/i2u2tools/ directories and document them, and
  2. integrate StreamTool into them so that the rest of this page becomes unnecessary.

Mihael's archive for StreamTool is stored in the /home/quarkcat/archives/ directory of i2u2-dev as the file StreamJava.tar.gz. When untarred, this archive creates the filetree
java/
└── gov
    └── fnal
        └── elab
            └── ligo
                └── data
                    ├── chart
                    ├── convert
                    │   ├── AbstractDataTool.java
                    │   ├── BrokenDataException.java
                    │   ├── ChannelName.java
                    │   ├── CheckData.java
                    │   ├── DataBinaryFileWriter.java
                    │   ├── DataFileWriter.java
                    │   ├── DataReaderEntry.java
                    │   ├── DataReader.java
                    │   ├── DoubleDataReader.java
                    │   ├── DumpViewer.java
                    │   ├── FloatDataReader.java
                    │   ├── GPSTimeConverter.java
                    │   ├── ImportData.java
                    │   ├── IntDataReader.java
                    │   ├── LIGOFileClass.java
                    │   ├── LIGOFile.java
                    │   ├── ProcessTools.java
                    │   ├── ToolException.java
                    │   └── TruncateStreams.java
                    ├── engine
                    │   ├── ChannelIndex.java
                    │   ├── ChannelProperties.java
                    │   ├── DirectLIGOFileReader.java
                    │   ├── DumpSums.java
                    │   ├── EncodingTools.java
                    │   ├── EngineException.java
                    │   ├── InfoFileFilter.java
                    │   ├── LIGOFileDataEngine.java
                    │   ├── LIGOFileReaderFactory.java
                    │   ├── LIGOFileReader.java
                    │   ├── Modifiable.java
                    │   ├── ModificationChecker.java
                    │   ├── NumberArrayDataSet.java
                    │   ├── Record.java
                    │   ├── ServiceLIGOFileReader.java
                    │   └── StreamTool.java
                    └── json
                        ├── ConvertUnixToGPS.java
                        ├── DataSetSerializer.java
                        └── GPSConvertingJSMillisDataSetSerializer.java

This is essentially Mihael's personal copy of the i2u2-data directory /usr/local/ligotools/i2u2tools/java/, a set of tools written by the ELabs developers who created the LIGO e-Lab. Note that the i2u2-data java/gov/fnal/elab/ligo/data/engine/ directory doesn't have a copy of StreamTool.java, though, which is why we had to get it from Mihael.

This fileset doesn't quite have everything it needs to compile and run StreamTool. In particular, it needs files from the package gov.fnal.elab.expression.data.engine, which can be found in the repository. I symlinked it in as
$ ln -s ~/svn_project_roots/4.0-ND-dev/common/src/java/gov/fnal/elab/expression/ ./java/gov/fnal/elab/expression
(executed from the directory where I unpacked the tar file); adjust for where you keep your repo branch working copies. Then, run
$ javac -cp ./java/ java/gov/fnal/elab/ligo/data/convert/GPSTimeConverter.java java/gov/fnal/elab/ligo/data/engine/ChannelIndex.java java/gov/fnal/elab/ligo/data/engine/EncodingTools.java java/gov/fnal/elab/ligo/data/engine/StreamTool.java
to compile StreamTool.

Now, from the untarred java/ directory, you can run StreamTool:
$ java gov.fnal.elab.ligo.data.engine.StreamTool 
Missing argument 'channel'

StreamTool <channel> (index | stream [<stream-options>])
<channel>:
    a file name or index name or channel name to work with
<stream-options>:
    -width <integer>
        The width of the display (in characters), where applicable
    -start <time>
        First time to display
    -end <time>
        Last time to display
    -graph
        Generate a graph of the data (default)
    -list
        Produce a listing of the data

Here, the program complains that we haven't provided an argument and offers some help in invoking it. To use it, provide it the name of a stream channel and a command such as index:
$ java gov.fnal.elab.ligo.data.engine.StreamTool /path/to/H1\:PEM-CS_SEIS_LVEA_VERTEX_Z_BLRMS_10HZ30 index > out.txt
There must be a .index.bin file at the location you specify for the stream name, but you don't need to specify the .index.bin extension itself in the command. -- Main.JoelG - 2017-02-06

Comments

 
Topic revision: r2 - 2019-05-22, AdminUser
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback