Live Drilling
  • Introduction
  • FAQ
  • what's new
    • Latest releases
      • Wells 5
      • LiveRig 5
      • LiveRig 4
      • WITSML Store
    • Operations in Time by Depth Chart
    • Unit Sets
      • Per-Asset Units
      • Unit Conversion
      • Dashboard Configuration
      • Force Follow Asset Units
    • Well casing shoe schematic
    • Wells correlation
    • FFT spectrum
    • Pressure Tests
      • Configuration
      • Automated Standard Pressure Tests
      • Manual Pressure Test
      • LOT/FIT
    • Rig State detection
    • BOP Schematic
      • BOP status register
    • Signal Processing
      • Moving Average
  • Data Flow
    • Introduction
    • Data Ingestion
    • Data Normalization
      • Clock Synchronization
      • Normalized events schema
      • Data indexes and enrichment
      • Unit conversion
      • Auto-Switch
  • Physical Models
    • Introduction
      • Structure of the functions
      • Validation
    • General Equations
      • Static Data Dependencies
      • Pipes Functions
    • Trajectory
      • Introduction
      • Static Data Dependencies
      • Pipes Functions
    • Hydraulic
      • Introduction
      • Static Data Dependencies
      • Pipes Functions
    • Torque and Drag
      • Introduction
      • Static Data Dependencies
      • Pipes Functions
    • Hole Cleaning
      • Introduction
      • Static Data Dependencies
      • Pipes Functions
    • Surge and Swab
      • Introduction
      • Static Data Dependencies
      • Pipes Functions
    • Thermal
      • Introduction
    • Volume Tracker
      • Introduction
      • Pipes Functions
  • Basic Features
    • Charts
      • Channels Charts
        • Temporal Channels Chart
        • Channel Value Chart
        • Depth Channels Chart
        • Data navigation
          • Span Control
      • Rig Allocation Gantt Chart
    • Unit sets
      • Configuration changes on unit sets
      • Depth unit changes
      • Personal units sets
    • Permission schema
    • Import/Export Well
    • Add-ons
  • Static Data
    • Assets
      • Assets Structure
    • Well
      • Introduction
      • Well Schema
      • Well Units
      • Regions, fields and countries
      • Well Design Overview
      • Objectives
    • Intervention
      • Introduction
      • Intervention Schema
      • Intervention Types
      • Scenarios
      • Runs
      • Completion and Abandonment
      • Drilling Section Schema
    • Rig
      • Introduction
      • Rig Schema
      • Physical models configuration
    • Pipes functions
    • REST API Examples
  • Administration
    • High Frequency Data
      • WITSML Null Values
      • Unit Management Tools
      • WITS Custom Mapping
    • Data Normalization
      • Data Management
        • Event Settings
        • Channels Management
      • Data normalization templates
      • Data normalization templates prioritization
      • Auto-Switch
    • Standard Identifiers
    • Static Data
      • Regions, fields and countries
      • Intervention Types
  • LiveRig Collector
    • Introduction
    • Getting Started
    • Connecting to Intelie Live
    • Security
    • Local data storage
    • Data transmission and recovery
    • Monitoring
    • Remote Control
      • APIs
        • /testSourceEndpoint
        • /storeConfiguration
        • /getFromStore
        • /backlog-sync
      • Sources
        • MQTT Topics
        • OPC Requests
        • WITSML Backlog Sync
        • WITSML Object Explorer
        • WITSML Requests
      • Properties
    • HA Deployment
    • Protocols
      • WITSML
      • WITS
      • OPC-DA
      • OPC-UA
      • MODBUS
      • MQTT
      • CSV
      • RAW
    • Protocol conversion
    • Configuration
      • liverig.properties
      • sources.xml
      • store.json
      • modbus.json
      • mqtt.json
      • Configuring an OPC-UA source
      • Multiple event types for WITSML sources
      • Certificate-based authentication for WITSML HTTPS sources
    • LiveRig Collector Appliance
    • Command line Interface (CLI)
  • LIVE EDGE
    • Collector Reader
  • Integrations
    • Introduction
    • WITSML Store
    • REST Output
    • REST Input
    • WellView
    • OpenWells
    • Python
  • DEVELOPER
    • Identified Curves
    • Hidden Units
  • DEPRECATED
    • WITSML Output
    • LiveRig 3.x / 2.x
      • 3.5.0
      • 3.4.0
      • 3.3.0
      • 3.2.0
      • 3.1.0
      • 3.0.0
      • 2.29.0
