RP66V1 Command Line Tools

This describes the command line tools that are available for processing RP66V1 files. They are:

Tool Name Description
tdrp66v1scanhtml Scans RP66V1 file(s) and writes out a summary in HTML.
tdrp66v1tolas Converts RP66V1 file(s) to a set of LAS files.
tdrp66v1indexpickle Indexes RP66V1 file(s) and writes the indexes for future use as Python pickle files.
tdrp66v1indexxml Indexes RP66V1 file(s) and writes the indexes as XML files.
tdrp66v1scan Scans RP66V1 file at various levels of structure.

Creating HTML Pages from RP66V1 Files with tdrp66v1scanhtml

This takes a RP66V1 file or directory of them and writes out an HTML summary of each Logical File. The summary includes each non-encrypted EFLR and Log Pass. The frames in the log pass can be sub-sampled by using --frame-slice which speeds things up when processing large files.

Arguments

The first argument is the path to a RP66V1 file or directory. The second argument is the path to write the output to.

Options

-h, --help show this help message and exit
--version show program’s version number and exit
-k, --keep-going
 Keep going as far as sensible. Default: False.
-v, --verbose Increase verbosity, additive [default: 0]
-r, --recurse Process the input recursively. Default: False.
-l LOG_LEVEL, --log-level LOG_LEVEL
 Log Level as an integer or symbol. (0<->NOTSET, 10<->DEBUG, 20<->INFO, 30<->WARNING, 40<->ERROR, 50<->CRITICAL) [default: 20]
-j JOBS, --jobs JOBS
 Max processes when multiprocessing.Zero uses number of native CPUs [8]. Negative value disables multiprocessing code. Default: -1.
-e, --encrypted
 Output encrypted Logical Records as well. [default: False]
--frame-slice FRAME_SLICE
 Do not process all frames but sample or slice the frames. SAMPLE: Sample is of the form “N” so a maximum of N frames, roughly regularly spaced, will be processed. N must be +ve, non-zero integer. Example: “64” - process a maximum of 64 frames. SLICE: Slice the frames is of the form start,stop,step as a comma separated list. Values can be absent or “None”. Examples: “,,” - every frame, “,,2” - every other frame, “,10,” - frames 0 to 9, “4,10,2” - frames 4, 6, 8, “40,-1,4” - every fourth frame from 40 to the end. Results will be truncated by frame array length. [default: “,,” i.e. all frames]
--log-process LOG_PROCESS
 Writes process data such as memory usage as a log INFO line every LOG_PROCESS seconds. If 0.0 no process data is logged. [default: 0.0]
--gnuplot GNUPLOT
 Directory to write the gnuplot data.

Here is an example of the HTML summary of a single RP66V1 file .

Converting RP66V1 Files to LAS Files with tdrp66v1tolas

This takes a RP66V1 file or directory of them and writes out a set of LAS files. A single LAS file is written for each Log Pass in each Logical Record.

The frames in the log pass can be sub-sampled by using --frame-slice which speeds things up when processing large files. The --channels option can be used to limit channels.

Where a channel has multiple values, and LAS con only record a single value, then the --array-reduction flag can be used to specify how the single value is computed. The allowable values are {first,max,mean,median,min} and the default is mean.

LAS File Naming Convention

One RP66V1 file produces one or more LAS files. LAS file names are of the form:

{RP66V1_File_no_extension}_{logical_file_number}_{frame_array_name}

Processing a Single RP66V1 File

Given the path out the LAS files will be named {path_out}_{logical_file_number}_{frame_array_name}.las

For example tdrp66v1tolas foo.dlis bar/baz might create:

bar/baz_0_2000T.las
bar/baz_0_800T.las
bar/baz_1_2000T.las
bar/baz_1_800T.las

and so on.

Processing a Directory of RP66V1 Files

Given the path out the LAS files will be named:

{path_out}/{RP66V1_File}_{logical_file_number}_{frame_array_name}.las

For example tdrp66v1tolas foo/ bar/baz might create:

bar/baz/bit_0_2000T.las
bar/baz/bit_0_800T.las
bar/baz/bit_1_2000T.las
bar/baz/bit_1_800T.las

and so on.

The output directory structure will mirror the input directory structure.

Arguments

The first argument is the path to a RP66V1 file or directory. The second argument is the path to write the output to.

Options

-h, --help show this help message and exit
--version show program’s version number and exit
-k, --keep-going
 Keep going as far as sensible. Default: False.
-v, --verbose Increase verbosity, additive [default: 0]
-r, --recurse Process the input recursively. Default: False.
-l LOG_LEVEL, --log-level LOG_LEVEL
 Log Level as an integer or symbol. (0<->NOTSET, 10<->DEBUG, 20<->INFO, 30<->WARNING, 40<->ERROR, 50<->CRITICAL) [default: 20]
-j JOBS, --jobs JOBS
 Max processes when multiprocessing.Zero uses number of native CPUs [8]. Negative value disables multiprocessing code. Default: -1.
--frame-slice FRAME_SLICE
 Do not process all frames but sample or slice the frames. SAMPLE: Sample is of the form “N” so a maximum of N frames, roughly regularly spaced, will be processed. N must be +ve, non-zero integer. Example: “64” - process a maximum of 64 frames. SLICE: Slice the frames is of the form start,stop,step as a comma separated list. Values can be absent or “None”. Examples: “,,” - every frame, “,,2” - every other frame, “,10,” - frames 0 to 9, “4,10,2” - frames 4, 6, 8, “40,-1,4” - every fourth frame from 40 to the end. Results will be truncated by frame array length. Use ‘?’ to see what frames are available [default: “,,” i.e. all frames]
--log-process LOG_PROCESS
 Writes process data such as memory usage as a log INFO line every LOG_PROCESS seconds. If 0.0 no process data is logged. [default: 0.0]
--gnuplot GNUPLOT
 Directory to write the gnuplot data.
--array-reduction ARRAY_REDUCTION
 Method to reduce multidimensional channel data to a single value. One of {first,max,mean,median,min} [default: first]
--channels CHANNELS
 Comma separated list of channels to write out (X axis is always included). Use ‘?’ to see what channels exist without writing anything. [default: “”]
--field-width FIELD_WIDTH
 Field width for array data [default: 16].
--float-format FLOAT_FORMAT
 Floating point format for array data [default: “.3f”].

Examples

Finding out what Channels and Frames Exist:

Use --channels=? and/or --frame-slice=? to see what channels and frames exist in the RP66V1 file.

$ tdrp66v1tolas --channels=? --frame-slice=? example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS example_data/LAS/206_05a-_3_DWL_DWL_WIRE_258276498
Logical file [0000]: <TotalDepth.RP66V1.core.LogicalFile.LogicalFile object at 0x109fd50f0>
  Frame Array: b'2000T'
  Channels: b'TIME,TDEP,TENS_SL,DEPT_SL'
  X axis: FrameChannel: OBNAME: O: 2 C: 4 I: b'TIME'            Rc:   2 Co:    1 Un: b'ms'        Di: [1] b'1 second River Time'
  Frames: 921 from 16677259.0 to 17597260.0 interval 1000.0010869565217 [b'ms']

  Frame Array: b'800T'
  Channels: b'TIME,TDEP,ETIM,LMVL,UMVL,CFLA,OCD,RCMD,RCPP,CMRT,RCNU,DCFL,DFS,DZER,RHMD,HMRT,RHV,RLSW,MNU,S1CY,S2CY,RSCU,RSTS,UCFL,CARC,CMDV,CMPP,CNU,HMDV,HV,LSWI,SCUR,SSTA,RCMP,RHPP,RRPP,CMPR,HPPR,RPPV,SMSC,CMCU,HMCU,CMLP'
  X axis: FrameChannel: OBNAME: O: 2 C: 5 I: b'TIME'            Rc:   2 Co:    1 Un: b'ms'        Di: [1] b'400 milli-second time channel'
  Frames: 2301 from 16677259.0 to 17597260.0 interval 400.0004347826087 [b'ms']

Processing a Single File

$ tdrp66v1tolas example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS example_data/LAS/206_05a-_3_DWL_DWL_WIRE_258276498
  Input    Output LAS Count  Time  Ratio  ms/Mb Exception                                                         Path
------- --------- --------- ----- ------ ------ --------- ------------------------------------------------------------
540,372 1,812,131         2 1.816 335.3% 3524.1     False "example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS"
Execution time =    1.819 (S)
Out of  1 processed 1 files of total size 540,372 input bytes
Wrote 1,812,131 output bytes, ratio: 335.349% at 3529.3 ms/Mb
$ ll example_data/LAS/
total 4600
-rw-r--r--  1 xxxxxxxx  staff    94317 28 Oct 10:19 206_05a-_3_DWL_DWL_WIRE_258276498_0_2000T.las
-rw-r--r--  1 xxxxxxxx  staff  1717814 28 Oct 10:20 206_05a-_3_DWL_DWL_WIRE_258276498_0_800T.las

The LAS files look like this:

$ head -n20 example_data/LAS/206_05a-_3_DWL_DWL_WIRE_258276498_0_2000T.las
~Version Information Section
VERS.          2.0                                     : CWLS Log ASCII Standard - VERSION 2.0
WRAP.          NO                                      : One Line per depth step
PROD.          TotalDepth                              : LAS Producer
PROG.          TotalDepth.RP66V1.ToLAS 0.1.1           : LAS Program name and version
CREA.          2019-10-28 10:30                        : LAS Creation date [YYYY-mm-dd HH:MM]
DLIS_CREA.     2011-08-20 22:48                        : DLIS Creation date and time [YYYY-mm-dd HH:MM]
SOURCE.        206_05a-_3_DWL_DWL_WIRE_258276498.DLIS  : DLIS File Name
FILE-ID.       MSCT_197LTP                             : File Identification Number
LOGICAL-FILE.  0                                       : Logical File number in the DLIS file
FRAME-ARRAY.   2000T                                   : Identity of the Frame Array in the Logical File
~Well Information Section
#MNEM.UNIT  DATA                         DESCRIPTION
#----.----  ----                         -----------
STRT.ms     16677259.0                   : Start X
STOP.ms     17597260.0                   : Stop X, frames: 921
STEP.ms     1000.0010869565217           : Step (average)
NULL.                                    :
COMP.       Faroe Petroleum              :
WELL.       206/05a-3                    :

