las2witsml 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README +1 -0
- data/bin/las2witsml +2 -2
- data/lib/las2witsml.rb +2 -2
- data/lib/witsml_file.rb +155 -12
- metadata +10 -11
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 09ea75f49badbc88280d2f30fead9d79f72608ba
|
4
|
+
data.tar.gz: 82fb0037e00a6eba96c42e7527c2ebe08d34f2a9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7e6d047acca3261b8f80f435d4121569c91814aa2105b85adb503f7206250d4189f272d4fc9a9b2b5f71bf8745f3957129559698bd2b5c23f24bd15781c3b8ef
|
7
|
+
data.tar.gz: ba07877b74d7fafd512e1e75544ae662e19ff086b5025946f73e4fe78dbc18772c8609b3aa136362d2375aaf8e433b0eeb118c7739d4b161209cf6250f565737
|
data/README
CHANGED
data/bin/las2witsml
CHANGED
@@ -72,8 +72,8 @@ ARGV.each do|a|
|
|
72
72
|
version = 1410
|
73
73
|
end
|
74
74
|
begin
|
75
|
-
l2w.run infile, outfile, options[:uw] || "", options[:uwb] || "", options[:ul] || "", options[:name] || 'Untitled', version, options[:v] != false
|
76
|
-
0
|
75
|
+
succeed = l2w.run infile, outfile, options[:uw] || "", options[:uwb] || "", options[:ul] || "", options[:name] || 'Untitled', version, options[:v] != false
|
76
|
+
succeed ? 0 : 1
|
77
77
|
rescue => e
|
78
78
|
$stderr.puts e.backtrace
|
79
79
|
1
|
data/lib/las2witsml.rb
CHANGED
data/lib/witsml_file.rb
CHANGED
@@ -3,6 +3,8 @@ require 'time'
|
|
3
3
|
require 'tempfile'
|
4
4
|
|
5
5
|
class WitsmlFile
|
6
|
+
class UnrecognizedUnitException < Exception
|
7
|
+
end
|
6
8
|
|
7
9
|
UNITS = {'ft'=>'ft',
|
8
10
|
'klbs'=>'klbf',
|
@@ -24,7 +26,147 @@ class WitsmlFile
|
|
24
26
|
'ksi'=>'kpsi',
|
25
27
|
'cm'=>'cm',
|
26
28
|
'ft per hour'=>'ftPh',
|
27
|
-
'min/ft'=>'minPft'
|
29
|
+
'min/ft'=>'minPft',
|
30
|
+
|
31
|
+
'KG' => 'kg',
|
32
|
+
'M' => 'm',
|
33
|
+
'F' => 'ft',
|
34
|
+
'FT' => 'ft',
|
35
|
+
'f' => 'ft',
|
36
|
+
'GAPI' => 'gAPI',
|
37
|
+
'GAPI' => 'gAPI',
|
38
|
+
'ohmm' => 'ohm.m',
|
39
|
+
'OHMM' => 'ohm.m',
|
40
|
+
'API' => 'gAPI',
|
41
|
+
'api' => 'gAPI',
|
42
|
+
'DEGC' => 'degC',
|
43
|
+
'M3' => 'm3',
|
44
|
+
'PERC' => '%',
|
45
|
+
'MV' => 'mV',
|
46
|
+
'US' => 'us',
|
47
|
+
'US/M' => 'us/m',
|
48
|
+
'us/f' => 'us/ft',
|
49
|
+
'US/F' => 'us/ft',
|
50
|
+
'S/F' => 's/ft',
|
51
|
+
'IN' => 'in',
|
52
|
+
'B/E' => 'b/elec',
|
53
|
+
'LBF' => 'lbf',
|
54
|
+
'G/C3' => 'g/cm3',
|
55
|
+
'G/CM3' => 'g/cm3',
|
56
|
+
'NAPI' => 'nAPI',
|
57
|
+
'F3' => 'ft3',
|
58
|
+
'BARN' => 'b',
|
59
|
+
'F/S' => 'ft/s',
|
60
|
+
'DEC' => 'Euc',
|
61
|
+
'LBS' => 'lbf',
|
62
|
+
'lbs' => 'lbf',
|
63
|
+
'None' => 'Euc',
|
64
|
+
'PU' => '%',
|
65
|
+
'MM' => 'mm',
|
66
|
+
'LB' => 'lbf',
|
67
|
+
'KGM3' => 'kg/m3',
|
68
|
+
'K/M3' => 'kg/m3',
|
69
|
+
'KG/M3' => 'kg/m3',
|
70
|
+
'MS/M' => 'ms/m',
|
71
|
+
'FT/SEC.' => 'ft/s',
|
72
|
+
'FT/SEC' => 'ft/s',
|
73
|
+
'V/V' => 'Euc',
|
74
|
+
'CFCF' => 'Euc',
|
75
|
+
'ohm-m' => 'ohm.m',
|
76
|
+
'ohm.' => 'ohm.m',
|
77
|
+
'OHMS' => 'ohm.m',
|
78
|
+
'OHM-' => 'ohm.m',
|
79
|
+
'Ohmm' => 'ohm.m',
|
80
|
+
'F/HR' => 'ft/h',
|
81
|
+
'g/cc' => 'g/cm3',
|
82
|
+
'G/CC' => 'g/cm3',
|
83
|
+
'MD' => 'mD.ft',
|
84
|
+
'MMHO' => 'mmho/m',
|
85
|
+
'usec/ft' => 'us/ft',
|
86
|
+
'B/CC' => 'b/cm3',
|
87
|
+
'F/MN' => 'ft3/min.ft2',
|
88
|
+
'PSI' => 'psi',
|
89
|
+
'MSEC' => 'ms',
|
90
|
+
'Ft/s' => 'ft/s',
|
91
|
+
'ft/hr' => 'ft/h',
|
92
|
+
'MM/M' => 'mmho/m',
|
93
|
+
'gm/cc' => 'g/cm3',
|
94
|
+
'INCH' => 'in',
|
95
|
+
'USEC/M' => 'us/m',
|
96
|
+
'Inches' => 'in',
|
97
|
+
'F/M' => 'ft/min',
|
98
|
+
'Api' => 'gAPI',
|
99
|
+
'APi' => 'gAPI',
|
100
|
+
'Deci' => 'Euc',
|
101
|
+
'DECP' => 'Euc',
|
102
|
+
'decp' => 'Euc',
|
103
|
+
'percent' => '%',
|
104
|
+
'PERCENT' => '%',
|
105
|
+
'hrs' => 'h',
|
106
|
+
'RPM' => 'rpm',
|
107
|
+
'GPM' => 'galUS/min',
|
108
|
+
'amps' => 'A',
|
109
|
+
'BN/E' => 'b/elec',
|
110
|
+
'barrels' => 'bbl',
|
111
|
+
'APSI' => 'psia',
|
112
|
+
'PA' => 'Pa',
|
113
|
+
'PPM' => 'ppm',
|
114
|
+
'USEC/FT' => 'us/ft',
|
115
|
+
'USEC' => 'us',
|
116
|
+
'msec' => 'ms',
|
117
|
+
'GPA' => 'GPa',
|
118
|
+
'Ft' => 'ft',
|
119
|
+
'fT' => 'ft',
|
120
|
+
'KGM/M3S' => 'kg/m2.s',
|
121
|
+
'FRAC' => '%',
|
122
|
+
'FRACTION' => '%',
|
123
|
+
'fraction' => '%',
|
124
|
+
'v/v' => 'Euc',
|
125
|
+
'uspf' => 'us/ft',
|
126
|
+
'USFT' => 'us/ft',
|
127
|
+
'US/FT' => 'us/ft',
|
128
|
+
'FT/HR' => 'ft/h',
|
129
|
+
'FT/H' => 'ft/h',
|
130
|
+
'fph' => 'ft/h',
|
131
|
+
'FPM' => 'ft/m',
|
132
|
+
'FT3/FT3' => 'ft3/ft3',
|
133
|
+
'sec' => 's',
|
134
|
+
'usec' => 'us',
|
135
|
+
'INCHES' => 'in',
|
136
|
+
'inch' => 'in',
|
137
|
+
'HR' => 'h',
|
138
|
+
'DEGF' => 'degF',
|
139
|
+
'HZ' => 'Hz',
|
140
|
+
'KHZ' => 'kHz',
|
141
|
+
'none' => 'Euc',
|
142
|
+
'NONE' => 'Euc',
|
143
|
+
'unitless' => 'Euc',
|
144
|
+
'unitle' => 'Euc',
|
145
|
+
'dec' => 'Euc',
|
146
|
+
'PPK' => 'ppk',
|
147
|
+
'1/FT' => '1/ft',
|
148
|
+
'ft/sec' => 'ft/s',
|
149
|
+
'F/S2' => 'ft/s2',
|
150
|
+
'M/S2' => 'm/s2',
|
151
|
+
'OER' => 'Oe',
|
152
|
+
'MS' => 'ms',
|
153
|
+
'MMHO/M' => 'mmho/m',
|
154
|
+
'mmo/m' => 'mmho/m',
|
155
|
+
'MO/M' => 'mho/m',
|
156
|
+
'FT3' => 'ft3',
|
157
|
+
'AAPI' => 'gAPI',
|
158
|
+
'aapi' => 'gAPI',
|
159
|
+
'db/ft' => 'dB/ft',
|
160
|
+
'Gm/cc' => 'g/cm3',
|
161
|
+
'UA' => 'uA',
|
162
|
+
'MA' => 'mA',
|
163
|
+
'mv' => 'mV',
|
164
|
+
'LB/LB' => 'wtpercent',
|
165
|
+
'lbf/lbf' => 'wtpercent',
|
166
|
+
'gft/cm3s' => 'g.ft/cm3.s',
|
167
|
+
'usec/m' => 'us/m'
|
168
|
+
|
169
|
+
}
|
28
170
|
|
29
171
|
def initialize(out, witsml_version = 1410)
|
30
172
|
@indent = 0
|
@@ -95,7 +237,9 @@ class WitsmlFile
|
|
95
237
|
end
|
96
238
|
|
97
239
|
|
98
|
-
|
240
|
+
def not_empty s
|
241
|
+
s && s.length > 0
|
242
|
+
end
|
99
243
|
|
100
244
|
def from_las_file(las_file, uid_well='$UIDWELL', uid_wellbore='$UIDWELLBORE', uid='$UID', name='$NAME', verbose=false)
|
101
245
|
new_lcis, _, is_index_index, get_index = digest_las(las_file) #unused index_lci
|
@@ -115,7 +259,7 @@ class WitsmlFile
|
|
115
259
|
add_text_element 'nameWellbore', name
|
116
260
|
add_text_element 'name', name
|
117
261
|
#add_text_element 'dataRowCount', las_file.curve_values.length
|
118
|
-
add_text_element 'serviceCompany', las_file.service_company
|
262
|
+
add_text_element 'serviceCompany', las_file.service_company if not_empty(las_file.service_company)
|
119
263
|
add_text_element 'description', 'Created by Wellstorm LAS Import'
|
120
264
|
|
121
265
|
measured_depth_unit = normalize_unit(las_file.measured_depth_unit);
|
@@ -234,7 +378,7 @@ class WitsmlFile
|
|
234
378
|
def add_log_curve_info(las_lci, column_index, min_index, max_index, measured_depth_unit)
|
235
379
|
add_element('logCurveInfo', {'uid' => las_lci.mnemonic[0..63]}) do
|
236
380
|
add_text_element 'mnemonic', las_lci.mnemonic[0..31]
|
237
|
-
add_text_element 'unit',
|
381
|
+
add_text_element 'unit', normalize_unit(las_lci.unit) if las_lci.unit
|
238
382
|
|
239
383
|
if measured_depth_unit then
|
240
384
|
add_text_element 'minIndex', min_index, {'uom'=>measured_depth_unit} if min_index
|
@@ -247,6 +391,7 @@ class WitsmlFile
|
|
247
391
|
add_text_element 'columnIndex', column_index.to_s
|
248
392
|
end
|
249
393
|
add_text_element 'curveDescription',las_lci.description if las_lci.description && las_lci.description.length > 0
|
394
|
+
add_text_element 'typeLogData', 'float'
|
250
395
|
end
|
251
396
|
end
|
252
397
|
|
@@ -303,12 +448,7 @@ class WitsmlFile
|
|
303
448
|
|
304
449
|
return las_unit if !las_unit
|
305
450
|
|
306
|
-
map_las_to_witsml_units =
|
307
|
-
'f'=>'ft',
|
308
|
-
'feet'=>'ft',
|
309
|
-
'foot'=>'ft',
|
310
|
-
'meters'=>'m',
|
311
|
-
'meter'=>'m'}
|
451
|
+
map_las_to_witsml_units = UNITS
|
312
452
|
|
313
453
|
# just a few random ones from CWLS web site:
|
314
454
|
# RHOB .K/M3 45 350 02 00 : 2 BULK DENSITY
|
@@ -319,8 +459,11 @@ class WitsmlFile
|
|
319
459
|
#CALI .MM 45 280 01 00 : 10 CALIPER
|
320
460
|
#DRHO .K/M3 45 356 01 00 : 11 DENSITY CORRECTION
|
321
461
|
|
322
|
-
map_las_to_witsml_units[las_unit.downcase]
|
323
|
-
|
462
|
+
retval = map_las_to_witsml_units[las_unit.downcase]
|
463
|
+
if !retval
|
464
|
+
raise UnrecognizedUnitException, las_unit
|
465
|
+
end
|
466
|
+
retval
|
324
467
|
end
|
325
468
|
|
326
469
|
end
|
metadata
CHANGED
@@ -1,19 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: las2witsml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Hugh Winkler
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2013-10-01 00:00:00.000000000 Z
|
13
12
|
dependencies: []
|
14
13
|
description: A command line tool and a library for converting Log ASCII Standard (LAS)
|
15
14
|
files to WITSML <log> objects.
|
16
|
-
email: hugh.winkler@
|
15
|
+
email: hugh.winkler@drillinginfo.com
|
17
16
|
executables:
|
18
17
|
- las2witsml
|
19
18
|
extensions: []
|
@@ -26,27 +25,27 @@ files:
|
|
26
25
|
- lib/witsml_file.rb
|
27
26
|
- bin/las2witsml
|
28
27
|
homepage: https://github.com/wellstorm/las2witsml/
|
29
|
-
licenses:
|
28
|
+
licenses:
|
29
|
+
- Apache 2.0
|
30
|
+
metadata: {}
|
30
31
|
post_install_message:
|
31
32
|
rdoc_options: []
|
32
33
|
require_paths:
|
33
34
|
- lib
|
34
35
|
required_ruby_version: !ruby/object:Gem::Requirement
|
35
|
-
none: false
|
36
36
|
requirements:
|
37
|
-
- -
|
37
|
+
- - '>='
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: '0'
|
40
40
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
41
|
requirements:
|
43
|
-
- -
|
42
|
+
- - '>='
|
44
43
|
- !ruby/object:Gem::Version
|
45
44
|
version: '0'
|
46
45
|
requirements: []
|
47
46
|
rubyforge_project:
|
48
|
-
rubygems_version:
|
47
|
+
rubygems_version: 2.0.0
|
49
48
|
signing_key:
|
50
|
-
specification_version:
|
49
|
+
specification_version: 4
|
51
50
|
summary: Converts Log ASCII Standard (LAS) files to WITSML <log> objects.
|
52
51
|
test_files: []
|