Computes dogleg on every trajectory section
og.model.minimumCurvature.doglegMap(
newmap("wellId", "{well_id}")
)
Output: Doglegs (rad) vs MD
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}")
)
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)
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
Computes north coordinate on every trajectory section
og.model.minimumCurvature.northingMap(
newmap("wellId", "{well_id}")
)
Output: North (m) vs MD(m)
og.model.minimumCurvature.northDelta(
newmap("startDepth" value_m,
"startInclination", value_rad,
"startAzimuth", value_rad,
"endDepth", value_m,
"endInclination", value_rad,
"endAzimuth", value_rad)
)
Computes east coordinate on every trajectory section
og.model.minimumCurvature.eastingMap(
newmap("wellId", "{well_id}")
)
Output: East (m) vs MD(m)
og.model.minimumCurvature.eastDelta(
newmap("startDepth" value_m,
"startInclination", value_rad,
"startAzimuth", value_rad,
"endDepth", value_m,
"endInclination", value_rad,
"endAzimuth", value_rad)
)
Computes true vertical depth on every trajectory section
og.model.minimumCurvature.tvdMap(
newmap("wellId", "{well_id}")
)
Output: True Vertical Depth (m) vs MD(m)\
og.model.minimumCurvature.tvdDelta(
newmap("startDepth" value_m,
"startInclination", value_rad,
"startAzimuth", value_rad,
"endDepth", value_m,
"endInclination", value_rad,
"endAzimuth", value_rad)
)
Computes horizontal displacement on every trajectory section
og.model.minimumCurvature.horizontalDisplacementMap(
newmap("wellId", "{well_id}")
)
Output: Horizontal Displacement (m) vs MD(m)
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
og.model.minimumCurvature.buildRate(
newmap("startDepth" value_m,
"startInclination", value_rad,
"endDepth", value_m,
"endInclination", value_rad)
)
og.model.minimumCurvature.turnRate(
newmap("startDepth" value_m,
"startAzimuth", value_rad,
"endDepth", value_m,
"endAzimuth", value_rad)
)
og.model.minimumCurvature.deltaAzimuth(
newmap("startInclination", value_rad,
"dogleg", value_rad,
"toolFace", value_rad)
)
og.model.minimumCurvature.endInclination(
newmap("startInclination", value_rad,
"endInclination", value_rad,
"dogleg", value_rad)
)
og.model.minimumCurvature.toolface(
newmap("startDepth" value_m,
"startInclination", value_rad,
"startAzimuth", value_rad,
"endDepth", value_m,
"endInclination", value_rad,
"endAzimuth", value_rad)
)
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))
)
)
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)
)
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