$ head -n20 example_data/LAS/206_05a-_3_DWL_DWL_WIRE_258276498_0_800T.las
~Version Information Section
VERS.          2.0                                     : CWLS Log ASCII Standard - VERSION 2.0
WRAP.          NO                                      : One Line per depth step
PROD.          TotalDepth                              : LAS Producer
PROG.          TotalDepth.RP66V1.ToLAS 0.1.1           : LAS Program name and version
CREA.          2019-10-28 10:30                        : LAS Creation date [YYYY-mm-dd HH:MM]
DLIS_CREA.     2011-08-20 22:48                        : DLIS Creation date and time [YYYY-mm-dd HH:MM]
SOURCE.        206_05a-_3_DWL_DWL_WIRE_258276498.DLIS  : DLIS File Name
FILE-ID.       MSCT_197LTP                             : File Identification Number
LOGICAL-FILE.  0                                       : Logical File number in the DLIS file
FRAME-ARRAY.   800T                                    : Identity of the Frame Array in the Logical File
~Well Information Section
#MNEM.UNIT  DATA                         DESCRIPTION
#----.----  ----                         -----------
STRT.ms     16677259.0                   : Start X
STOP.ms     17597260.0                   : Stop X, frames: 2,301
STEP.ms     400.0004347826087            : Step (average)
NULL.                                    :
COMP.       Faroe Petroleum              :
WELL.       206/05a-3                    :

Processing a Directory

Use the -r option to process recursively. The output directory will mirror the input directory.

$ tdrp66v1tolas -r example_data/ tmp/LAS
  Input    Output LAS Count  Time  Ratio  ms/Mb Exception                                                         Path
------- --------- --------- ----- ------ ------ --------- ------------------------------------------------------------
540,372 1,812,131         2 1.874 335.3% 3636.8     False "example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS"
Execution time =    1.884 (S)
Out of  6 processed 1 files of total size 540,372 input bytes
Wrote 1,812,131 output bytes, ratio: 335.349% at 3655.1 ms/Mb
$ find tmp/LAS -name '*.las'
tmp/LAS/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498_0_800T.las
tmp/LAS/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498_0_2000T.las

Indexing RP66V1 Files with tdrp66v1indexpickle

tdrp66v1indexpickle reads a RP66V1 file and dumps the index to a pickle file.

Arguments

The first argument is the path to a RP66V1 file or directory. The second argument is the path to write the output to.

Options

-h, --help show this help message and exit
-r, --recurse Process recursively. [default: False]
--read-back Read and time the output. [default: False]
-l LOG_LEVEL, --log-level LOG_LEVEL
 Log Level as an integer or symbol. (0<->NOTSET, 10<->DEBUG, 20<->INFO, 30<->WARNING, 40<->ERROR, 50<->CRITICAL) [default: 30]
--log-process LOG_PROCESS
 Writes process data such as memory usage as a log INFO line every LOG_PROCESS seconds. If 0.0 no process data is logged. [default: 0.0]
-v, --verbose Increase verbosity, additive [default: 0]
--gnuplot GNUPLOT
 Directory to write the gnuplot data.

Examples

Processing a Single File

$ tdrp66v1indexpickle --read-back example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS example_data/pickle/206_05a-_3_DWL_DWL_WIRE_258276498
Common path prefix: example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS
Size (b) | Index (b) | Ratio (%) | Index (s) | Index (ms/Mb) | Read (s) | Read (ms/Mb) | Except | Path
-------- | --------- | --------- | --------- | ------------- | -------- | ------------ | ------ | ----
 540,372 | 1,018,327 |  188.449% |     0.330 |         639.9 |    0.041 |        78.96 |  False |
Execution time =    0.379 (S)
Out of  1 processed 1 files of total size 540,372 input bytes
Wrote 1,018,327 output bytes, ratio: 188.449% at 651.0 ms/Mb
$ ll example_data/pickle/
total 1992
-rw-r--r--  1 xxxxxxxx  staff  1018327 28 Oct 12:11 206_05a-_3_DWL_DWL_WIRE_258276498.pkl

Processing a Directory

Use the -r option to process recursively. The output directory will mirror the input directory.

Indexing RP66V1 Files with tdrp66v1indexxml

tdrp66v1indexxml reads a RP66V1 file and dumps the index to an XML file.

Arguments

The first argument is the path to a RP66V1 file or directory. The second argument is the path to write the output to.

Options

optional arguments:
-h, --help show this help message and exit
-r, --recurse Process files recursively. [default: False]
-p, --private Also write out private EFLRs. [default: False]
-l LOG_LEVEL, --log-level LOG_LEVEL
 Log Level as an integer or symbol. (0<->NOTSET, 10<->DEBUG, 20<->INFO, 30<->WARNING, 40<->ERROR, 50<->CRITICAL) [default: 20]
--log-process LOG_PROCESS
 Writes process data such as memory usage as a log INFO line every LOG_PROCESS seconds. If 0.0 no process data is logged. [default: 0.0]
-v, --verbose Increase verbosity, additive [default: 0]
--gnuplot GNUPLOT
 Directory to write the gnuplot data.

Examples

Processing a Single File

$ tdrp66v1indexxml example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS example_data/XML/206_05a-_3_DWL_DWL_WIRE_258276498
2019-10-28 11:58:55,498 - 74153 - MainThread - INFO     - IndexXML.py      - index_dir_or_file(): "example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS" to "example_data/XML/206_05a-_3_DWL_DWL_WIRE_258276498" recurse: False
2019-10-28 11:58:55,499 - 74153 - MainThread - INFO     - IndexXML.py      - Making directory: example_data/XML
2019-10-28 11:58:55,499 - 74153 - MainThread - INFO     - IndexXML.py      - Indexing example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS to example_data/XML/206_05a-_3_DWL_DWL_WIRE_258276498
2019-10-28 11:58:55,939 - 74153 - MainThread - INFO     - IndexXML.py      - Length of XML: 428622
         Size In         Size Out     Time  Ratio %    ms/Mb Fail? Path
---------------- ---------------- -------- -------- -------- ----- ----
         540,372          428,622    0.440  79.320%    854.6 False "example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS"
Execution time =    0.443 (S)
Out of  1 processed 1 files of total size 540,372 input bytes
Wrote 428,622 output bytes, ratio:  79.320% at 860.4 ms/Mb

The XML looks something like this:

<?xml version='1.0' encoding="utf-8"?>
<RP66V1FileIndex creator="TotalDepth.RP66V1.core.Index" path="example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS" schema_version="0.1.0" size="540372" utc_file_mtime="2019-06-22 09:10:59.512253" utc_now="2019-10-28 11:58:55.799047">
  <StorageUnitLabel dlis_version="V1.00" maximum_record_length="8192" sequence_number="1" storage_set_identifier="Default Storage Set                                         " storage_unit_structure="RECORD"/>
  <LogicalFiles count="1">
    <LogicalFile has_log_pass="True" index="0">
      <EFLR lr_type="0" lrsh_position="0x54" object_count="1" set_name="" set_type="FILE-HEADER" vr_position="0x50">
        <Object C="0" I="5" O="2">
          <Attribute count="1" label="SEQUENCE-NUMBER" rc="20" rc_ascii="ASCII" units="">
            <Value type="bytes" value="       197"/>
          </Attribute>
          <Attribute count="1" label="ID" rc="20" rc_ascii="ASCII" units="">
            <Value type="bytes" value="MSCT_197LTP                                                      "/>
          </Attribute>
        </Object>
      </EFLR>
      <!-- More EFLRs ... -->
      <LogPass count="2">
        <FrameArray C="0" I="2000T" O="2" description="" x_axis="TIME" x_units="ms">
          <Channels count="4">
            <Channel C="4" I="TIME" O="2" count="1" dimensions="1" long_name="1 second River Time" rep_code="2" units="ms"/>
            <Channel C="4" I="TDEP" O="2" count="1" dimensions="1" long_name="1 second River Depth" rep_code="2" units="0.1 in"/>
            <Channel C="0" I="TENS_SL" O="2" count="1" dimensions="1" long_name="Cable Tension" rep_code="2" units="lbf"/>
            <Channel C="0" I="DEPT_SL" O="2" count="1" dimensions="1" long_name="Station logging depth" rep_code="2" units="0.1 in"/>
          </Channels>
          <IFLR count="921">
            <FrameNumbers count="921" rle_len="1">
              <RLE datum="1" repeat="920" stride="1"/>
            </FrameNumbers>
            <LRSH count="921" rle_len="400">
              <RLE datum="0x13254" repeat="1" stride="0x190"/>
              <!-- ... -->
              <RLE datum="0x83ba4" repeat="1" stride="0x198"/>
            </LRSH>
            <Xaxis count="921" rle_len="2">
              <RLE datum="16677259.0" repeat="99" stride="1000.0"/>
              <RLE datum="16777260.0" repeat="820" stride="1000.0"/>
            </Xaxis>
          </IFLR>
        </FrameArray>
        <FrameArray C="0" I="800T" O="2" description="" x_axis="TIME" x_units="ms">
          <Channels count="43">
            <Channel C="5" I="TIME" O="2" count="1" dimensions="1" long_name="400 milli-second time channel" rep_code="2" units="ms"/>
            <Channel C="5" I="TDEP" O="2" count="1" dimensions="1" long_name="MSCT depth channel" rep_code="2" units="0.1 in"/>
            <Channel C="1" I="ETIM" O="2" count="1" dimensions="1" long_name="Elapsed Logging Time" rep_code="2" units="s"/>
            <!-- ... -->
            <Channel C="0" I="HMCU" O="2" count="1" dimensions="1" long_name="Hydrailic Motor Current" rep_code="2" units="mA"/>
            <Channel C="0" I="CMLP" O="2" count="1" dimensions="1" long_name="Coring Motor Linear Position" rep_code="2" units="in"/>
          </Channels>
          <IFLR count="2301">
            <FrameNumbers count="2301" rle_len="1">
              <RLE datum="1" repeat="2300" stride="1"/>
            </FrameNumbers>
            <LRSH count="2301" rle_len="937">
              <RLE datum="0x13274" repeat="1" stride="0xb8"/>
              <!-- ... -->
              <RLE datum="0x83d5c" repeat="1" stride="0xbc"/>
            </LRSH>
            <Xaxis count="2301" rle_len="2">
              <RLE datum="16677259.0" repeat="249" stride="400.0"/>
              <RLE datum="16777260.0" repeat="2050" stride="400.0"/>
            </Xaxis>
          </IFLR>
        </FrameArray>
      </LogPass>
    </LogicalFile>
  </LogicalFiles>
  <VisibleRecords count="66" rle_len="15">
    <RLE datum="0x50" repeat="3" stride="0x2000"/>
    <!-- ... -->
    <RLE datum="0x81f70" repeat="0" stride="0x0"/>
  </VisibleRecords>
