Dogleg
Computes dogleg on every trajectory section
Copy og . model . minimumCurvature .doglegMap (
newmap ( "wellId" , "{well_id}" )
)
Output: Doglegs (rad) vs MD
Dogleg Delta
Copy 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:
Copy og . model . minimumCurvature .doglegMap (
newmap ( "wellId" , "{well_id}" )
)
Dogleg Severity
Computes dogleg severity on every trajectory section
Copy og . model . minimumCurvature .doglegSeverityMap (
newmap ( "wellId" , "{well_id}" )
)
Output: Dogleg Severity (rad/m) vs MD
Copy 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
Copy og . model . minimumCurvature .ratioFactorMap (
newmap ( "wellId" , "{well_id}" )
)
Output: Ratio Factor (-) vs MD
Example Pipes:
Copy => og . model . minimumCurvature .severityMap ( newmap ( "wellId" , "5" ))) at the end
=> @for
=> @ yield
=> {doglegSeverity}# * 180 / pi () * 30 as DLS ( degree /100 ft ) , depth# as depth
North and East
Computes north coordinate on every trajectory section
Easting Map
Copy og . model . minimumCurvature .northingMap (
newmap ( "wellId" , "{well_id}" )
)
Output: North (m) vs MD(m)
North Delta
Copy 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
Copy og . model . minimumCurvature .eastingMap (
newmap ( "wellId" , "{well_id}" )
)
Output: East (m) vs MD(m)
East Delta
Copy 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
Copy og . model . minimumCurvature .tvdMap (
newmap ( "wellId" , "{well_id}" )
)
Output: True Vertical Depth (m) vs MD(m)
TVD Delta
Copy 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
Copy og . model . minimumCurvature .horizontalDisplacementMap (
newmap ( "wellId" , "{well_id}" )
)
Output: Horizontal Displacement (m) vs MD(m)
Minimum Distance between target Line
Pipes Example
Copy => 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
Copy => og . model . minimumCurvature .distanceToTargetPlane (
newmap ( "targetAngle" , 0.785398 , "point" , newmap ( "north" , 1000 , "east" , 0 )
)) -> result as result at the end
Build Rate
Copy og . model . minimumCurvature .buildRate (
newmap ( "startDepth" value_m ,
"startInclination" , value_rad ,
"endDepth" , value_m ,
"endInclination" , value_rad)
)
Turn Rate
Copy og . model . minimumCurvature .turnRate (
newmap ( "startDepth" value_m ,
"startAzimuth" , value_rad ,
"endDepth" , value_m ,
"endAzimuth" , value_rad)
)
Delta Azimuth
Copy og . model . minimumCurvature .deltaAzimuth (
newmap ( "startInclination" , value_rad ,
"dogleg" , value_rad ,
"toolFace" , value_rad)
)
End Inclination
Copy og . model . minimumCurvature .endInclination (
newmap ( "startInclination" , value_rad ,
"endInclination" , value_rad ,
"dogleg" , value_rad)
)
Tool Face
Copy 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
Copy og . model . minimumCurvature .trajectoryDistance (
newmap ( "wellId" , "{well_id}" ,
"north" value_m ,
"east" , value_rad ,
"tvd" , value_rad)
)
Copy 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
Copy og . model . minimumCurvature .verticalSection (
newmap ( "north" value_m ,
"east" , value_rad ,
"targetAngle" , value_rad)
)
Copy 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.
Copy 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
Copy 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