LAS Command Line Tools¶
This describes the command line tools that are available for processing LAS files.
Tool Name | Description |
---|---|
tdlastohtml |
Generates a HTML page(s) about LAS file(s). Link |
tdlasreadlasfiles |
Summarises LAS file(s). Link |
Summarise LAS Files in HTML with tdlastohtml
¶
Generates HTML from input LAS file or directory to an output destination.
Arguments¶
- The path to the input LAS file or directory.
- The path to the output file or directory, any directories will be created as necessary.
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. -g, --glob File match pattern. Default: None.
Examples¶
Command to process a directory of LAS:
$ tdlastohtml example_data/LAS/data/ example_data/LAS/HTML/
Output:
$ tdlastohtml example_data/LAS/data/ example_data/LAS/HTML/
Cmd: /Users/paulross/pyenvs/TotalDepth_3.8_v0.3/bin/tdlastohtml example_data/LAS/data/ example_data/LAS/HTML/
gnuplot version: "b'gnuplot 5.4 patchlevel 1'"
2021-02-06 11:13:20,527 - LASToHTML.py - 440 - 41351 - (MainThread) - INFO - scan_dir_or_file(): "example_data/LAS/data" to "example_data/LAS/HTML" recurse: False
2021-02-06 11:13:20,529 - LASToHTML.py - 351 - 41351 - (MainThread) - INFO - Scanning file type "ASCII" from "example_data/LAS/data/.DS_Store" to "example_data/LAS/HTML/.DS_Store.html"
2021-02-06 11:13:20,530 - LASToHTML.py - 351 - 41351 - (MainThread) - INFO - Scanning file type "LAS2.0" from "example_data/LAS/data/1000079714.las" to "example_data/LAS/HTML/1000079714.las.html"
2021-02-06 11:13:20,530 - LASToHTML.py - 353 - 41351 - (MainThread) - INFO - scan_a_single_file(): "example_data/LAS/data/1000079714.las" to "example_data/LAS/HTML/1000079714.las.html"
2021-02-06 11:13:20,614 - LASToHTML.py - 351 - 41351 - (MainThread) - INFO - Scanning file type "LAS2.0" from "example_data/LAS/data/206_05a-_3_DWL_DWL_WIRE_258276498_0_2000T.las" to "example_data/LAS/HTML/206_05a-_3_DWL_DWL_WIRE_258276498_0_2000T.las.html"
2021-02-06 11:13:20,614 - LASToHTML.py - 353 - 41351 - (MainThread) - INFO - scan_a_single_file(): "example_data/LAS/data/206_05a-_3_DWL_DWL_WIRE_258276498_0_2000T.las" to "example_data/LAS/HTML/206_05a-_3_DWL_DWL_WIRE_258276498_0_2000T.las.html"
2021-02-06 11:13:20,679 - LASToHTML.py - 351 - 41351 - (MainThread) - INFO - Scanning file type "LAS2.0" from "example_data/LAS/data/BASIC_FILE_0_50.las" to "example_data/LAS/HTML/BASIC_FILE_0_50.las.html"
2021-02-06 11:13:20,680 - LASToHTML.py - 353 - 41351 - (MainThread) - INFO - scan_a_single_file(): "example_data/LAS/data/BASIC_FILE_0_50.las" to "example_data/LAS/HTML/BASIC_FILE_0_50.las.html"
2021-02-06 11:13:20,724 - LASToHTML.py - 382 - 41351 - (MainThread) - INFO - _write_indexes(): result map size 4
2021-02-06 11:13:20,725 - ToHTML.py - 207 - 41351 - (MainThread) - INFO - Opening index file at /Users/paulross/PycharmProjects/TotalDepth/example_data/LAS/HTML/index.html
2021-02-06 11:13:20,730 - ToHTML.py - 240 - 41351 - (MainThread) - INFO - Completed index file at /Users/paulross/PycharmProjects/TotalDepth/example_data/LAS/HTML/index.html
2021-02-06 11:13:20,730 - LASToHTML.py - 399 - 41351 - (MainThread) - INFO - Wrote indexes: ['/Users/paulross/PycharmProjects/TotalDepth/example_data/LAS/HTML/index.html']
Common path: example_data/LAS/data
Size In Size Out Time Ratio % ms/Mb Fail? Path
---------------- ---------- -------- -------- -------- ----- ----
6,148 0 0.000 0.000% 0.0 False ".DS_Store"
80,697 12,892 0.083 15.976% 1078.0 False "1000079714.las"
87,448 53,444 0.065 61.115% 779.8 False "206_05a-_3_DWL_DWL_WIRE_258276498_0_2000T.las"
62,494 26,021 0.044 41.638% 736.1 False "BASIC_FILE_0_50.las"
Processed 4 files and 236,787 bytes in 0.203 s, 900.0 ms/Mb
Bye, bye!
For each file the output lists:
- Input file.
- Output HTML file.
- File size.
- Execution time.
In the output directory there will be an index.html file which has the columns:
Path File Type Sections Channels Frames STRT STOP STEP Size Time
- The name of the LAS file.
- LAS file type.
- Number of sections.
- Recorded channels.
- Number of data frames.
- Start of log pass.
- End of log pass.
- Frame step.
- The size of the LAS file.
- Execution time.
In the linked HTML file is a summary of the content of the LAS file.
Summarise LAS Files with tdlasreadlasfiles
¶
Reads an input LAS file or directory and summarises it by showing mnemonics, curves and well site data.
Arguments¶
- The path to the input LAS file or directory.
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] --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. -m, --mnemonic Output Mnemonic map. Default: False. -c, --curve Output Curve map. Default: False. -u, --unit Output Units map. Default: False. -w, --wsd Output Well Site Data map. Default: False. -p, --param Output Parameter section mnemonics and their most popular description and a map of themnemonic frequency. Default: False. -s, --size-time Output parser’s size vs time performance. Default: False. -a, --all Output all, equivalent to -mcuwps. Default: False.
Examples¶
Listing Menmonics¶
Use the -m
option to summarise the menmonics and their descriptions:
$ tdlasreadlasfiles example_data/LAS/data/ -m
Cmd: /Users/paulross/pyenvs/TotalDepth_3.8_v0.3/bin/tdlasreadlasfiles example_data/LAS/data/ -m
gnuplot version: "b'gnuplot 5.4 patchlevel 1'"
----------- All mnemonics and their (most popular) description -----------
{
"ALTDPCHAN" : "Name Of Alternate Depth Channel ", # Out of 1
"AMD" : "Azimuth Of Maximum Deviation ", # Out of 1
"AOFF" : "Alphanumeric To Film Flag ", # Out of 1
"APD" : "Depth Above Pd ", # Out of 2
"API" : " ", # Out of 2
"APIN" : "Api S/N ", # Out of 2
"BG" : "Gas Formation Volume Factor, Bg ", # Out of 1
"BHS" : "Borehole Status ", # Out of 1
"BHT" : "Bottom Hole Temperature (Used In Calculations) ", # Out of 1
"BLI" : "Bottom Log Interval ", # Out of 1
"BO" : "Oil Formation Volume Factor, Bo ", # Out of 1
"BPP" : "Bubble Point Pressure ", # Out of 1
...
Listing Curves¶
Use the -c
option to summarise the curves and their descriptions:
$ tdlasreadlasfiles example_data/LAS/data/ -c
Cmd: /Users/paulross/pyenvs/TotalDepth_3.8_v0.3/bin/tdlasreadlasfiles example_data/LAS/data/ -c
gnuplot version: "b'gnuplot 5.4 patchlevel 1'"
--------- All Curve mnemonics and their (most popular) description --------
{
"DEPT" : "Depth Curve ", # Out of 2
"DEPT_SL" : "Station Logging Depth Dimensions (1,) ", # Out of 1
"DHTN" : "Dhtn/Ch Tension Dimensions (1,) ", # Out of 1
"ETIM" : "Etim/Elapsed Time Dimensions (1,) ", # Out of 1
"GR" : "Gamma Ray ", # Out of 2
"TDEP" : "Second River Depth Dimensions (1,) ", # Out of 1
"TENS" : "Tens/Tension Dimensions (1,) ", # Out of 1
"TENS_SL" : "Cable Tension Dimensions (1,) ", # Out of 1
"TIME" : "Second River Time Dimensions (1,) ", # Out of 1
}
------ DONE: All Curve mnemonics and their (most popular) description -----
Listing Units¶
Use the -u
option to summarise the channels and their units:
$ tdlasreadlasfiles example_data/LAS/data/ -u
Cmd: /Users/paulross/pyenvs/TotalDepth_3.8_v0.3/bin/tdlasreadlasfiles example_data/LAS/data/ -u
gnuplot version: "b'gnuplot 5.4 patchlevel 1'"
------------------------- Channels and their Units ------------------------
{
"DEPT" : "Counter({'F': 1, 'm': 1})",
"DEPT_SL" : "Counter({'0.1': 1})",
"DHTN" : "Counter({'lbs': 1})",
"ETIM" : "Counter({'min': 1})",
"GR" : "Counter({'GAPI': 1, 'api': 1})",
"TDEP" : "Counter({'0.1': 1})",
"TENS" : "Counter({'lbs': 1})",
"TENS_SL" : "Counter({'lbf': 1})",
"TIME" : "Counter({'ms': 1})",
}
---------------------- DONE: Channels and their Units ---------------------
Listing Well Site Data¶
Use the -w
option to summarise the well site data and its frequency:
$ tdlasreadlasfiles example_data/LAS/data/ -w
Cmd: /Users/paulross/pyenvs/TotalDepth_3.8_v0.3/bin/tdlasreadlasfiles example_data/LAS/data/ -w
gnuplot version: "b'gnuplot 5.4 patchlevel 1'"
------ Count of well site mnemonics and the % of files that have them -----
{
"API" : "" , # 3 100.00%
"CNTY" : "" , # 2 66.67%
"COMP" : "" , # 3 100.00%
"CORN" : "Reference Section Corner For Footage" , # 1 33.33%
"COUN" : "County" , # 1 33.33%
"CTRY" : "" , # 2 66.67%
"DATE" : "" , # 3 100.00%
"FLD" : "" , # 3 100.00%
"FTE" : "Feet East From Reference Section Corner" , # 1 33.33%
"FTN" : "Feet North From Reference Section Corner" , # 1 33.33%
"LAT" : "Latitude North (Kgs,Leo3.6)" , # 1 33.33%
"LEAS" : "Lease Name" , # 1 33.33%
"LOC" : "" , # 3 100.00%
"LON" : "Longitude West (Kgs, Leo3.6)" , # 1 33.33%
"NULL" : "" , # 3 100.00%
"PM" : "Principal Meridian" , # 1 33.33%
"PROV" : "" , # 2 66.67%
"RANG" : "Range" , # 1 33.33%
"SECT" : "Section" , # 1 33.33%
"SPOT" : "Spot Location" , # 1 33.33%
"SRVC" : "" , # 2 66.67%
"STAT" : "State Name" , # 3 100.00%
"STEP" : "Step (Average)" , # 3 100.00%
"STOP" : "Stop Depth" , # 3 100.00%
"STRT" : "Start X" , # 3 100.00%
"TOWN" : "Township" , # 1 33.33%
"UWI" : "" , # 2 66.67%
"WELL" : "" , # 3 100.00%
}
--- DONE: Count of well site mnemonics and the % of files that have them --