</RP66V1FileIndex>

Processing a Directory

Use the -r option to process recursively. The output directory will mirror the input directory.

Scanning RP66V1 Files with tdrp66v1scan

tdrp66v1scan scans a RP66V1 file and dumps data about the file to stdout. This is useful for examining the details of RP66V1 files and can dump data at various levels of encapsulation, from the lowest level upwards:

  • --VR - Visible Records only.
  • --LRSH - Logical Record segments.
  • --LD - Logical data i.e. all Logical Record segments concatenated for each Logical Record.
  • --EFLR - Explicitly Formatted Logical Records.
  • --IFLR - Implicitly Formatted Logical Records.
  • --LR - All data, including the numerical analysis of frame data.

If these options are combined then the input is scanned, and reported, multiple times.

Arguments

The first argument is the path to a RP66V1 file. An optional second argument is the path to write the output to. If absent then output is written to stdout.

Options

-h, --help show this help message and exit
-V, --VR Dump the Visible Records. [default: False]
-L, --LRSH Summarise the Visible Records and the Logical Record Segment Headers, use -v to dump records. [default: False]
-D, --LD Summarise logical data, use -v to dump records. See also –dump-bytes, –dump-raw-bytes. [default: False]
-E, --EFLR Dump EFLR Set. [default: False]
--eflr-set-type EFLR_SET_TYPE
 List of EFLR Set Types to output, additive, if absent then dump all. [default: []]
-I, --IFLR Dump IFLRs. [default: False]
--iflr-set-type IFLR_SET_TYPE
 List of IFLR Set Types to output, additive, if absent then dump all. [default: []]
-R, --LR Dump all data, including frame data from Logical Records. [default: False]
-d DUMP_BYTES, --dump-bytes DUMP_BYTES
 Dump X leading raw bytes for certain options, if -1 all bytes are dumped. [default: 0]
--dump-raw-bytes
 Dump the raw bytes for certain options in raw format, otherwise Hex format is used. [default: False]
-r, --recurse Process files recursively. [default: False]
-e, --encrypted
 Output encrypted Logical Records as well. [default: False]
-k, --keep-going
 Keep going as far as sensible. [default: False]
--frame-slice FRAME_SLICE
 NOTE: Requires -R, –LR. Do not process all frames but sample or slice the frames. SAMPLE: Sample is of the form “N” so a maximum of N frames, roughly regularly spaced, will be processed. N must be +ve, non-zero integer. Example: “64” - process a maximum of 64 frames. SLICE: Slice the frames is of the form start,stop,step as a comma separated list. Values can be absent or “None”. Examples: “,,” - every frame, “,,2” - every other frame, “,10,” - frames 0 to 9, “4,10,2” - frames 4, 6, 8, “40,-1,4” - every fourth frame from 40 to the end. Results will be truncated by frame array length. [default: “,,” i.e. all frames]
--eflr-as-table
 When with –LR and not –html then dump EFLRs as tables, otherwise every EFLR object. [default: False]
-l LOG_LEVEL, --log-level LOG_LEVEL
 Log Level as an integer or symbol. (0<->NOTSET, 10<->DEBUG, 20<->INFO, 30<->WARNING, 40<->ERROR, 50<->CRITICAL) [default: 30]
-v, --verbose Increase verbosity, additive [default: 0]
--gnuplot GNUPLOT
 Directory to write the gnuplot data.
-T, --test-data
 Dump the file as annotated bytes, useful for creating test data. [default: False]

Examples

Scanning Visible Records with --VR

Example of scanning a RP66V1 file:

$ tdrp66v1scan --VR example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS
************************************************* RP66V1 Visible and LRSH Records **************************************************
==================================================== Summary of Visible Records ====================================================
Visible records: 66
--------------------------------------------------- RLE Visible Record Position ----------------------------------------------------
Datum:               80 0x00000050 Repeat:      3 Stride:  8,192 0x2000
Datum:           32,844 0x0000804c Repeat:      5 Stride:  8,192 0x2000
Datum:           81,988 0x00014044 Repeat:      4 Stride:  8,192 0x2000
Datum:          122,940 0x0001e03c Repeat:     10 Stride:  8,192 0x2000
Datum:          213,016 0x00034018 Repeat:      3 Stride:  8,192 0x2000
Datum:          245,764 0x0003c004 Repeat:      3 Stride:  8,192 0x2000
Datum:          278,516 0x00043ff4 Repeat:      3 Stride:  8,192 0x2000
Datum:          311,268 0x0004bfe4 Repeat:      3 Stride:  8,192 0x2000
Datum:          344,020 0x00053fd4 Repeat:      2 Stride:  8,192 0x2000
Datum:          368,576 0x00059fc0 Repeat:      4 Stride:  8,192 0x2000
Datum:          409,524 0x00063fb4 Repeat:      2 Stride:  8,192 0x2000
Datum:          434,080 0x00069fa0 Repeat:      3 Stride:  8,192 0x2000
Datum:          466,832 0x00071f90 Repeat:      3 Stride:  8,192 0x2000
Datum:          499,584 0x00079f80 Repeat:      3 Stride:  8,192 0x2000
Datum:          532,336 0x00081f70 Repeat:      0 Stride:      0 0x0000
------------------------------------------------- END RLE Visible Record Position --------------------------------------------------
================================================== END Summary of Visible Records ==================================================
*********************************************** END RP66V1 Visible and LRSH Records ************************************************

And with the -v option:

$ tdrp66v1scan --VR -v example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS
************************************************* RP66V1 Visible and LRSH Records **************************************************
<VisibleRecord: position=0x00000050 length=0x2000 version=0xff01> Stride: 0x00000050     80
<VisibleRecord: position=0x00002050 length=0x2000 version=0xff01> Stride: 0x00002000  8,192
<VisibleRecord: position=0x00004050 length=0x2000 version=0xff01> Stride: 0x00002000  8,192
<VisibleRecord: position=0x00006050 length=0x1ffc version=0xff01> Stride: 0x00002000  8,192
<VisibleRecord: position=0x0000804c length=0x2000 version=0xff01> Stride: 0x00001ffc  8,188
<VisibleRecord: position=0x0000a04c length=0x2000 version=0xff01> Stride: 0x00002000  8,192
<VisibleRecord: position=0x0000c04c length=0x2000 version=0xff01> Stride: 0x00002000  8,192
<VisibleRecord: position=0x0000e04c length=0x2000 version=0xff01> Stride: 0x00002000  8,192
<VisibleRecord: position=0x0001004c length=0x2000 version=0xff01> Stride: 0x00002000  8,192
<VisibleRecord: position=0x0001204c length=0x1ff8 version=0xff01> Stride: 0x00002000  8,192
<VisibleRecord: position=0x00014044 length=0x2000 version=0xff01> Stride: 0x00001ff8  8,184
<VisibleRecord: position=0x00016044 length=0x2000 version=0xff01> Stride: 0x00002000  8,192
<VisibleRecord: position=0x00018044 length=0x2000 version=0xff01> Stride: 0x00002000  8,192
<VisibleRecord: position=0x0001a044 length=0x2000 version=0xff01> Stride: 0x00002000  8,192
<VisibleRecord: position=0x0001c044 length=0x1ff8 version=0xff01> Stride: 0x00002000  8,192
<VisibleRecord: position=0x0001e03c length=0x2000 version=0xff01> Stride: 0x00001ff8  8,184
<VisibleRecord: position=0x0002003c length=0x2000 version=0xff01> Stride: 0x00002000  8,192
...
<VisibleRecord: position=0x0007df80 length=0x2000 version=0xff01> Stride: 0x00002000  8,192
<VisibleRecord: position=0x0007ff80 length=0x1ff0 version=0xff01> Stride: 0x00002000  8,192
<VisibleRecord: position=0x00081f70 length=0x1f64 version=0xff01> Stride: 0x00001ff0  8,176
==================================================== Summary of Visible Records ====================================================

Scanning Logical Record Segments with --LRSH

