Pipes Functions

Dogleg

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

Last updated