Powered by GitBook
On this page
  • Dogleg
  • Dogleg Delta
  • Dogleg Severity
  • Computes ratio factor on every trajectory section
  • North and East
  • Easting Map
  • North Delta
  • Easting Map
  • East Delta
  • True Vertical Depth
  • TVD Delta
  • Horizontal Displacement
  • Minimum Distance between target Line
  • Build Rate
  • Turn Rate
  • Delta Azimuth
  • End Inclination
  • Tool Face
  • Trajectory Distance
  • Vertical Section
  • Survey from Directional Parameters

Was this helpful?

  1. Physical Models
  2. Trajectory

Pipes Functions

PreviousStatic Data DependenciesNextHydraulic

Last updated 3 years ago

Was this helpful?

Dogleg

Dogleg vs Measured Depth

Computes dogleg on every trajectory section

og.model.minimumCurvature.doglegMap(
         newmap("wellId", "{well_id}")
)

Output: Doglegs (rad) vs MD

Dogleg Delta

og.model.minimumCurvature.dogleg( 
        newmap("startDepth" value_m, 
               "startInclination", value_rad, 
               "startAzimuth", value_rad, 
               "endDepth", value_m, 
               "endInclination", value_rad,
               "endAzimuth", value_rad)
 ) 

Output: Dogleg (rad)

Example Pipes:

og.model.minimumCurvature.doglegMap(
         newmap("wellId", "{well_id}")
)

Dogleg Severity

Computes dogleg severity on every trajectory section

og.model.minimumCurvature.doglegSeverityMap(
         newmap("wellId", "{well_id}")
)

Output: Dogleg Severity (rad/m) vs MD

og.model.minimumCurvature.doglegSeverity( 
        newmap("startDepth" value_m, 
               "startInclination", value_rad, 
               "startAzimuth", value_rad, 
               "endDepth", value_m, 
               "endInclination", value_rad,
               "endAzimuth", value_rad)
 )

Output: Dogleg Severity (rad/m)

Computes ratio factor on every trajectory section

og.model.minimumCurvature.ratioFactorMap(
         newmap("wellId", "{well_id}")
)

Output: Ratio Factor (-) vs MD

Example Pipes:

=> og.model.minimumCurvature.severityMap(newmap("wellId", "5"))) at the end 
=> @for 
=> @yield 
=> {doglegSeverity}#*180/pi()*30  as DLS(degree/100ft), depth# as depth

North and East

Computes north coordinate on every trajectory section

Easting Map

og.model.minimumCurvature.northingMap(
         newmap("wellId", "{well_id}")
)

Output: North (m) vs MD(m)

North Delta

og.model.minimumCurvature.northDelta(
        newmap("startDepth" value_m, 
               "startInclination", value_rad, 
               "startAzimuth", value_rad, 
               "endDepth", value_m, 
               "endInclination", value_rad,
               "endAzimuth", value_rad)
)

Easting Map

Computes east coordinate on every trajectory section

og.model.minimumCurvature.eastingMap(
         newmap("wellId", "{well_id}")
)

Output: East (m) vs MD(m)

East Delta

og.model.minimumCurvature.eastDelta(        
        newmap("startDepth" value_m, 
               "startInclination", value_rad, 
               "startAzimuth", value_rad, 
               "endDepth", value_m, 
               "endInclination", value_rad,
               "endAzimuth", value_rad)
 )

True Vertical Depth

Computes true vertical depth on every trajectory section

og.model.minimumCurvature.tvdMap(
         newmap("wellId", "{well_id}")
)

Output: True Vertical Depth (m) vs MD(m)

TVD Delta

og.model.minimumCurvature.tvdDelta(        
        newmap("startDepth" value_m, 
               "startInclination", value_rad, 
               "startAzimuth", value_rad, 
               "endDepth", value_m, 
               "endInclination", value_rad,
               "endAzimuth", value_rad)
 )