Example of scanning a RP66V1 file for Logical Record Segments, this gives just a summary:

$ tdrp66v1scan --LRSH example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS
...
========================================================= Summary of LRSH ==========================================================
LRSH: total=3,303 is_first=3252
LRSH: record types and counts (first segments only) [9]:
  0 :    3,223
  1 :        1
  3 :        1
  4 :        1
  5 :       10
128 :        2
129 :        2
132 :       10
133 :        2
LRSH: record lengths and counts (all segments) [62] range: 16...8188
======================================================= END Summary of LRSH ========================================================

And with the -v option gives the Visible Records and Logical Record Segments:

************************************************* RP66V1 Visible and LRSH Records **************************************************
<VisibleRecord: position=0x00000050 length=0x2000 version=0xff01> Stride: 0x00000050     80
   <LogicalRecordSegmentHeader: position=0x00000054 length=0x007c attributes=0x80 LR type=  0> Stride: 0x00000054     84
   <LogicalRecordSegmentHeader: position=0x000000d0 length=0x0504 attributes=0x81 LR type=  1> Stride: 0x0000007c    124
   <LogicalRecordSegmentHeader: position=0x000005d4 length=0x05e0 attributes=0x81 LR type=  5> Stride: 0x00000504  1,284
   <LogicalRecordSegmentHeader: position=0x00000bb4 length=0x03e4 attributes=0x99 LR type=132> Stride: 0x000005e0  1,504
   <LogicalRecordSegmentHeader: position=0x00000f98 length=0x0254 attributes=0x99 LR type=132> Stride: 0x000003e4    996
   <LogicalRecordSegmentHeader: position=0x000011ec length=0x0588 attributes=0x81 LR type=  5> Stride: 0x00000254    596
   <LogicalRecordSegmentHeader: position=0x00001774 length=0x023c attributes=0x98 LR type=132> Stride: 0x00000588  1,416
   <LogicalRecordSegmentHeader: position=0x000019b0 length=0x0084 attributes=0x98 LR type=132> Stride: 0x0000023c    572
   <LogicalRecordSegmentHeader: position=0x00001a34 length=0x061c attributes=0xa0 LR type=132> Stride: 0x00000084    132
<VisibleRecord: position=0x00002050 length=0x2000 version=0xff01> Stride: 0x00002000  8,192
    --<LogicalRecordSegmentHeader: position=0x00002054 length=0x0304 attributes=0xc1 LR type=132> Stride: 0x00000620  1,568
   <LogicalRecordSegmentHeader: position=0x00002358 length=0x0e3c attributes=0x81 LR type=  5> Stride: 0x00000304    772
   <LogicalRecordSegmentHeader: position=0x00003194 length=0x0ebc attributes=0xb9 LR type=132> Stride: 0x00000e3c  3,644
<VisibleRecord: position=0x00004050 length=0x2000 version=0xff01> Stride: 0x00002000  8,192
    --<LogicalRecordSegmentHeader: position=0x00004054 length=0x0110 attributes=0xd9 LR type=132> Stride: 0x00000ec0  3,776
   <LogicalRecordSegmentHeader: position=0x00004164 length=0x1eec attributes=0xa0 LR type=  5> Stride: 0x00000110    272
<VisibleRecord: position=0x00006050 length=0x1ffc version=0xff01> Stride: 0x00002000  8,192
    --<LogicalRecordSegmentHeader: position=0x00006054 length=0x1864 attributes=0xc1 LR type=  5> Stride: 0x00001ef0  7,920
   <LogicalRecordSegmentHeader: position=0x000078b8 length=0x0794 attributes=0xb9 LR type=132> Stride: 0x00001864  6,244
<VisibleRecord: position=0x0000804c length=0x2000 version=0xff01> Stride: 0x00001ffc  8,188
    --<LogicalRecordSegmentHeader: position=0x00008050 length=0x1080 attributes=0xd9 LR type=132> Stride: 0x00000798  1,944
   <LogicalRecordSegmentHeader: position=0x000090d0 length=0x01e0 attributes=0x81 LR type=  5> Stride: 0x00001080  4,224
   <LogicalRecordSegmentHeader: position=0x000092b0 length=0x023c attributes=0x99 LR type=132> Stride: 0x000001e0    480
   <LogicalRecordSegmentHeader: position=0x000094ec length=0x0314 attributes=0x81 LR type=  5> Stride: 0x0000023c    572
   <LogicalRecordSegmentHeader: position=0x00009800 length=0x0154 attributes=0x99 LR type=128> Stride: 0x00000314    788
   <LogicalRecordSegmentHeader: position=0x00009954 length=0x0238 attributes=0x81 LR type=  5> Stride: 0x00000154    340
   <LogicalRecordSegmentHeader: position=0x00009b8c length=0x0270 attributes=0x81 LR type=  5> Stride: 0x00000238    568
   <LogicalRecordSegmentHeader: position=0x00009dfc length=0x0250 attributes=0xa0 LR type=  5> Stride: 0x00000270    624
...

Scanning Logical Data with --LD

Example of scanning a RP66V1 file for Logical Record Segments, this gives just a summary:

$ tdrp66v1scan --LD example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS
Cmd: tdrp66v1scan --LD example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS
gnuplot version: "b'gnuplot 5.2 patchlevel 6'"
args: Namespace(EFLR=False, IFLR=False, LD=True, LR=False, LRSH=False, VR=False, dump_bytes=0, dump_raw_bytes=False, eflr_as_table=False, eflr_set_type=[], encrypted=False, frame_slice=',,', gnuplot=None, iflr_set_type=[], keep_going=False, log_level=30, path_in='example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS', path_out='', recurse=False, verbose=0)
Use -v to see individual logical data.
Use -v and --dump-bytes to see actual first n bytes.
*************************************************** RP66V1 Logical Data Summary ****************************************************
================================================= RP66V1 Logical Data EFLR Summary =================================================
Total number of EFLR records: 30
Total length of EFLR records: 78,109
EFLR record type 0 lengths and count [1]:
       120:          1
EFLR record type 1 lengths and count [1]:
     1,279:          1
EFLR record type 3 lengths and count [1]:
     7,174:          1
EFLR record type 4 lengths and count [1]:
       572:          1
EFLR record type 5 lengths and count [10]:
       181:          1
       475:          1
       561:          1
       617:          1
       781:          1
$ tdrp66v1scan --LD example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS
Cmd: tdrp66v1scan --LD example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS
gnuplot version: "b'gnuplot 5.2 patchlevel 6'"
args: Namespace(EFLR=False, IFLR=False, LD=True, LR=False, LRSH=False, VR=False, dump_bytes=0, dump_raw_bytes=False, eflr_as_table=False, eflr_set_type=[], encrypted=False, frame_slice=',,', gnuplot=None, iflr_set_type=[], keep_going=False, log_level=30, path_in='example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS', path_out='', recurse=False, verbose=0)
Use -v to see individual logical data.
Use -v and --dump-bytes to see actual first n bytes.
*************************************************** RP66V1 Logical Data Summary ****************************************************
================================================= RP66V1 Logical Data EFLR Summary =================================================
Total number of EFLR records: 30
Total length of EFLR records: 78,109
EFLR record type 0 lengths and count [1]:
       120:          1
EFLR record type 1 lengths and count [1]:
     1,279:          1
EFLR record type 3 lengths and count [1]:
     7,174:          1
EFLR record type 4 lengths and count [1]:
       572:          1
EFLR record type 5 lengths and count [10]:
       181:          1
       475:          1
       561:          1
       617:          1
       781:          1
     1,409:          1
     1,497:          1
     1,620:          1
     3,637:          1
    14,149:          1
EFLR record type 128 lengths and count [2]:
       336:          1
       888:          1
EFLR record type 129 lengths and count [2]:
       111:          1
     1,226:          1
EFLR record type 132 lengths and count [9]:
       128:          1
       288:          1
       512:          1
       568:          2
       592:          1
       992:          1
     2,325:          1
     4,036:          1
     6,156:          1
EFLR record type 133 lengths and count [2]:
       999:          1
    24,312:          1
=============================================== END RP66V1 Logical Data EFLR Summary ===============================================
================================================= RP66V1 Logical Data IFLR Summary =================================================
Total number of IFLR records: 3,222
Total length of IFLR records: 440,173
IFLR record type 0 lengths and count [4]:
        25:        127
        26:        794
       180:        127
       181:      2,174
=============================================== END RP66V1 Logical Data IFLR Summary ===============================================
Total length EFLR/IFLR: 17.745%
************************************************* END RP66V1 Logical Data Summary **************************************************
         540,372         -1    0.059  -0.000%    115.4 False "example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS"
Execution time =    0.060 (S)
Processed 1 files and 540,372 bytes, 115.8 ms/Mb

And with the -v option gives the Visible Records and Logical Record Segments. The letter ‘E’ is for EFLRs and ‘I’ for IFLRs, ‘Plain’ is for un-encrypted records and ‘Crypt’ for encrypted records:

$ tdrp66v1scan --LD -v example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS
Use -v and --dump-bytes to see actual first n bytes.
*************************************************** RP66V1 Logical Data Summary ****************************************************
Visible R  LRSH       Typ         Length
---------- ---------- --- - ----- --------
0x00000050 0x00000054   0 E Plain      120
           0x000000d0   1 E Plain    1,279
           0x000005d4   5 E Plain    1,497
           0x00000bb4 132 E Crypt      992
           0x00000f98 132 E Crypt      592
           0x000011ec   5 E Plain    1,409
           0x00001774 132 E Crypt      568
           0x000019b0 132 E Crypt      128
           0x00001a34 132 E Plain    2,325
0x00002050 0x00002358   5 E Plain    3,637
           0x00003194 132 E Crypt    4,036
