las2witsml 0.1.3 → 0.1.4

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.
data/lib/uom.rb ADDED
@@ -0,0 +1,32 @@
1
+ require 'rubygems'
2
+ require 'json'
3
+
4
+ class Uom
5
+
6
+ def initialize(path=nil)
7
+ if !path then
8
+ path = Uom::default_uom_file
9
+ end
10
+ @uom_map = load_uom_map path
11
+ end
12
+
13
+ def translate (in_uom)
14
+ @uom_map[in_uom.downcase]
15
+ end
16
+
17
+ def self.default_uom_file
18
+ File.expand_path(File.dirname(__FILE__) + "/uom.json")
19
+ end
20
+
21
+ private
22
+ def load_uom_map path
23
+ JSON.parse( File.open( path, 'r') { |f| f.read })
24
+ end
25
+
26
+ def get_uom_map
27
+ if @@uom_map == Nil then
28
+
29
+ end
30
+ end
31
+ end
32
+
data/lib/witsml_file.rb CHANGED
@@ -1,180 +1,19 @@
1
1
  #require 'las_file'
2
2
  require 'time'
3
3
  require 'tempfile'
4
+ require 'uom'
4
5
 
5
6
  class WitsmlFile
6
7
  class UnrecognizedUnitException < Exception
7
8
  end
8
9
 
9
- UNITS = {'ft'=>'ft',
10
- 'klbs'=>'klbf',
11
- 'PSI'=>'psi',
12
- 'SPM'=>'1Pmin',
13
- 'RPM'=>'revPmin',
14
- 'UNITS'=>'ftTlbf',
15
- 'ft/hr'=>'ftPh' ,
16
- 'percent'=>'%',
17
- 'bbl'=>'bbl' ,
18
- 'ton-miles'=>'tonfUSTmi',
19
- 'strokes'=>'unitless',
20
- 'GPM'=>'galUSPmin' ,
21
- 'hrs'=>'h' ,
22
- 'amps'=>'A' ,
23
- 'ppm'=>'ppm',
24
- 'barrels'=>'bbl',
25
- 'ft/min'=>'ftPmin',
26
- 'ksi'=>'kpsi',
27
- 'cm'=>'cm',
28
- 'ft per hour'=>'ftPh',
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
- }
170
-
171
- def initialize(out, witsml_version = 1410)
10
+ def initialize(out, witsml_version = 1410, uom_file = nil)
172
11
  @indent = 0
173
12
  @out = out
174
13
  @witsml_version = witsml_version
14
+ @uom = Uom.new uom_file
175
15
  end
176
16
 
177
-
178
17
  def digest_las(las_file)
179
18
  #pre chew the las
180
19
 
@@ -447,8 +286,6 @@ class WitsmlFile
447
286
  # see https://svn.wellstorm.com/projects/wsp/ticket/274#comment:3
448
287
 
449
288
  return las_unit if !las_unit
450
-
451
- map_las_to_witsml_units = UNITS
452
289
 
453
290
  # just a few random ones from CWLS web site:
454
291
  # RHOB .K/M3 45 350 02 00 : 2 BULK DENSITY
@@ -459,7 +296,7 @@ class WitsmlFile
459
296
  #CALI .MM 45 280 01 00 : 10 CALIPER
460
297
  #DRHO .K/M3 45 356 01 00 : 11 DENSITY CORRECTION
461
298
 
462
- retval = map_las_to_witsml_units[las_unit.downcase]
299
+ retval = @uom.translate las_unit
463
300
  if !retval
464
301
  raise UnrecognizedUnitException, las_unit
465
302
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: las2witsml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hugh Winkler
@@ -9,7 +9,21 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2013-10-01 00:00:00.000000000 Z
12
- dependencies: []
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  description: A command line tool and a library for converting Log ASCII Standard (LAS)
14
28
  files to WITSML <log> objects.
15
29
  email: hugh.winkler@drillinginfo.com
@@ -23,6 +37,8 @@ files:
23
37
  - lib/las2witsml.rb
24
38
  - lib/las_file.rb
25
39
  - lib/witsml_file.rb
40
+ - lib/uom.rb
41
+ - lib/uom.json
26
42
  - bin/las2witsml
27
43
  homepage: https://github.com/wellstorm/las2witsml/
28
44
  licenses: