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 }