0x00004050 0x00004164   5 E Plain   14,149
0x00006050 0x000078b8 132 E Crypt    6,156
0x0000804c 0x000090d0   5 E Plain      475
           0x000092b0 132 E Crypt      568
           0x000094ec   5 E Plain      781
           0x00009800 128 E Crypt      336
           0x00009954   5 E Plain      561
           0x00009b8c   5 E Plain      617
           0x00009dfc   5 E Plain    1,620
...
0x00081f70 0x00081f74   0 I Plain      181
           0x00082030   0 I Plain       26
           0x00082050   0 I Plain      181
           0x0008210c   0 I Plain      181
           0x000821c8   0 I Plain      181
           ...
           0x00083d3c   0 I Plain       26
           0x00083d5c   0 I Plain      181
           0x00083e18   0 I Plain      181
================================================= RP66V1 Logical Data EFLR Summary =================================================
Total number of EFLR records: 30
Total length of EFLR records: 78,109
EFLR record type 0 lengths and count [1]:
       120:          1
EFLR record type 1 lengths and count [1]:
     1,279:          1
EFLR record type 3 lengths and count [1]:
     7,174:          1
EFLR record type 4 lengths and count [1]:
       572:          1
EFLR record type 5 lengths and count [10]:
       181:          1
       475:          1
       561:          1
       617:          1
       781:          1
     1,409:          1
     1,497:          1
     1,620:          1
     3,637:          1
    14,149:          1
EFLR record type 128 lengths and count [2]:
       336:          1
       888:          1
EFLR record type 129 lengths and count [2]:
       111:          1
     1,226:          1
EFLR record type 132 lengths and count [9]:
       128:          1
       288:          1
       512:          1
       568:          2
       592:          1
       992:          1
     2,325:          1
     4,036:          1
     6,156:          1
EFLR record type 133 lengths and count [2]:
       999:          1
    24,312:          1
=============================================== END RP66V1 Logical Data EFLR Summary ===============================================
================================================= RP66V1 Logical Data IFLR Summary =================================================
Total number of IFLR records: 3,222
Total length of IFLR records: 440,173
IFLR record type 0 lengths and count [4]:
        25:        127
        26:        794
       180:        127
       181:      2,174
=============================================== END RP66V1 Logical Data IFLR Summary ===============================================
Total length EFLR/IFLR: 17.745%
************************************************* END RP66V1 Logical Data Summary **************************************************

The --dump-bytes combined with -v shows the initial bytes of each logical record, here the first 16 bytes are dumped:

$ tdrp66v1scan --LD -v --dump-bytes=16 example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS
*************************************************** RP66V1 Logical Data Summary ****************************************************
Visible R  LRSH       Typ         Length
---------- ---------- --- - ----- --------
0x00000050 0x00000054   0 E Plain      120 f00b 4649 4c45 2d48 4541 4445 5234 0f53 ..FILE-HEADER4.S
           0x000000d0   1 E Plain    1,279 f006 4f52 4947 494e 3c07 4649 4c45 2d49 ..ORIGIN<.FILE-I
           0x000005d4   5 E Plain    1,497 f809 4551 5549 504d 454e 5402 3531 3006 ..EQUIPMENT.510.
           0x00000bb4 132 E Crypt      992 0018 01b8 ced6 0000 be18 0000 8467 0000 .............g..
           0x00000f98 132 E Crypt      592 0018 01b8 dee9 0000 4916 0000 f16d 0000 ........I....m..
           0x000011ec   5 E Plain    1,409 f804 544f 4f4c 0235 3430 0a50 4152 414d ..TOOL.540.PARAM
           0x00001774 132 E Crypt      568 0018 01b8 9a99 0000 3c15 0000 877e 0000 ........<....~..
           0x000019b0 132 E Crypt      128 0018 01b8 acb3 0000 064d 0000 b74d 0000 .........M...M..
           0x00001a34 132 E Plain    2,325 f80b 3434 302d 4348 414e 4e45 4c02 3537 ..440-CHANNEL.57
0x00002050 0x00002358   5 E Plain    3,637 f809 5041 5241 4d45 5445 5202 3538 3006 ..PARAMETER.580.
           0x00003194 132 E Crypt    4,036 0018 01b8 9aa6 0000 c84d 0000 4364 0000 .........M..Cd..
0x00004050 0x00004164   5 E Plain   14,149 f809 5041 5241 4d45 5445 5202 3630 3006 ..PARAMETER.600.
0x00006050 0x000078b8 132 E Crypt    6,156 0018 01b8 565d 0000 0945 0000 3812 0000 ....V]...E..8...
0x0000804c 0x000090d0   5 E Plain      475 f809 5041 5241 4d45 5445 5202 3632 3006 ..PARAMETER.620.
           0x000092b0 132 E Crypt      568 0018 01b8 010d 0000 f57f 0000 890a 0000 ................
           0x000094ec   5 E Plain      781 f817 4341 4c49 4252 4154 494f 4e2d 4d45 ..CALIBRATION-ME
           0x00009800 128 E Crypt      336 0018 01b8 4550 0000 ae56 0000 3207 0000 ....EP...V..2...
           0x00009954   5 E Plain      561 f817 4341 4c49 4252 4154 494f 4e2d 434f ..CALIBRATION-CO
           0x00009b8c   5 E Plain      617 f817 4341 4c49 4252 4154 494f 4e2d 434f ..CALIBRATION-CO
           0x00009dfc   5 E Plain    1,620 f80b 4341 4c49 4252 4154 494f 4e02 3734 ..CALIBRATION.74
...

The raw bytes object is dumped of the --dump-raw-bytes flag is used along with --dump-bytes combined with -v. This can be useful for creating test cases:

$ tdrp66v1scan --LD -v --dump-bytes=16 --dump-raw-bytes example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS | head -n 40
*************************************************** RP66V1 Logical Data Summary ****************************************************
Visible R  LRSH       Typ         Length
---------- ---------- --- - ----- --------
0x00000050 0x00000054   0 E Plain      120 b'\xf0\x0bFILE-HEADER4\x0fS'
           0x000000d0   1 E Plain    1,279 b'\xf0\x06ORIGIN<\x07FILE-I'
           0x000005d4   5 E Plain    1,497 b'\xf8\tEQUIPMENT\x02510\x06'
           0x00000bb4 132 E Crypt      992 b'\x00\x18\x01\xb8\xce\xd6\x00\x00\xbe\x18\x00\x00\x84g\x00\x00'
           0x00000f98 132 E Crypt      592 b'\x00\x18\x01\xb8\xde\xe9\x00\x00I\x16\x00\x00\xf1m\x00\x00'
           0x000011ec   5 E Plain    1,409 b'\xf8\x04TOOL\x02540\nPARAM'
           0x00001774 132 E Crypt      568 b'\x00\x18\x01\xb8\x9a\x99\x00\x00<\x15\x00\x00\x87~\x00\x00'
           0x000019b0 132 E Crypt      128 b'\x00\x18\x01\xb8\xac\xb3\x00\x00\x06M\x00\x00\xb7M\x00\x00'
           0x00001a34 132 E Plain    2,325 b'\xf8\x0b440-CHANNEL\x0257'
0x00002050 0x00002358   5 E Plain    3,637 b'\xf8\tPARAMETER\x02580\x06'
           0x00003194 132 E Crypt    4,036 b'\x00\x18\x01\xb8\x9a\xa6\x00\x00\xc8M\x00\x00Cd\x00\x00'
0x00004050 0x00004164   5 E Plain   14,149 b'\xf8\tPARAMETER\x02600\x06'
0x00006050 0x000078b8 132 E Crypt    6,156 b'\x00\x18\x01\xb8V]\x00\x00\tE\x00\x008\x12\x00\x00'
0x0000804c 0x000090d0   5 E Plain      475 b'\xf8\tPARAMETER\x02620\x06'
           0x000092b0 132 E Crypt      568 b'\x00\x18\x01\xb8\x01\r\x00\x00\xf5\x7f\x00\x00\x89\n\x00\x00'
           0x000094ec   5 E Plain      781 b'\xf8\x17CALIBRATION-ME'
           0x00009800 128 E Crypt      336 b'\x00\x18\x01\xb8EP\x00\x00\xaeV\x00\x002\x07\x00\x00'
           0x00009954   5 E Plain      561 b'\xf8\x17CALIBRATION-CO'
           0x00009b8c   5 E Plain      617 b'\xf8\x17CALIBRATION-CO'
           0x00009dfc   5 E Plain    1,620 b'\xf8\x0bCALIBRATION\x0274'
...

Scanning Explicitly Formatted Logical Records with --EFLR

Example of scanning a RP66V1 file for Logical Record Segments, this gives just a summary:

