API reference¶
-
wellpathpy.
read_header_json
(fname)¶ Read deviation header
The deviation header information is needed for surface location and true vertical depth subsea calculations. This function loads data from a JSON file into a dict.
Parameters: fname (str) – JSON object or path to a JSON file Notes
required keys: elevation_units, elevation, surface_coordinates_units, surface_easting, surface_northing
optional key: datum
- datum : str
kb, dfe or rt. datum is not used in calculation
kb (kelly bushing), dfe (drill floor elevation), rt (rotary table)
- elevation_units : str
- datum elevation units
- elevation : float
- datum elevation in elevation_units above mean sea level
- surface_coordinates_units : str
- surface coordinate units of wellhead
- surface_easting : float
- wellhead surface location in surface_coordinates_units east of reference
- surface_northing : float
- wellhead surface location in surface_coordinates_units north of reference
Returns: header Return type: dict
-
wellpathpy.
read_csv
(fname, delimiter=', ', skiprows=1, **kwargs)¶ Read a deviation file in CSV format
A header row containing the column names md, inc, azi in that order is generally expected to be included as the first row in the file. By default, this header is skipped with the skiprows argument set to 1 but this can be changed to 0 if no header is inclduded. The data must be ordered as md, inc, azi as the data cannot be distinguished numerically.
Parameters: - fname (str) – path to a CSV file with this format:
`md,inc,azi 0,0,244 10,11,220 50,43,254 150,78.5,254 252.5,90,359.9`
- delimiter (str) – the character used as a delimiter in the CSV
- skiprows (int) – number of rows to skip, normally the header row
Other Parameters: **kwargs (All other keyword arguments are passed to np.loadtxt)
Returns: md, inc, azi – md, inc and azi are of type np.ndarray
Return type: tuple
Notes
- md : float
- measured depth (units not defined)
- inc : float
- well inclination in degrees from vertical
- azi : float
- well azimuth in degrees from Grid North
- fname (str) – path to a CSV file with this format:
-
wellpathpy.
deviation_to_csv
(fname, md, inc, azi, fmt='%.3f', delimiter=', ', header='md, inc, azi', **kwargs)¶ Write a log to a comma-separated values (csv) file.
Parameters: - fname (str or file handle) – file path or object the CSV will be written to.
- md (array-like,) – measured depth
- inc (array-like,) – inclination from vertical
- azi (array-like,) – azimuth from north
- fmt (str) – this is the fmt argument to numpy.savetxt, see: https://numpy.org/doc/stable/reference/generated/numpy.savetxt.html
- delimiter (str) – String or character separating columns.
- header (str) – String that will be written at the beginning of the file. Beware if changing the header that it does not change the order in which the data are written, which remains: md,`inc`,`azi`.
Other Parameters: **kwargs (All other keyword arguments are passed to np.savetxt)
Notes
This function is totally unit unaware, the user is responsible to handle units.
Caution: deviation_to_csv uses Python write mode set to the default: ‘w’ therefore existing files will be overwritten.
-
wellpathpy.
position_to_csv
(fname, depth, northing, easting, fmt='%.3f', delimiter=', ', header='easting, northing, depth', **kwargs)¶ Write a log to a comma-separated values (csv) file.
Parameters: - fname (str or file handle) – file path or object the CSV will be written to.
- depth (array-like,) – true vertical depth (tvd) or true vertical depth subsea (tvdss)
- northing (array-like,) – distance north of reference point
- easting (array-like,) – distance east of reference point,
- fmt (str) – this is the fmt argument to numpy.savetxt, see: https://numpy.org/doc/stable/reference/generated/numpy.savetxt.html
- delimiter (str) – String or character separating columns.
- header (str) – String that will be written at the beginning of the file. Beware if changing the header that it does not change the order in which the data are written, which remains: easting,`northing`,`depth`.
Other Parameters: **kwargs (All other keyword arguments are passed to np.savetxt)
Notes
This function is totally unit unaware, the user is responsible to handle units.
Caution: position_to_csv uses Python write mode set to the default: ‘w’ therefore existing files will be overwritten.
-
class
wellpathpy.
deviation
(md, inc, azi)¶ Deviation
The deviation is a glorified triple (md, inc, azi), with some interesting operations.
Notes
Glossary: md : measured depth inc : inclination (in degrees) azi : azimuth (in degrees)
-
minimum_curvature
(course_length=30)¶ This function calls mincurve.minimum_curvature with self
Notes
You can access help with wp.mincurve.minimum_curvature? in ipython
-
radius_curvature
()¶ This function calls rad_curv.radius_curvature with self
Notes
You can access help with wp.rad_curv.radius_curvature? in ipython
-
tan_method
(choice='avg')¶ This function calls tan.tan_method with self
Notes
You can access help with wp.tan.tan_method? in ipython
-
to_csv
(fname, **kwargs)¶ This function calls write.deviation_to_csv with self
Notes
You can access help with wp.write.deviation_to_csv? in ipython
-
-
class
wellpathpy.
position_log
(src, depth, northing, easting)¶ Position log
The position log is the computed positions of the well path. It has no memory of the method that created it, but it knows what deviation it came from. In its essence, it’s a glorified triplet (tvd, northing, easting) with some interesting operations.
Notes
Glossary: tvd : true vertical depth
-
to_csv
(fname, **kwargs)¶ This function calls write.position_to_csv with self
Notes
You can access help with wp.write.position_to_csv? in ipython
-
to_tvdss
(datum_elevation, inplace=False)¶ This function calls location.location_to_tvdss with self
Notes
You can access help with wp.location.to_tvdss? in ipython
-
to_wellhead
(surface_northing, surface_easting, inplace=False)¶ Create a new position log instance moved to the wellhead location
Parameters: - surface_northing (array_like) –
- surface_easting (array_like) –
- inplace (bool) –
-
to_zero
(surface_northing, surface_easting, inplace=False)¶ Create a new position log instance moved to 0m North and 0m East
Parameters: - surface_northing (array_like) –
- surface_easting (array_like) –
- inplace (bool) –
-
-
class
wellpathpy.
minimum_curvature
(src, depth, n, e, dls)¶ -
deviation
()¶ Deviation survey
Compute an approximate deviation survey from the position log, i.e. the measured that would be convertable to this well path. It is assumed that inclination, azimuth, and measured-depth starts at 0.
Returns: dev Return type: deviation
-
resample
(depths)¶ Resample the position log onto a new measured-depth.
Parameters: depths (array_like) – The measured depths to resample onto Returns: resampled – Resampled position log Return type: minimum_curvature Examples
Resample onto a regular, 1m measured depth interval:
>>> depths = list(range(int(dev.md[-1]) + 1)) >>> resampled = pos.resample(depths = depths)
-