Relations between EFLR objects
Many of the EFLR objects are interrelated - e.g. a Frame refers to multiple Channels,
each of which can have an Axis;
a Calibration uses Calibration Coefficients and Calibration Measurements;
a Tool has Equipments as parts. The relations are summarised in the diagram below.
Note: in the diagrams below, the description of The Attribute classs of the objects has been simplified.
Only the type of the .value
part of each Attribute
is shown - e.g. in CalibrationItem
,
calibrated_channels
is shown as a list of ChannelItem
instances, where in fact it is
an EFLRAttribute
whose .value
takes the form of a list of ChannelItem
objects.
---
title: EFLR objects relationships
---
classDiagram
PathItem o-- "0..1" WellReferencePointItem
PathItem o-- "0..*" ChannelItem
PathItem o-- "0..1" FrameItem
FrameItem o-- "0..*" ChannelItem
CalibrationItem o-- "0..*" ChannelItem
CalibrationMeasurementItem o-- "0..1" ChannelItem
SpliceItem o-- "0..*" ChannelItem
ChannelItem o-- "0..*" AxisItem
CalibrationMeasurementItem o-- "0..1" AxisItem
ParameterItem o-- "0..*" AxisItem
ParameterItem o-- "0..*" ZoneItem
CalibrationItem o-- "0..*" CalibrationCoefficientItem
CalibrationItem o-- "0..*" CalibrationMeasurementItem
CalibrationItem o-- "0..*" ParameterItem
ToolItem o-- "0..*" ChannelItem
ToolItem o-- "0..*" ParameterItem
ToolItem o-- "0..*" EquipmentItem
ProcessItem o-- "0..*" ChannelItem
ProcessItem o-- "0..*" ComputationItem
ProcessItem o-- "0..*" ParameterItem
ComputationItem o-- "0..1" AxisItem
ComputationItem o-- "0..*" ZoneItem
SpliceItem o-- "0..*" ZoneItem
ChannelItem o-- "0..1" LongNameItem
ParameterItem o-- "0..1" LongNameItem
ComputationItem o-- "0..1" LongNameItem
class AxisItem{
+str axis_id
+list coordinates
+float spacing
}
class CalibrationItem{
+list~ChannelItem~ calibrated_channels
+list~ChannelItem~ uncalibrated_channels
+list~CalibrationCoefficientItem~ coefficients
+list~CalibrationMeasurementItem~ measurements
+list~ParameterItem~ parameters
+str method
}
class CalibrationMeasurementItem{
+str phase
+ChannelItem measurement_source
+str _type
+list~int~ dimension
+AxisItem axis
+list~float~ measurement
+list~int~ sample_count
+list~float~ maximum_deviation
+list~float~ standard_deviation
+datetime begin_time
+float duration
+list~int~ reference
+list~float~ standard
+list~float~ plus_tolerance
+list~float~ minus_tolerance
}
class CalibrationCoefficientItem{
+str label
+list~float~ coefficients
+list~float~ references
+list~float~ plus_tolerances
+list~float~ minus_tolerances
}
class ChannelItem{
+tuple~str~ allowed_property_indicators
+str|LongNameItem long_name
+list~str~ properties
+RepresentationCode representation_code
+Units units
+list~int~ dimension
+list~AxisItem~ axis
+list~int~ element_limit
+str source
+float minimum_value
+float maximum_value
+str dataset_name
}
class ComputationItem{
+str|LongNameItem long_name
+list~str~ properties
+list~int~ dimension
+AxisItem axis
+list~ZoneItem~ zones
+list~float~ values
+EFLRItem source
}
class EquipmentItem{
+str trademark_name
+int status
+str _type
+str serial_number
+str location
+float height
+float length
+float minimum_diameter
+float maximum_diameter
+float volume
+float weight
+float hole_size
+float pressure
+float temperature
+float vertical_depth
+float radial_drift
+float angular_drift
}
class FrameItem{
+str description
+list~ChannelItem~ channels
+str index_type
+str direction
+float spacing
+bool encrypted
+int index_min
+int index_max
}
class ParameterItem{
+str|LongNameItem long_name
+list~int~ dimension
+list~AxisItem~ axis
+list~AxisItem~ zones
+list values
}
class PathItem{
+FrameItem frame_type
+WellReferencePointItem well_reference_point
+list~ChannelItem~ value
+float borehole_depth
+float vertical_depth
+float radial_drift
+float angular_drift
+float time
+float depth_offset
+float measure_point_offset
+float tool_zero_offset
}
class ProcessItem{
+str description
+str trademark_name
+str version
+list~str~ properties
+str status
+list~ChannelItem~ input_channels
+list~ChannelItem~ output_channels
+list~ComputationItem~ input_computations
+list~ComputationItem~ output_computations
+list~ParameterItem~ parameters
+str comments
}
class SpliceItem{
+list~ChannelItem~ output_channels
+list~ChannelItem~ input_channels
+list~ZoneItem~ zones
}
class ToolItem{
+str description
+str trademark_name
+str generic_name
+list~EquipmentItem~ parts
+int status
+list~ChannelItem~ channels
+list~ParameterItem~ parameters
}
class WellReferencePointItem{
+str permanent_datum
+str vertical_zero
+float permanent_datum_elevation
+float above_permanent_datum
+float magnetic_declination
+str coordinate_1_name
+float coordinate_1_value
+str coordinate_2_name
+float coordinate_2_value
+str coordinate_3_name
+float coordinate_3_value
}
class ZoneItem{
+str description
+str domain
+float maximum
+float minimum
}
class LongNameItem{
+str general_modifier
+str quantity
+str quantity_modifier
+str altered_form
+str entity
+str entity_modifier
+str entity_number
+str entity_part
+str entity_part_number
+str generic_source
+str source_part
+str source_part_number
+str conditions
+str standard_symbol
+str private_symbol
}
Other EFLR objects can be thought of as standalone - they do not refer to other EFLR objects
and are not explicitly referred to by any
(although - as in case of No-Format - a relation to IFLR objects can exist).
---
title: Standalone EFLR objects
---
classDiagram
class MessageItem{
+str _type
+datetime time
+float borehole_drift
+float vertical_depth
+float radial_drift
+float angular_drift
+float text
}
class CommentItem{
+str: text
}
class NoFormatItem{
+str consumer_name
+str description
}
class OriginItem{
+str file_id
+str file_set_name
+int file_set_number
+int file_number
+str file_type
+str product
+str version
+str programs
+datetime creation_time
+int order_number
+int descent_number
+int run_number
+int well_id
+str well_name
+str field_name
+int producer_code
+str producer_name
+str company
+str name_space_name
+int name_space_version
}
class FileHeader{
+str identifier
+int sequence_number
}
A special case is a Group object, which can refer to any other EFLRs or other groups,.
---
title: EFLR Group object
---
classDiagram
GroupItem o-- "0..*" EFLRItem
GroupItem o-- "0..*" GroupItem
class GroupItem{
+str description
+str object_type
+list~EFLRItem~ object_list
+list~GroupItem~ group_list
}