$ tdrp66v1scan --EFLR example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS
Use -v to see individual logical data.
************************************************ RP66V1 EFLR and IFLR Data Summary *************************************************
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'FILE-HEADER' name: b''>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'ORIGIN' name: b''>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'EQUIPMENT' name: b'51'>
Encrypted EFLR: VR: 0x00000050 LRSH: 0x00000bb4
Encrypted EFLR: VR: 0x00000050 LRSH: 0x00000f98
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'TOOL' name: b'54'>
Encrypted EFLR: VR: 0x00000050 LRSH: 0x00001774
Encrypted EFLR: VR: 0x00000050 LRSH: 0x000019b0
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'440-CHANNEL' name: b'57'>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'PARAMETER' name: b'58'>
Encrypted EFLR: VR: 0x00002050 LRSH: 0x00003194
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'PARAMETER' name: b'60'>
Encrypted EFLR: VR: 0x00006050 LRSH: 0x000078b8
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'PARAMETER' name: b'62'>
Encrypted EFLR: VR: 0x0000804c LRSH: 0x000092b0
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'CALIBRATION-MEASUREMENT' name: b'64'>
Encrypted EFLR: VR: 0x0000804c LRSH: 0x00009800
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'CALIBRATION-COEFFICIENT' name: b'72'>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'CALIBRATION-COEFFICIENT' name: b'73'>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'CALIBRATION' name: b'74'>
Encrypted EFLR: VR: 0x0000a04c LRSH: 0x0000a45c
Encrypted EFLR: VR: 0x0000a04c LRSH: 0x0000a7d8
Encrypted EFLR: VR: 0x0000a04c LRSH: 0x0000a8fc
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'PROCESS' name: b'78'>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'440-OP-CORE_TABLES' name: b'79'>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'440-OP-CORE_REPORT_FORMAT' name: b'330'>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'CHANNEL' name: b''>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'440-PRESENTATION-DESCRIPTION' name: b'375'>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'440-OP-CHANNEL' name: b'377'>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'FRAME' name: b''>
********************************************** END RP66V1 EFLR and IFLR Data Summary ***********************************************

The -v flag can be added to see the initial data:

$ tdrp66v1scan --EFLR -v example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS
************************************************ RP66V1 EFLR and IFLR Data Summary *************************************************
Visible R  LRSH       Typ         Length
---------- ---------- --- - ----- --------
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'FILE-HEADER' name: b''>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'ORIGIN' name: b''>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'EQUIPMENT' name: b'51'>
Encrypted EFLR: <FileLogicalData VR: 0x00000050 LRSH: 0x00000bb4 LR type 132 E y len 0x03e0 Idx 0x0000  0018 01b8 ced6 0000 be18 0000 8467 0000 .............g..>
Encrypted EFLR: <FileLogicalData VR: 0x00000050 LRSH: 0x00000f98 LR type 132 E y len 0x0250 Idx 0x0000  0018 01b8 dee9 0000 4916 0000 f16d 0000 ........I....m..>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'TOOL' name: b'54'>
Encrypted EFLR: <FileLogicalData VR: 0x00000050 LRSH: 0x00001774 LR type 132 E y len 0x0238 Idx 0x0000  0018 01b8 9a99 0000 3c15 0000 877e 0000 ........<....~..>
Encrypted EFLR: <FileLogicalData VR: 0x00000050 LRSH: 0x000019b0 LR type 132 E y len 0x0080 Idx 0x0000  0018 01b8 acb3 0000 064d 0000 b74d 0000 .........M...M..>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'440-CHANNEL' name: b'57'>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'PARAMETER' name: b'58'>
Encrypted EFLR: <FileLogicalData VR: 0x00002050 LRSH: 0x00003194 LR type 132 E y len 0x0fc4 Idx 0x0000  0018 01b8 9aa6 0000 c84d 0000 4364 0000 .........M..Cd..>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'PARAMETER' name: b'60'>
Encrypted EFLR: <FileLogicalData VR: 0x00006050 LRSH: 0x000078b8 LR type 132 E y len 0x180c Idx 0x0000  0018 01b8 565d 0000 0945 0000 3812 0000 ....V]...E..8...>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'PARAMETER' name: b'62'>
Encrypted EFLR: <FileLogicalData VR: 0x0000804c LRSH: 0x000092b0 LR type 132 E y len 0x0238 Idx 0x0000  0018 01b8 010d 0000 f57f 0000 890a 0000 ................>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'CALIBRATION-MEASUREMENT' name: b'64'>
Encrypted EFLR: <FileLogicalData VR: 0x0000804c LRSH: 0x00009800 LR type 128 E y len 0x0150 Idx 0x0000  0018 01b8 4550 0000 ae56 0000 3207 0000 ....EP...V..2...>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'CALIBRATION-COEFFICIENT' name: b'72'>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'CALIBRATION-COEFFICIENT' name: b'73'>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'CALIBRATION' name: b'74'>
Encrypted EFLR: <FileLogicalData VR: 0x0000a04c LRSH: 0x0000a45c LR type 128 E y len 0x0378 Idx 0x0000  0018 01b8 eff6 0000 fd5c 0000 123e 0000 .........\...>..>
Encrypted EFLR: <FileLogicalData VR: 0x0000a04c LRSH: 0x0000a7d8 LR type 132 E y len 0x0120 Idx 0x0000  0018 01b8 4644 0000 ad4c 0000 4f31 0000 ....FD...L..O1..>
Encrypted EFLR: <FileLogicalData VR: 0x0000a04c LRSH: 0x0000a8fc LR type 132 E y len 0x0200 Idx 0x0000  0018 01b8 abb7 0000 d01c 0000 6b36 0000 ............k6..>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'PROCESS' name: b'78'>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'440-OP-CORE_TABLES' name: b'79'>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'440-OP-CORE_REPORT_FORMAT' name: b'330'>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'CHANNEL' name: b''>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'440-PRESENTATION-DESCRIPTION' name: b'375'>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'440-OP-CHANNEL' name: b'377'>
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'FRAME' name: b''>
********************************************** END RP66V1 EFLR and IFLR Data Summary ***********************************************

The --eflr-set-type can be used to select only specific EFLRs:

$ tdrp66v1scan --EFLR -v --eflr-set-type=ORIGIN --eflr-as-table example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS
************************************************ RP66V1 EFLR and IFLR Data Summary *************************************************
Visible R  LRSH       Typ         Length
---------- ---------- --- - ----- --------
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'ORIGIN' name: b''>
********************************************** END RP66V1 EFLR and IFLR Data Summary ***********************************************

Scanning Implicitly Formatted Logical Records with --IFLR

Example of scanning a RP66V1 file for Logical Record Segments, this gives just a summary:

$ tdrp66v1scan --IFLR example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS
Use -v to see individual logical data.
Use -v and --dump-bytes to see actual first n bytes.
************************************************ RP66V1 EFLR and IFLR Data Summary *************************************************
<IndirectlyFormattedLogicalRecord b'2000T'   frame:        1 free data[  16]>
<IndirectlyFormattedLogicalRecord b'800T'    frame:        1 free data[ 172]>
<IndirectlyFormattedLogicalRecord b'800T'    frame:        2 free data[ 172]>
<IndirectlyFormattedLogicalRecord b'2000T'   frame:        2 free data[  16]>
<IndirectlyFormattedLogicalRecord b'800T'    frame:        3 free data[ 172]>
<IndirectlyFormattedLogicalRecord b'2000T'   frame:        3 free data[  16]>
<IndirectlyFormattedLogicalRecord b'800T'    frame:        4 free data[ 172]>
<IndirectlyFormattedLogicalRecord b'800T'    frame:        5 free data[ 172]>
<IndirectlyFormattedLogicalRecord b'800T'    frame:        6 free data[ 172]>
<IndirectlyFormattedLogicalRecord b'800T'    frame:        7 free data[ 172]>
<IndirectlyFormattedLogicalRecord b'2000T'   frame:        4 free data[  16]>
<IndirectlyFormattedLogicalRecord b'800T'    frame:        8 free data[ 172]>
<IndirectlyFormattedLogicalRecord b'800T'    frame:        9 free data[ 172]>
<IndirectlyFormattedLogicalRecord b'2000T'   frame:        5 free data[  16]>
<IndirectlyFormattedLogicalRecord b'800T'    frame:       10 free data[ 172]>
...
<IndirectlyFormattedLogicalRecord b'2000T'   frame:      920 free data[  16]>
<IndirectlyFormattedLogicalRecord b'800T'    frame:    2,298 free data[ 172]>
<IndirectlyFormattedLogicalRecord b'800T'    frame:    2,299 free data[ 172]>
<IndirectlyFormattedLogicalRecord b'2000T'   frame:      921 free data[  16]>
<IndirectlyFormattedLogicalRecord b'800T'    frame:    2,300 free data[ 172]>
<IndirectlyFormattedLogicalRecord b'800T'    frame:    2,301 free data[ 172]>
********************************************** END RP66V1 EFLR and IFLR Data Summary ***********************************************
         540,372         -1    0.435  -0.000%    844.6 False "example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS"
Execution time =    0.436 (S)
Processed 1 files and 540,372 bytes, 845.2 ms/Mb

Scanning Everything with --LR

This reads every byte in the file and writes a very verbose output of each EFLR and a summary of each Log Pass. For example:

$ tdrp66v1scan --LR example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS
***************************************************** RP66V1 File Data Summary *****************************************************
StorageUnitLabel:
  Storage Unit Sequence Number: 1
                  DLIS Version: b'V1.00'
        Storage Unit Structure: b'RECORD'
         Maximum Record Length: 8192
        Storage Set Identifier: b'Default Storage Set                                         '
======================================================== Logical File [0/1] ========================================================
<TotalDepth.RP66V1.core.LogicalFile.LogicalFile object at 0x104d3f6a0>
------------------------------------------ EFLR [0/19] at VR: 0x00000050 LRSH: 0x00000054 ------------------------------------------
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'FILE-HEADER' name: b''>
  Template [2]:
    CD: 001 10100 L: b'SEQUENCE-NUMBER' C: 1 R: 20 (ASCII) U: b'' V: None
    CD: 001 10100 L: b'ID' C: 1 R: 20 (ASCII) U: b'' V: None
  Objects [1]:
    OBNAME: O: 2 C: 0 I: b'5'
      CD: 001 00001 L: b'SEQUENCE-NUMBER' C: 1 R: 20 (ASCII) U: b'' V: [b'       197']
      CD: 001 00001 L: b'ID' C: 1 R: 20 (ASCII) U: b'' V: [b'MSCT_197LTP                                                      ']