Horizontal Displacement

Computes horizontal displacement on every trajectory section

og.model.minimumCurvature.horizontalDisplacementMap(
         newmap("wellId", "{well_id}")
)

Output: Horizontal Displacement (m) vs MD(m)

Minimum Distance between target Line

Pipes Example

=> og.model.minimumCurvature.distanceToTargetLine(
      newmap("targetAngle", 0.785398, "targetLine", newmap("tvd", 1000, "verticalSection", 0, "inclination", 1.5708),  "point", newmap("north", 100, "east", 1000, "tvd", 1000)
))->result as result at the end

Pipes Example

=> og.model.minimumCurvature.distanceToTargetPlane(
       newmap("targetAngle", 0.785398,  "point", newmap("north", 1000, "east", 0)
))->result as result at the end

Build Rate

og.model.minimumCurvature.buildRate(        
        newmap("startDepth" value_m, 
               "startInclination", value_rad, 
               "endDepth", value_m, 
               "endInclination", value_rad)
 )

Turn Rate

og.model.minimumCurvature.turnRate(
        newmap("startDepth" value_m, 
               "startAzimuth", value_rad, 
               "endDepth", value_m, 
               "endAzimuth", value_rad)
 )

Delta Azimuth

og.model.minimumCurvature.deltaAzimuth(
        newmap("startInclination", value_rad, 
               "dogleg", value_rad, 
               "toolFace", value_rad)
 )

End Inclination

og.model.minimumCurvature.endInclination(
        newmap("startInclination", value_rad, 
               "endInclination", value_rad,
               "dogleg", value_rad)
 )

Tool Face

og.model.minimumCurvature.toolface(
         newmap("startDepth" value_m, 
               "startInclination", value_rad, 
               "startAzimuth", value_rad, 
               "endDepth", value_m, 
               "endInclination", value_rad,
               "endAzimuth", value_rad)
)

Trajectory Distance

og.model.minimumCurvature.trajectoryDistance(
        newmap("wellId", "{well_id}",
               "north" value_m, 
               "east", value_rad, 
               "tvd", value_rad)
)
og.model.minimumCurvature.trajectoryDistanceMap(
         newmap("wellId", "{well_id}"
                "bitDepth", value_m, 
                newmap( "point", 
                       newmap("measuredDepth", value_m,
                              "north", value_m,
                              "east", value_m, 
                              "tvd", value_m))
                )
)

Vertical Section

og.model.minimumCurvature.verticalSection(
        newmap("north" value_m, 
               "east", value_rad, 
               "targetAngle", value_rad)
 )
og.model.minimumCurvature.verticalSectionMap(
         newmap("wellId", "{well_id}",
                "targetAngle", value_rad)
)

Survey from Directional Parameters

Calculate the survey points from the section lengths, build rate, and turn rate.

og.model.minimumCurvature.surveyFromDirectionalSections(
     newmap("points", 
          newmap("sectionLength", value_m, "buildRate", value_rad/m, "turnRate", value_rad/m),
          newmap("sectionLength", value_m, "buildRate", value_rad/m, "turnRate", value_rad/m)
     )
)

Example

Well Type II

def @@KOP: 1000; --m
def @@BuildUp: 12/100; --rad/m
def @@endBuildup: 1200; --m
def @@slantSection: 100; --/m
def @@dropOff: -12/100; --//rad/m
def @@endDropOff: 1500; --//rad/m

def @@points: (

  newmap("sectionLength", @@KOP, "buildRate", 0, "turnRate", 0.0),
  newmap("sectionLength", @@endBuildup - @@KOP, "buildRate", @@BuildUp, "turnRate", 0.0),
  newmap("sectionLength", @@slantSection, "buildRate", 0.0, "turnRate", 0.0),
  newmap("sectionLength", @@endDropOff - @@slantSection-@@endBuildup, "buildRate", @@dropOff, "turnRate", 0.0),
  
):const():seq();


=>og.model.minimumCurvature.surveyFromDirectionalSections(
     newmap("points", @@points)
) at the end
Dogleg Severity vs Measured Depth
3D plot (North, East, and TVD)
North vs East
Horizontal Displacement vs TVD