Energistics Unit of Measure Draft Version 3.0a

Energistics Unit of Measure
Draft Version 3.0a
The associated spreadsheet is a draft specification that represents a unification of the “POSC Unit
dictionary, V2.2”, the “RP66 Unit Model”, the “POSC Quantity Class”, the “WITSML Measure Class” and
the “OpenSpirit Unit” specifications. All of these have roots in the Epicentre Data Model whose unit of
measure information was based on the SPE’s "The SI Metric System of Units and SPE METRIC
STANDARD". The information requirements of PPDM and the SEG will be an additional consideration in
the final results. Yet another consideration is to update the conversion information to account for the
increased accuracy available in modern 64 bit computers. The International System of Units, universally
abbreviated SI (from the French Le Système International d’Unités), will represent the underlying basis
for all of the results. This initial draft only addresses the SI subset. Other units will be addressed in later
drafts.
Scope
The goal is to support a wide variety of use cases for the upstream oil and gas Industry. As such, this is
not intended to be an all-inclusive definition of units for all domains.
Unit Symbols
A constrained variation of the RP66 unit model is being used for creating the unit symbols. A unit symbol
essentially represents a multiplier to be applied to the associated value. Any two symbols which are
composed of the same underlying concepts but result in the same multiplier do not represent additional
semantics. While the SI specifications define the elemental components and patterns to be used for
units of measure, a single combination for an underlying concept is not specified. This is also a
characteristic of the RP66 specification. In contrast, this specification will define a single symbol for each
supported concept. All other combinations will be considered to be aliases. This does not mean that an
implementation could not choose to support all combinations; however, a recommended practice
would be to use the aliases as a mechanism for mapping external information to a core set of unit
symbols.
Constraints
A key assumption is that the unit symbol is not attempting to capture detailed knowledge about how
the value was measured. For example, the concept of a “volume measured at standard conditions of
temperature and pressure” will not be part of this specification. Nor will concepts such as “atmospheric
pressure” or “gauge pressure”. Instead, these concepts must be part of the semantics of the specific
property or quantity that the value represents.
A minor exception to this is that some symbols may capture knowledge of the type of ratio involved in
the measurement. These ratio units are utilized within the context of specialized Quantity Classes.
However, this ratio of symbols should not be construed to represent the specific units that were used in
the original measurements. For example, “m/m” would not necessarily mean that the original
measurements were both in meters because they might have both been in centimeters (i.e., “cm/cm”
would be an alias for “m/m”).
Quantity Class
The Quantity Classes are used to organize unit symbols into a group where each symbol in the group is
an alternative multiplier for an underlying kind of quantity. Most Quantity Classes represent a unique
underlying dimensional concept (e.g., length, length per time, mass per length, etc) but dimensionless
ratios of quantities represent a particular problem. For example, a value that represents a ratio of
volumes cannot be semantically compared to a value that represents a ratio of masses or a ratio of
lengths. For this reason, the Quantity Classes strongly distinguish between these different dimensionless
concepts and some unit symbols have been created to represent those classes (e.g., “m/m” represents
the class of “length per length”).
The Quantity Class is essentially a superclass of the “kind of quantity” as defined by “International
vocabulary of metrology — Basic and general concepts and associated terms (VIM)” (JCGM 200:2008).
While some classes may have the same name as commonly recognized kinds, many have more abstract
names such as “volume per volume”. The primary purpose of a Quantity Class is to be used as a
constraint on the unit symbols allowed to be used with a value that represents a particular class. For
example, a property which has been categorized as a “volume” must not use a symbol that represents a
metre. Each unit symbol assigned to a class defines an alternative unit symbol that can be substituted
after a proper conversion of the value. Note that more than one Quantity Class may have the same
dimension. For example, the concepts of “moment of force” and “energy” are not regarded as being of
the same kind, although they have the same dimension.
Membership
A Membership worksheet defines which units represent a particular class. If a real world quantity
represents a particular quantity class then the only allowed units of measure for that quantity would be
the unit symbols in the membership list for that class. For example, if an XML element of “diameter” had
a type that represents the quantity class of “length” then the unit symbol “m” could be used for that
element but not “m3” because “m3” is not a member of the “length” class. An alias of a symbol would
also be representative of the class for which the symbol is a member.
Dimensional Class
The dimensional class of a quantity class or a unit symbol is used to characterize the underlying
concepts. The following nomenclature is used:
A = angle
(SI base unit = radian)
B = luminous intensity
(SI base unit = candela)
C = electrical current
(SI base unit = ampere)
K = thermodynamic temperature
(SI base unit = kelvin)
L = length
(SI base unit = metre)
M = mass
(SI base unit = kilogram)
N = amount of substance
(SI base unit = mole)
S = solid angle
(SI base unit = steradian)
T = time
(SI base unit = second)
A number will indicate a power (e.g., “L2” would indicate “length squared”) and a solidus (/) will indicate
division. Note that an angle is considered to be a dimensionless ratio of length while a solid angle is
considered to be a dimensionless ratio of area. In addition, the syntax “ratio(X)” is used to indicate a
dimensionless ratio of another dimensional class. For example “ratio(L3)” would indicate a ratio of
volumes. The inclusion of the ratio information in the dimensional analysis provides extra semantics
which help to explain the semantic differences in the supported concepts.
Note that the unit symbols may contain dimensionless components that are not represented in the
dimensional analysis. For example, the bel (B) has not been included in the dimensional analysis for
“attenuation per length” but is listed in its base for conversion.
Conversion Base
The base for conversion is a unit symbol that is accepted for use in SI but it is not necessarily an “SI base
unit”. Every symbol that may be used by a class will have the same base for conversion. The process of
converting the value associated with a source symbol to a value associated with a target symbol would
logically convert the source value to the base symbol and then convert that base value to the target
symbol. Each unit symbol will have conversion information for converting a value to the base symbol.
The conversion information conforms to the formula y=(A+Bx)/(C+Dx) where y represents the base value
and x represents the symbol value. Note that if C=1 and D=0, then the formula reduces to y=A+Bx (i.e.,
an offset and a factor). If the conversion information is exact then it will be flagged with IS-EXACT=true.
For ratios, A and D will commonly be zero such that the formula reduces to y=(B/C)x and sometimes B
and C will each be exact even though the calculated result is not. Exact means that the specified number
of digits in the conversion data is not truncated.
Representative Unit
The representative unit generally matches the base for conversion except where multiple classes have
the same underlying dimensional analysis. In this case, the representative unit may provide additional
information about the underlying concept of the class. For example, “area per volume” has the same
dimensional analysis as “per length” but it specifies a representative unit of “m2/m3” instead of “1/m”.
Canonical Unit
The canonical unit reduces the underlying concept of a class to an expression that uses a combination of
the underlying SI base units. This expression will not contain SI special units such as hertz (Hz) or newton
(N). All units associated with a class will be represented by the same canonical unit. A canonical unit may
or may not be a supported unit.
Mapping
Mapping worksheets provide a cross-reference from different dictionaries to the new specification. For
the class names, the mapping represents how POSC QuantityType, POSC QuantityClass and OpenSpirit
BaseMeasurement declarations were mapped to the new specification. This represents more of a
“specialization of” relationship than an alias relationship. A concept is the “same as” the new class in the
sense that the new class would be used where the old concept was originally used. For unit symbols, the
mapping represents an alias with the same semantics. A mapping to the POSC and OpenSpirit
specifications is provided in addition to a mapping to some SI Aliases and a mapping to the new integer
code specification.
Integer Codes
A separate specification will assign unique integer to some of the information. The primary requirement
for this is the “Society of Exploration Geophysicists” new “SEGD Rev3.0” format that utilizes a two byte
code for unit information in a special Measurement Block. Once assigned, these codes will never be
used for a different semantic meaning. A code may be deprecated or a different name may be assigned
to it but a code will never be removed. Because of this, their use is constrained to the Quantity Classes
and to a subset of the SI unit symbols. For the first version, the supported symbol subset will be those
symbols that represent the “base for conversion” associated with each class.
Usage
A common usage of this information will be to constrain quantities in a data model to represent one
particular quantity class. This will allow mechanisms to insure that any unit of information specified for a
quantity value is appropriate for that quantity. For example, WITSML defines a specific type named
lengthMeasure which has a required uom attribute that enumerates all of the allowed units for a
“length” quantity class. In a relational model, triggers might be used to insure that the proper unit of
measure is specified for the unit associated with a column that was declared as a “length”. For more
generalized models such as a well log, knowledge of the quantity class might be a required piece of
metadata for understanding the underlying nature of a curve even if the specific meaning is not
understood. Another alternative for an implementation would be to convert all quantities of the same
class to one specific unit (e.g., the base) for storage. The mapping information can be used for
automating the import of external data.