---------------------------------------- END EFLR [0/19] at VR: 0x00000050 LRSH: 0x00000054 ----------------------------------------
------------------------------------------ EFLR [1/19] at VR: 0x00000050 LRSH: 0x000000d0 ------------------------------------------
<ExplicitlyFormattedLogicalRecord EFLR Set type: b'ORIGIN' name: b''>
  Template [20]:
    CD: 001 11100 L: b'FILE-ID' C: 1 R: 20 (ASCII) U: b'' V: None
    CD: 001 11100 L: b'FILE-SET-NAME' C: 1 R: 19 (IDENT) U: b'' V: None
    CD: 001 11100 L: b'FILE-SET-NUMBER' C: 1 R: 18 (UVARI) U: b'' V: None
    CD: 001 11100 L: b'FILE-NUMBER' C: 1 R: 18 (UVARI) U: b'' V: None
    CD: 001 11100 L: b'FILE-TYPE' C: 1 R: 19 (IDENT) U: b'' V: None
    CD: 001 11100 L: b'PRODUCT' C: 1 R: 20 (ASCII) U: b'' V: None
    CD: 001 11100 L: b'VERSION' C: 1 R: 20 (ASCII) U: b'' V: None
    CD: 001 11100 L: b'PROGRAMS' C: 1 R: 20 (ASCII) U: b'' V: None
    CD: 001 11100 L: b'CREATION-TIME' C: 1 R: 21 (DTIME) U: b'' V: None
    CD: 001 11100 L: b'ORDER-NUMBER' C: 1 R: 20 (ASCII) U: b'' V: None
    CD: 001 11000 L: b'DESCENT-NUMBER' C: 1 R: 19 (IDENT) U: b'' V: None
    CD: 001 11000 L: b'RUN-NUMBER' C: 1 R: 19 (IDENT) U: b'' V: None
    CD: 001 11100 L: b'WELL-ID' C: 1 R: 20 (ASCII) U: b'' V: None
    CD: 001 11100 L: b'WELL-NAME' C: 1 R: 20 (ASCII) U: b'' V: None
    CD: 001 11100 L: b'FIELD-NAME' C: 1 R: 20 (ASCII) U: b'' V: None
    CD: 001 11100 L: b'PRODUCER-CODE' C: 1 R: 16 (UNORM) U: b'' V: None
    CD: 001 11100 L: b'PRODUCER-NAME' C: 1 R: 20 (ASCII) U: b'' V: None
    CD: 001 11100 L: b'COMPANY' C: 1 R: 20 (ASCII) U: b'' V: None
    CD: 001 11100 L: b'NAME-SPACE-NAME' C: 1 R: 19 (IDENT) U: b'' V: None
    CD: 001 11100 L: b'NAME-SPACE-VERSION' C: 1 R: 18 (UVARI) U: b'' V: None
  Objects [1]:
    OBNAME: O: 2 C: 0 I: b'DLIS_DEFINING_ORIGIN'
      CD: 001 00001 L: b'FILE-ID' C: 1 R: 20 (ASCII) U: b'' V: [b'MSCT_197LTP                                                      ']
      CD: 001 00001 L: b'FILE-SET-NAME' C: 1 R: 19 (IDENT) U: b'' V: [b'FAROE_PETROLEUM/206_05A-3']
      CD: 001 00001 L: b'FILE-SET-NUMBER' C: 1 R: 18 (UVARI) U: b'' V: [41]
      CD: 001 00001 L: b'FILE-NUMBER' C: 1 R: 18 (UVARI) U: b'' V: [167]
      CD: 001 00001 L: b'FILE-TYPE' C: 1 R: 19 (IDENT) U: b'' V: [b'STATION LOG']
      CD: 001 00001 L: b'PRODUCT' C: 1 R: 20 (ASCII) U: b'' V: [b'OP']
      CD: 001 00001 L: b'VERSION' C: 1 R: 20 (ASCII) U: b'' V: [b'19C0-187']
      CD: 001 01001 L: b'PROGRAMS' C: 4 R: 20 (ASCII) U: b'' V: [b'MSCT: Mechanical Sidewall Coring Tool', b'SGTP: Scintillation Gamma-Ray - P', b'LEHQT: Logging Equipment Head - QT', b'WELLCAD: WellCAD file generator']
      CD: 001 00001 L: b'CREATION-TIME' C: 1 R: 21 (DTIME) U: b'' V: [<<class 'TotalDepth.RP66V1.core.RepCode.DateTime'> 2011-08-20 22:48:50.000 DST>]
      CD: 001 00001 L: b'ORDER-NUMBER' C: 1 R: 20 (ASCII) U: b'' V: [b'BSAX-00003                                                                                                                     ']
      CD: 001 00001 L: b'DESCENT-NUMBER' C: 1 R: 19 (IDENT) U: b'' V: [b'-1']
      CD: 001 00001 L: b'RUN-NUMBER' C: 1 R: 19 (IDENT) U: b'' V: [b'1']
      CD: 001 00001 L: b'WELL-ID' C: 1 R: 20 (ASCII) U: b'' V: [b'                                                                                                                               ']
      CD: 001 00001 L: b'WELL-NAME' C: 1 R: 20 (ASCII) U: b'' V: [b'206/05a-3                                                                                                                      ']
      CD: 001 00001 L: b'FIELD-NAME' C: 1 R: 20 (ASCII) U: b'' V: [b'Fulla                                                                                                                          ']
      CD: 001 00001 L: b'PRODUCER-CODE' C: 1 R: 16 (UNORM) U: b'' V: [440]
      CD: 001 00001 L: b'PRODUCER-NAME' C: 1 R: 20 (ASCII) U: b'' V: [b'Schlumberger']
      CD: 001 00001 L: b'COMPANY' C: 1 R: 20 (ASCII) U: b'' V: [b'Faroe Petroleum                                                                                                                ']
      CD: 001 00001 L: b'NAME-SPACE-NAME' C: 1 R: 19 (IDENT) U: b'' V: [b'SLB']
      CD: 000 00000 L: b'NAME-SPACE-VERSION' C: 1 R: 18 (UVARI) U: b'' V: None
---------------------------------------- END EFLR [1/19] at VR: 0x00000050 LRSH: 0x000000d0 ----------------------------------------
... Many EFLRs later ...
--------------------------------------- END EFLR [18/19] at VR: 0x0001204c LRSH: 0x00013014 ----------------------------------------
------------------------------------------------------------- Log Pass -------------------------------------------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Frame Array [0/2] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FrameArray: ID: OBNAME: O: 2 C: 0 I: b'2000T' b''
  FrameChannel: OBNAME: O: 2 C: 4 I: b'TIME'            Rc:   2 Co:    1 Un: b'ms'        Di: [1] b'1 second River Time'
  FrameChannel: OBNAME: O: 2 C: 4 I: b'TDEP'            Rc:   2 Co:    1 Un: b'0.1 in'    Di: [1] b'1 second River Depth'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'TENS_SL'         Rc:   2 Co:    1 Un: b'lbf'       Di: [1] b'Cable Tension'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'DEPT_SL'         Rc:   2 Co:    1 Un: b'0.1 in'    Di: [1] b'Station logging depth'
X Axis summary (all IFLRs):
Min: 16677259.0 Max: 17597260.0 [b'ms'] Count: 921
X Axis spacing summary:
Min: 1000.0 Max: 1001.0 Mean: 1000.0010869565217 Median: 1000.0
   Normal: 920
Duplicate: 0
  Skipped: 0
     Back: 0
Spacing histogram
     Value [   N]: Relative Frequency
  1000.000 [ 919]: ********************************************************************************
  1000.100 [   0]:
  1000.200 [   0]:
  1000.300 [   0]:
  1000.400 [   0]:
  1000.500 [   0]:
  1000.600 [   0]:
  1000.700 [   0]:
  1000.800 [   0]:
  1000.900 [   1]:
Frames [921] from: 16677259.000 to 17597260.000 Interval: 1000.000 b'ms'
Frame spacing: <Slice on length=921 start=0 stop=921 step=1> number of frames: 921 numpy size: 14,736 bytes
Channel   Size   Absent            Min           Mean     Std.Dev.            Max       Units     dtype
-------   ----   ------   ------------   ------------   ----------   ------------   ---------   -------
   TIME    921        0   16677259.000   17137260.404   265869.810   17597260.000       b'ms'   float32
   TDEP    921        0     852606.000     872468.708    17513.899     893302.000   b'0.1 in'   float32
TENS_SL    921        0       1825.000       2145.789      198.506       2594.000      b'lbf'   float32
DEPT_SL    921        0     852606.000     872467.735    17513.909     893303.000   b'0.1 in'   float32

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END Frame Array [0/2] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Frame Array [1/2] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FrameArray: ID: OBNAME: O: 2 C: 0 I: b'800T' b''
  FrameChannel: OBNAME: O: 2 C: 5 I: b'TIME'            Rc:   2 Co:    1 Un: b'ms'        Di: [1] b'400 milli-second time channel'
  FrameChannel: OBNAME: O: 2 C: 5 I: b'TDEP'            Rc:   2 Co:    1 Un: b'0.1 in'    Di: [1] b'MSCT depth channel'
  FrameChannel: OBNAME: O: 2 C: 1 I: b'ETIM'            Rc:   2 Co:    1 Un: b's'         Di: [1] b'Elapsed Logging Time'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'LMVL'            Rc:   2 Co:    1 Un: b'V'         Di: [1] b'Lower Motor Voltage Limit'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'UMVL'            Rc:   2 Co:    1 Un: b'V'         Di: [1] b'Upper Motor Voltage Limit'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'CFLA'            Rc:   2 Co:    1 Un: b' '         Di: [1] b'Coring Flag'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'OCD'             Rc:   2 Co:    1 Un: b'ft'        Di: [1] b'Observed Core Depth'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'RCMD'            Rc:   2 Co:    1 Un: b'V'         Di: [1] b'Raw Coring Motor Downhole Voltage'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'RCPP'            Rc:   2 Co:    1 Un: b'in'        Di: [1] b'Raw Kinematics Piston Position'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'CMRT'            Rc:   2 Co:    1 Un: b'h'         Di: [1] b'Coring Motor Run Time'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'RCNU'            Rc:   2 Co:    1 Un: b' '         Di: [1] b'Raw Core Number'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'DCFL'            Rc:   2 Co:    1 Un: b' '         Di: [1] b'Down Command Flag'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'DFS'             Rc:   2 Co:    1 Un: b' '         Di: [1] b'Data Full Scale'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'DZER'            Rc:   2 Co:    1 Un: b' '         Di: [1] b'Data Zero'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'RHMD'            Rc:   2 Co:    1 Un: b'V'         Di: [1] b'Raw Hydraulic Motor Downhole Voltage'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'HMRT'            Rc:   2 Co:    1 Un: b'h'         Di: [1] b'Hydraulic Motor Run Time'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'RHV'             Rc:   2 Co:    1 Un: b'V'         Di: [1] b'Raw Head Voltage'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'RLSW'            Rc:   2 Co:    1 Un: b' '         Di: [1] b'Raw Limit Switch'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'MNU'             Rc:   2 Co:    1 Un: b' '         Di: [1] b'Marker Number'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'S1CY'            Rc:   2 Co:    1 Un: b' '         Di: [1] b'Solenoid 1 Cycles'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'S2CY'            Rc:   2 Co:    1 Un: b' '         Di: [1] b'Solenoid 2 Cycles'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'RSCU'            Rc:   2 Co:    1 Un: b' '         Di: [1] b'Raw Solenoid Current'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'RSTS'            Rc:   2 Co:    1 Un: b' '         Di: [1] b'Raw Solenoid Status'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'UCFL'            Rc:   2 Co:    1 Un: b' '         Di: [1] b'Up Command Flag'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'CARC'            Rc:   2 Co:    1 Un: b'mA'        Di: [1] b'Cartridge Current'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'CMDV'            Rc:   2 Co:    1 Un: b'V'         Di: [1] b'Coring Motor Downhole Voltage'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'CMPP'            Rc:   2 Co:    1 Un: b'in'        Di: [1] b'Kinematics Piston Position'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'CNU'             Rc:   2 Co:    1 Un: b' '         Di: [1] b'Core Number'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'HMDV'            Rc:   2 Co:    1 Un: b'V'         Di: [1] b'Hydraulic Motor Downhole Voltage'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'HV'              Rc:   2 Co:    1 Un: b'V'         Di: [1] b'Head Voltage'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'LSWI'            Rc:   2 Co:    1 Un: b' '         Di: [1] b'Limit Switch'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'SCUR'            Rc:   2 Co:    1 Un: b' '         Di: [1] b'Solenoid Current'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'SSTA'            Rc:   2 Co:    1 Un: b' '         Di: [1] b'Solenoid Status'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'RCMP'            Rc:   2 Co:    1 Un: b'psi'       Di: [1] b'Raw Coring Motor Pressure'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'RHPP'            Rc:   2 Co:    1 Un: b'psi'       Di: [1] b'Raw Hydraulic Pump Pressure'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'RRPP'            Rc:   2 Co:    1 Un: b'psi'       Di: [1] b'Raw Kinematics Pressure'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'CMPR'            Rc:   2 Co:    1 Un: b'psi'       Di: [1] b'Coring Motor Pressure'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'HPPR'            Rc:   2 Co:    1 Un: b'psi'       Di: [1] b'Hydraulic Pump Pressure'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'RPPV'            Rc:   2 Co:    1 Un: b'psi'       Di: [1] b'Kinematics Pressure'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'SMSC'            Rc:  14 Co:    1 Un: b' '         Di: [1] b'MSCT Status Word'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'CMCU'            Rc:   2 Co:    1 Un: b'mA'        Di: [1] b'Coring Motor Current'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'HMCU'            Rc:   2 Co:    1 Un: b'mA'        Di: [1] b'Hydrailic Motor Current'
  FrameChannel: OBNAME: O: 2 C: 0 I: b'CMLP'            Rc:   2 Co:    1 Un: b'in'        Di: [1] b'Coring Motor Linear Position'
X Axis summary (all IFLRs):
Min: 16677259.0 Max: 17597260.0 [b'ms'] Count: 2301
X Axis spacing summary:
Min: 400.0 Max: 401.0 Mean: 400.0004347826087 Median: 400.0
   Normal: 2300
Duplicate: 0
  Skipped: 0
     Back: 0
Spacing histogram
     Value [    N]: Relative Frequency
   400.000 [ 2299]: ********************************************************************************
   400.100 [    0]:
   400.200 [    0]:
   400.300 [    0]:
   400.400 [    0]:
   400.500 [    0]:
   400.600 [    0]:
   400.700 [    0]:
   400.800 [    0]:
   400.900 [    1]:
Frames [2301] from: 16677259.000 to 17597260.000 Interval: 400.000 b'ms'
Frame spacing: <Slice on length=2301 start=0 stop=2301 step=1> number of frames: 2301 numpy size: 395,772 bytes
Channel   Size   Absent            Min           Mean     Std.Dev.            Max       Units     dtype
-------   ----   ------   ------------   ------------   ----------   ------------   ---------   -------
   TIME   2301        0   16677259.000   17137261.698   265696.737   17597260.000       b'ms'   float32
   TDEP   2301        0     852606.000     872468.805    17512.407     893304.000   b'0.1 in'   float32
   ETIM   2301        0          0.000        460.001      265.697        920.001        b's'   float32
   LMVL   2301        0        585.000        585.000        0.000        585.000        b'V'   float32
   UMVL   2301        0        635.000        635.000        0.000        635.000        b'V'   float32
   CFLA   2301        0          0.000         13.361        5.757         18.000        b' '   float32
    OCD   2301        0       6789.050       7153.751      165.517       7433.008       b'ft'   float32
   RCMD   2301        0          0.000        191.060      305.260        704.275        b'V'   float32
   RCPP   2301        0          0.443          0.853        0.649          2.598       b'in'   float32
   CMRT   2301        0          0.637          0.676        0.018          0.708        b'h'   float32
   RCNU   2301        0         20.000         20.756        0.532         22.000        b' '   float32
   DCFL   2301        0          0.000          1.229       12.818        143.000        b' '   float32
    DFS   2301        0        209.000        209.464        0.499        210.000        b' '   float32
   DZER   2301        0          0.000          0.002        0.042          1.000        b' '   float32
   RHMD   2301        0          0.000        345.934      320.677        674.725        b'V'   float32
   HMRT   2301        0          1.490          1.563        0.032          1.628        b'h'   float32
    RHV   2301        0        142.319        151.464        1.880        159.428        b'V'   float32
   RLSW   2301        0          0.000          0.377        0.485          1.000        b' '   float32
    MNU   2301        0         24.000         24.757        0.533         26.000        b' '   float32
   S1CY   2301        0         24.000         25.240        0.479         26.000        b' '   float32
   S2CY   2301        0         27.000         28.939        0.788         30.000        b' '   float32
   RSCU   2301        0         21.000         74.272       62.645        174.000        b' '   float32
   RSTS   2301        0          0.000          0.707        0.882          2.000        b' '   float32
   UCFL   2301        0        128.000        132.961        6.559        143.000        b' '   float32
   CARC   2301        0        178.238        201.121       12.822        211.238       b'mA'   float32
   CMDV   2301        0          0.000        191.060      305.260        704.275        b'V'   float32
   CMPP   2301        0         -0.004          0.407        0.651          2.158       b'in'   float32
    CNU   2301        0         20.000         20.756        0.532         22.000        b' '   float32
   HMDV   2301        0          0.000        345.934      320.677        674.725        b'V'   float32
     HV   2301        0        142.319        151.464        1.880        159.428        b'V'   float32
   LSWI   2301        0          0.000          0.377        0.485          1.000        b' '   float32
   SCUR   2301        0         21.000         74.272       62.645        174.000        b' '   float32
   SSTA   2301        0          0.000          0.707        0.882          2.000        b' '   float32
   RCMP   2301        0         14.696        149.036      215.905        574.505      b'psi'   float32
   RHPP   2301        0         14.696       1427.014     1451.455       4201.299      b'psi'   float32
   RRPP   2301        0         14.696       1434.264     1145.652       4009.911      b'psi'   float32
   CMPR   2301        0         14.696        149.036      215.905        574.505      b'psi'   float32
   HPPR   2301        0         14.696       1427.014     1451.455       4201.299      b'psi'   float32
   RPPV   2301        0         14.696       1434.264     1145.652       4009.911      b'psi'   float32
   SMSC   2301        0            192        212.597       27.112            254        b' '     int32
   CMCU   2301        0        -53.000       1059.832     1610.049       8295.000       b'mA'   float32
   HMCU   2301        0         10.000        339.616      302.494        747.125       b'mA'   float32
   CMLP   2301        0         -0.927         -0.296        1.043          2.891       b'in'   float32

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ END Frame Array [1/2] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
----------------------------------------------------------- END Log Pass -----------------------------------------------------------
====================================================== END Logical File [0/1] ======================================================
*************************************************** END RP66V1 File Data Summary ***************************************************
         540,372         -1    0.750  -0.000%   1456.0 False "example_data/RP66V1/206_05a-_3_DWL_DWL_WIRE_258276498.DLIS"
Execution time =    0.751 (S)
Processed 1 files and 540,372 bytes, 1456.5 ms/Mb