Rogii Solo.Well¶
attribute project |
|
attribute uuid |
Unique identifier of the |
attribute name |
Name of the |
attribute xsrf |
Surface X coordinate of the |
attribute ysrf |
Surface Y coordinate of the |
attribute xsrf_real |
Real surface X coordinate of the |
attribute ysrf_real |
Real surface Y coordinate of the |
attribute kb |
Kelly Bushing (KB) elevation of the |
attribute api |
API number of the |
attribute operator |
Operator of the |
attribute azimuth |
Azimuth angle of the |
attribute convergence |
Grid convergence angle of the |
attribute tie_in_tvd |
True Vertical Depth (TVD) at the tie-in point. |
attribute tie_in_ns |
North-South coordinate at the tie-in point. |
attribute tie_in_ew |
East-West coordinate at the tie-in point. |
attribute starred |
Whether this |
property trajectory |
Get the trajectory data for this |
property interpretations |
Get the |
property starred_interpretation |
Get the starred |
property target_lines |
Get the |
property starred_target_line |
Get the starred |
property nested_wells |
Get the |
property linked_typewells |
|
property starred_nested_well |
Get the starred |
property logs |
|
property topsets |
|
property starred_topset |
|
property mudlogs |
|
property time_traces |
|
property calc_traces |
|
property comments |
|
property attributes |
Get the attributes associated with this |
method to_dict(get_converted) |
Convert the |
method to_df(get_converted) |
Convert the |
method replace_trajectory(md_uom, incl_uom, azi_uom, trajectory_stations) |
Replace the trajectory data for this |
method create_nested_well(name, operator, api, xsrf, ysrf, kb, tie_in_tvd, tie_in_ns, tie_in_ew) |
Create a new |
method create_topset(name) |
|
method create_log(name, points) |
|
method create_target_line(name, origin_x, origin_y, origin_z, target_x, target_y, target_z) |
Create a new |
method update_meta(name, operator, api, xsrf, ysrf, kb, azimuth, convergence, tie_in_tvd, tie_in_ns, tie_in_ew) |
Update metadata of this |
attribute well |
Reference to the |
method to_dict(get_converted) |
Convert the |
method to_df(get_converted) |
Convert the |
attribute well |
The |
attribute project |
The |
attribute uuid |
Unique identifier of the |
attribute name |
Name of the |
attribute xsrf |
Surface X-coordinate of the |
attribute ysrf |
Surface Y-coordinate of the |
attribute xsrf_real |
Real surface X-coordinate of the |
attribute ysrf_real |
Real surface Y-coordinate of the |
attribute kb |
Kelly Bushing (KB) elevation of the |
attribute api |
API number of the |
attribute operator |
Operator of the |
attribute azimuth |
Azimuth angle of the |
attribute convergence |
Grid convergence angle of the |
attribute tie_in_tvd |
True Vertical Depth (TVD) at the tie-in point. |
attribute tie_in_ns |
North-South coordinate at the tie-in point. |
attribute tie_in_ew |
East-West coordinate at the tie-in point. |
attribute starred |
Whether this |
property trajectory |
Get the trajectory data for this |
property topsets |
Get the topsets associated with this |
property starred_topset |
Get the starred topset for this |
method to_dict(get_converted) |
Convert the |
method to_df(get_converted) |
Convert the |
method replace_trajectory(md_uom, incl_uom, azi_uom, trajectory_stations) |
Replace the trajectory data for this |
method create_topset(name) |
Create a new topset in this |
method update_meta(name, operator, api, xsrf, ysrf, kb, tie_in_tvd, tie_in_ns, tie_in_ew) |
Update metadata of this |
attribute project |
|
attribute uuid |
Unique identifier of the |
attribute name |
Name of the |
attribute api |
API number of the |
attribute kb |
Kelly Bushing (KB) elevation of the |
attribute operator |
Operator of the |
attribute xsrf |
Surface X coordinate of the |
attribute ysrf |
Surface Y coordinate of the |
attribute xsrf_real |
Real surface X coordinate of the |
attribute ysrf_real |
Real surface Y coordinate of the |
attribute convergence |
Grid convergence angle of the |
attribute tie_in_tvd |
True Vertical Depth (TVD) at the tie-in point. |
attribute tie_in_ns |
North-South coordinate at the tie-in point. |
attribute tie_in_ew |
East-West coordinate at the tie-in point. |
attribute starred |
Whether this |
attribute shift |
Shift value applied to this |
property trajectory |
Get the trajectory data for this |
property logs |
Get the list of |
property topsets |
Get the list of |
property starred_topset |
|
property mudlogs |
Get the list of |
method to_dict(get_converted) |
Convert the |
method to_df(get_converted) |
Convert the |
method update_meta(name, operator, api, xsrf, ysrf, kb, convergence, tie_in_tvd, tie_in_ns, tie_in_ew) |
Update metadata of this |
method create_topset(name) |
|
method create_log(name, points) |
Module Contents¶
- class Well(papi_client: rogii_solo.papi.client.PapiClient, project: rogii_solo.project.Project, **kwargs)¶
Bases:
rogii_solo.base.ComplexObjectRepresent a
Wellin aProject. Contains all well-related data and operations includingTrajectory,Log,Interpretation,CalcTrace,TimeTrace,Commentand so on.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') # Get a Well by name well = project.wells.find_by_name('Well1') # Get the Project this Well belongs to project = well.project print(project.name) # Get Well attributes print(f"Well name: {well.name}") print(f"Well API: {well.api}") print(f"Well operator: {well.operator}") print(f"Well KB: {well.kb}") print(f"Well surface coordinates: ({well.xsrf}, {well.ysrf})") print(f"Well real coordinates: ({well.xsrf_real}, {well.ysrf_real})") print(f"Well azimuth: {well.azimuth}") print(f"Well convergence: {well.convergence}") print(f"Well tie-in TVD: {well.tie_in_tvd}") print(f"Well tie-in NS: {well.tie_in_ns}") print(f"Well tie-in EW: {well.tie_in_ew}") print(f"Well starred: {well.starred}")
- property trajectory: rogii_solo.trajectory.TrajectoryPointRepository[rogii_solo.trajectory.TrajectoryPoint]¶
Get the trajectory data for this
Well.- Returns:
A
TrajectoryPointRepositorycontaining the Well’s trajectory points.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Get the Well's trajectory trajectory = well.trajectory print(trajectory.to_dict())
- property interpretations: rogii_solo.base.ObjectRepository[rogii_solo.interpretation.Interpretation]¶
Get the
ObjectRepositoryofInterpretationinstances associated with thisWell.- Returns:
containing
Interpretationinstances.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Get all interpretations interpretations = well.interpretations print(interpretations.to_dict()) # Find a specific interpretation interpretation = interpretations.find_by_name('Interpretation1') print(interpretation.to_dict())
- property starred_interpretation: rogii_solo.interpretation.Interpretation | None¶
Get the starred
Interpretationfor thisWell.- Returns:
The starred
Interpretationinstance, or None if none is starred.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Get the starred interpretation starred = well.starred_interpretation if starred: print(starred.to_dict())
- property target_lines: rogii_solo.base.ObjectRepository[rogii_solo.target_line.TargetLine]¶
Get the
TargetLineassociated with thisWell.- Returns:
An
ObjectRepositorycontainingTargetLineinstances.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Get all target lines target_lines = well.target_lines print(target_lines.to_dict()) # Find a specific target line target_line = target_lines.find_by_name('TargetLine1') print(target_line.to_dict())
- property starred_target_line: rogii_solo.target_line.TargetLine | None¶
Get the starred
TargetLinefor thisWell.- Returns:
The starred
TargetLineinstance, or None if none is starred.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Get the starred target line starred = well.starred_target_line if starred: print(starred.to_dict())
- property nested_wells: rogii_solo.base.ObjectRepository[NestedWell]¶
Get the
NestedWell, representing well, plan associated with thisWell.- Returns:
An
ObjectRepositorycontainingNestedWellinstances.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Get all well plans well_plans = well.nested_wells print(well_plans.to_dict()) # Find a specific well plan well_plan = well_plans.find_by_name('WellPlan1') print(well_plan.to_dict())
- property linked_typewells: rogii_solo.base.ObjectRepository[Typewell]¶
Get the linked
Typewellassociated with thisWell.- Returns:
An
ObjectRepositorycontainingTypewellinstances.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Get all linked type wells type_wells = well.linked_typewells print(type_wells.to_dict()) # Find a specific type well type_well = type_wells.find_by_name('TypeWell1') print(type_well.to_dict())
- property starred_nested_well: NestedWell | None¶
Get the starred
NestedWellfor thisWell.- Returns:
The starred
NestedWellinstance, or None if none is starred.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Get the starred well plan starred_well_plan = well.starred_nested_well if starred_well_plan: print(starred_well_plan.to_dict())
- property logs: rogii_solo.base.ObjectRepository[rogii_solo.log.Log]¶
Get the
Logassociated with thisWell.- Returns:
An
ObjectRepositorycontainingLoginstances.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Get all logs logs = well.logs print(logs.to_dict()) # Find a specific log log = logs.find_by_name('Log1') print(log.to_dict())
- property topsets: rogii_solo.base.ObjectRepository[rogii_solo.topset.Topset]¶
Get the
Topsetassociated with thisWell.- Returns:
An
ObjectRepositorycontainingTopsetinstances.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Get all topsets topsets = well.topsets print(topsets.to_dict()) # Find a specific topset topset = topsets.find_by_name('Topset1') print(topset.to_dict())
- property starred_topset: rogii_solo.topset.Topset | None¶
Get the starred
Topsetfor thisWell.- Returns:
The starred
Topsetinstance, or None if none is starred.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Get the starred topset starred = well.starred_topset if starred: print(starred.to_dict())
- property mudlogs: rogii_solo.base.ObjectRepository[rogii_solo.mudlog.Mudlog]¶
Get the
Mudlogassociated with thisWell.- Returns:
An
ObjectRepositorycontainingMudloginstances.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Get all mudlogs mudlogs = well.mudlogs print(mudlogs.to_dict()) # Find a specific mudlog mudlog = mudlogs.find_by_name('Mudlog1') print(mudlog.to_dict())
- property time_traces: rogii_solo.base.ObjectRepository[rogii_solo.trace.TimeTrace]¶
Get the
TimeTraceassociated with thisWell.- Returns:
An
ObjectRepositorycontainingTimeTraceinstances.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Get all time traces time_traces = well.time_traces print(time_traces.to_dict()) # Find a specific time trace time_trace = time_traces.find_by_name('TimeTrace1') print(time_trace.to_dict())
- property calc_traces: rogii_solo.base.ObjectRepository[rogii_solo.trace.CalcTrace]¶
Get the
CalcTraceassociated with thisWell.- Returns:
An
ObjectRepositorycontainingCalcTraceinstances.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Get all calculated traces calc_traces = well.calc_traces print(calc_traces.to_dict()) # Find a specific calculated trace calc_trace = calc_traces.find_by_name('CalcTrace1') print(calc_trace.to_dict())
- property comments: rogii_solo.base.ObjectRepository[rogii_solo.comment.Comment]¶
Get the
Commentassociated with thisWell.- Returns:
An
ObjectRepositorycontainingCommentinstances.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Get all comments comments = well.comments print(comments.to_dict()) # Find a specific comment comment = comments.find_by_name('Comment1') print(comment.to_dict())
- property attributes: WellAttributes¶
Get the attributes associated with this
Well.- Returns:
A
WellAttributesinstance containing the well’s attributes.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Get well attributes attributes = well.attributes print(attributes.to_dict())
- to_dict(get_converted: bool = True) Dict[str, Any]¶
Convert the
Wellinstance to a dictionary.- Parameters:
get_converted – Whether to convert values to project units
- Returns:
Dictionary representation of the
Well- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Convert the Well to a dictionary with unit conversion well_dict = well.to_dict() print(well_dict) # Convert the Well to a dictionary without unit conversion raw_dict = well.to_dict(get_converted=False) print(raw_dict)
- to_df(get_converted: bool = True) pandas.DataFrame¶
Convert the
Wellinstance to a Pandas DataFrame.- Parameters:
get_converted – Whether to convert values to project units
- Returns:
DataFrame representation of the
Well- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Convert the Well to a DataFrame well_df = well.to_df() print(well_df)
- replace_trajectory(md_uom: str, incl_uom: str, azi_uom: str, trajectory_stations: rogii_solo.types.DataList)¶
Replace the trajectory data for this
Well.- Parameters:
md_uom – Unit of measurement for measured depth values
incl_uom – Unit of measurement for inclination values
azi_uom – Unit of measurement for azimuth values
trajectory_stations – List of trajectory points data
- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Replace the Well's trajectory trajectory_data = [ {'md': 0, 'incl': 0, 'azim': 0}, {'md': 1000, 'incl': 45, 'azim': 180}, ] well.replace_trajectory( md_uom='ft', incl_uom='deg', azi_uom='deg', trajectory_stations=trajectory_data )
- create_nested_well(name: str, operator: str, api: str, xsrf: float, ysrf: float, kb: float, tie_in_tvd: float, tie_in_ns: float, tie_in_ew: float)¶
Create a new
NestedWellin thisWell.- Parameters:
name – Name of the
NestedWelloperator – Operator of the
NestedWellapi – API number of the
NestedWellxsrf – Surface X coordinate of the
NestedWellysrf – Surface Y coordinate of the
NestedWellkb – Kelly Bushing (KB) elevation of the
NestedWelltie_in_tvd – True Vertical Depth (TVD) at the tie-in point
tie_in_ns – North-South coordinate at the tie-in point
tie_in_ew – East-West coordinate at the tie-in point
- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Create a new well plan well.create_nested_well( name='WellPlan1', operator='Operator1', api='API123', xsrf=1000.0, ysrf=2000.0, kb=100.0, tie_in_tvd=500.0, tie_in_ns=300.0, tie_in_ew=400.0 )
- create_topset(name: str)¶
Create a new
Topsetin thisWell.- Parameters:
name – Name of the
Topset- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Create a new topset well.create_topset('Topset1')
- create_log(name: str, points: rogii_solo.types.DataList)¶
Create a new
Login thisWell.from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Create a new log with some points points = [ {'md': 0, 'value': 100}, {'md': 100, 'value': 200}, {'md': 200, 'value': 300} ] well.create_log(name='Log1', points=points)
- create_target_line(name: str, origin_x: float, origin_y: float, origin_z: float, target_x: float, target_y: float, target_z: float)¶
Create a new
TargetLinein thisWell.- Parameters:
name – Name of the
TargetLineorigin_x – X coordinate of the origin point
origin_y – Y coordinate of the origin point
origin_z – Z coordinate (TVDSS) of the origin point
target_x – X coordinate of the target point
target_y – Y coordinate of the target point
target_z – Z coordinate (TVDSS) of the target point
- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Create a new target line well.create_target_line( name='TargetLine1', origin_x=1000.0, origin_y=2000.0, origin_z=100.0, target_x=1500.0, target_y=2500.0, target_z=200.0 )
- update_meta(name: str | None = keep_value, operator: str | None = keep_value, api: str | None = keep_value, xsrf: float | None = keep_value, ysrf: float | None = keep_value, kb: float | None = keep_value, azimuth: float | None = keep_value, convergence: float | None = keep_value, tie_in_tvd: float | None = keep_value, tie_in_ns: float | None = keep_value, tie_in_ew: float | None = keep_value)¶
Update metadata of this
Well.- Parameters:
name – New name for the
Welloperator – New operator for the
Wellapi – New API number for the
Wellxsrf – New surface X coordinate for the
Wellysrf – New surface Y coordinate for the
Wellkb – New Kelly Bushing (KB) elevation for the
Wellazimuth – New azimuth angle for the
Wellconvergence – New grid convergence angle for the
Welltie_in_tvd – New True Vertical Depth (TVD) at the tie-in point
tie_in_ns – New North-South coordinate at the tie-in point
tie_in_ew – New East-West coordinate at the tie-in point
- Returns:
Updated
Wellinstance- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Update well metadata well.update_meta( name='NewWellName', operator='NewOperator', kb=150.0, azimuth=15.0 )
- class WellAttributes(well: Well, **kwargs)¶
Bases:
rogii_solo.base.BaseObjectRepresent attributes of a
Well, providing access to various well properties and their values.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Get well attributes attributes = well.attributes # Convert attributes to dictionary attrs_dict = attributes.to_dict() print(attrs_dict) # Convert attributes to DataFrame attrs_df = attributes.to_df() print(attrs_df)
- to_dict(get_converted: bool = True) Dict¶
Convert the
WellAttributesinstance to a dictionary.- Parameters:
get_converted – Whether to convert values to project units
- Returns:
Dictionary representation of the
WellAttributes- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') attributes = well.attributes # Get attributes to dictionary with unit conversion attrs_dict = attributes.to_dict() print(attrs_dict) # Get raw attribute to dictionary without conversion attrs_dict = attributes.to_dict(get_converted=False) print(attrs_dict)
- to_df(get_converted: bool = True) pandas.DataFrame¶
Convert the
WellAttributesinstance to a Pandas DataFrame.- Parameters:
get_converted – Whether to convert values to project units
- Returns:
DataFrame representation of the
WellAttributes- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') attributes = well.attributes # Get attributes to DataFrame with unit conversion attrs_dict = attributes.to_dict() print(attrs_dict) # Get raw attribute to DataFrame without conversion attrs_dict = attributes.to_dict(get_converted=False) print(attrs_dict)
- class NestedWell(papi_client: rogii_solo.papi.client.PapiClient, well: Well, **kwargs)¶
Bases:
rogii_solo.base.ComplexObjectRepresent a well plan within a parent
Well. Contains all well plans’ data and operations including trajectory, topsets, and more.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Get well plans well_plans = well.nested_wells # Get a specific well plan well_plan = well_planss.find_by_name('WellPlan1') # Get well plan attributes print(f'Well plan name: {well_plan.name}') print(f'Well plan API: {well_plan.api}') print(f'Well plan operator: {well_plan.operator}') print(f'Well plan KB: {well_plan.kb}') print(f'Well plan surface coordinates: ({well_plan.xsrf}, {well_plan.ysrf})')
- well¶
The
WellthisNestedWellbelongs to.
- project¶
The
ProjectthisNestedWellbelongs to.
- uuid: str | None = None¶
Unique identifier of the
NestedWell.
- name: str | None = None¶
Name of the
NestedWell.
- xsrf: float | None = None¶
Surface X-coordinate of the
NestedWell.
- ysrf: float | None = None¶
Surface Y-coordinate of the
NestedWell.
- xsrf_real: float | None = None¶
Real surface X-coordinate of the
NestedWell.
- ysrf_real: float | None = None¶
Real surface Y-coordinate of the
NestedWell.
- kb: float | None = None¶
Kelly Bushing (KB) elevation of the
NestedWell.
- api: str | None = None¶
API number of the
NestedWell.
- operator: str | None = None¶
Operator of the
NestedWell.
- azimuth: float | None = None¶
Azimuth angle of the
NestedWellin degrees.
- convergence: float | None = None¶
Grid convergence angle of the
NestedWellin degrees.
- starred: bool | None = None¶
Whether this
NestedWellis starred.
- property trajectory: rogii_solo.trajectory.TrajectoryPointRepository[rogii_solo.trajectory.TrajectoryPoint]¶
Get the trajectory data for this
NestedWell.- Returns:
A
TrajectoryPointRepositorycontaining the well plan’s trajectory points.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') well_plan = well.nested_wells.find_by_name('WellPlan1') # Get the well plan's trajectory trajectory = well_plan.trajectory print(trajectory.to_dict())
- property topsets: rogii_solo.base.ObjectRepository[rogii_solo.topset.Topset]¶
Get the topsets associated with this
NestedWell.- Returns:
An
ObjectRepositorycontainingTopsetinstances.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') well_plan = well.nested_wells.find_by_name('WellPlan1') # Get all topsets topsets = well_plan.topsets print(topsets.to_dict()) # Find a specific topset topset = topsets.find_by_name('Topset1') print(topset.to_dict())
- property starred_topset: rogii_solo.topset.Topset | None¶
Get the starred topset for this
NestedWell.- Returns:
The starred
Topsetinstance, or None if none is starred.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') well_plan = well.nested_wells.find_by_name('WellPlan1') # Get the starred topset starred = well_plan.starred_topset if starred: print(starred.to_dict())
- to_dict(get_converted: bool = True) Dict[str, Any]¶
Convert the
NestedWellinstance to a dictionary.- Parameters:
get_converted – Whether to convert values to project units
- Returns:
Dictionary representation of the
NestedWell- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') well_plan = well.nested_wells.find_by_name('WellPlan1') # Convert the well plan to a dictionary with unit conversion well_plan_dict = well_plan.to_dict() print(well_planl_dict) # Convert the well plan to a dictionary without unit conversion raw_dict = well_plan.to_dict(get_converted=False) print(raw_dict)
- to_df(get_converted: bool = True) pandas.DataFrame¶
Convert the
NestedWellinstance to a Pandas DataFrame.- Parameters:
get_converted – Whether to convert values to project units
- Returns:
DataFrame representation of the
NestedWell- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') well_plan = well.nested_wells.find_by_name('WellPlan1') # Convert the well plan to a DataFrame well_plan_df = well_plan.to_df() print(well_plan_df)
- replace_trajectory(md_uom: str, incl_uom: str, azi_uom: str, trajectory_stations: rogii_solo.types.DataList)¶
Replace the trajectory data for this
NestedWell.- Parameters:
md_uom – Unit of measurement for measured depth values
incl_uom – Unit of measurement for inclination values
azi_uom – Unit of measurement for azimuth values
trajectory_stations – List of trajectory points data
- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') well_plan = well.nested_wells.find_by_name('WellPlan1') # Replace the well plan's trajectory trajectory_data = [ {'md': 0, 'incl': 0, 'azim': 0}, {'md': 1000, 'incl': 45, 'azim': 180}, ] well_plan.replace_trajectory( md_uom='ft', incl_uom='deg', azi_uom='deg', trajectory_stations=trajectory_data )
- create_topset(name: str)¶
Create a new topset in this
NestedWell.- Parameters:
name – Name of the topset
- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') well_plan = well.nested_wells.find_by_name('WellPlan1') # Create a new topset well_plan.create_topset('Topset1')
- update_meta(name: str | None = None, operator: str | None = None, api: str | None = None, xsrf: float | None = None, ysrf: float | None = None, kb: float | None = None, tie_in_tvd: float | None = None, tie_in_ns: float | None = None, tie_in_ew: float | None = None) NestedWell¶
Update metadata of this
NestedWell.- Parameters:
name – New name for the
NestedWelloperator – New operator for the
NestedWellapi – New API number for the
NestedWellxsrf – New surface X-coordinate for the
NestedWellysrf – New surface Y-coordinate for the
NestedWellkb – New Kelly Bushing (KB) elevation for the
NestedWelltie_in_tvd – New True Vertical Depth (TVD) at the tie-in point
tie_in_ns – New North-South coordinate at the tie-in point
tie_in_ew – New East-West coordinate at the tie-in point
- Returns:
Updated
NestedWellinstance- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') well_plan = well.nested_wells.find_by_name('WellPlan1') # Update well plan metadata well_plan.update_meta( name='WellPlan2', operator='NewOperator', kb=150.0 )
- class Typewell(papi_client: rogii_solo.papi.client.PapiClient, project: rogii_solo.project.Project, **kwargs)¶
Bases:
rogii_solo.base.ComplexObjectRepresent a
Typewellin aProject. Contains all type well-related data and operations including trajectory, logs, topsets, mudlogs and more.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') # Get linked type wells type_wells = well.linked_typewells # Get a specific type well type_well = type_wells.find_by_name('TypeWell1') # Get type well attributes print(f"Type well name: {type_well.name}") print(f"Type well API: {type_well.api}") print(f"Type well operator: {type_well.operator}") print(f"Type well KB: {type_well.kb}") print(f"Type well surface coordinates: ({type_well.xsrf}, {type_well.ysrf})")
- property trajectory: rogii_solo.trajectory.TrajectoryPointRepository[rogii_solo.trajectory.TrajectoryPoint]¶
Get the trajectory data for this
Typewell.- Returns:
A
TrajectoryPointRepositorycontaining theTypewell
trajectory points.
- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') type_well = well.linked_typewells.find_by_name('TypeWell1') # Get the type well's trajectory trajectory = type_well.trajectory print(trajectory.to_dict())
- property logs: rogii_solo.base.ObjectRepository[rogii_solo.log.Log]¶
Get the list of
Loginstances associated with thisTypewell.- Returns:
An
ObjectRepositorycontainingLoginstances.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') type_well = well.linked_typewells.find_by_name('TypeWell1') # Get all logs logs = type_well.logs print(logs.to_dict()) # Find a specific log log = logs.find_by_name('Log1') print(log.to_dict())
- property topsets: rogii_solo.base.ObjectRepository[rogii_solo.topset.Topset]¶
Get the list of
Topsetinstances associated with thisTypewell.- Returns:
An
ObjectRepositorycontainingTopsetinstances.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') type_well = well.linked_typewells.find_by_name('TypeWell1') # Get all topsets topsets = type_well.topsets print(topsets.to_dict()) # Find a specific topset topset = topsets.find_by_name('Topset1') print(topset.to_dict())
- property starred_topset: rogii_solo.topset.Topset | None¶
Get the starred
Topsetfor thisTypewell.- Returns:
The starred
Topsetinstance, or None if none is starred.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') type_well = well.linked_typewells.find_by_name('TypeWell1') # Get the starred topset starred = type_well.starred_topset if starred: print(starred.to_dict())
- property mudlogs: rogii_solo.base.ObjectRepository[rogii_solo.mudlog.Mudlog]¶
Get the list of
Mudloginstances associated with thisTypewell.- Returns:
An
ObjectRepositorycontainingMudloginstances.- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') type_well = well.linked_typewells.find_by_name('TypeWell1') # Get all mudlogs mudlogs = type_well.mudlogs print(mudlogs.to_dict()) # Find a specific mudlog mudlog = mudlogs.find_by_name('Mudlog1') print(mudlog.to_dict())
- to_dict(get_converted: bool = True) Dict[str, Any]¶
Convert the
Typewellinstance to a dictionary.- Parameters:
get_converted – Whether to convert values to project units
- Returns:
Dictionary representation of the
Typewell- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') type_well = well.linked_typewells.find_by_name('TypeWell1') # Convert the type well to a dictionary with unit conversion type_well_dict = type_well.to_dict() print(type_well_dict) # Convert the type well to a dictionary without unit conversion raw_dict = type_well.to_dict(get_converted=False) print(raw_dict)
- to_df(get_converted: bool = True) pandas.DataFrame¶
Convert the
Typewellinstance to a Pandas DataFrame.- Parameters:
get_converted – Whether to convert values to project units
- Returns:
DataFrame representation of the
Typewell- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') type_well = well.linked_typewells.find_by_name('TypeWell1') # Convert the type well to a DataFrame type_well_df = type_well.to_df() print(type_well_df)
- update_meta(name: str | None = None, operator: str | None = None, api: str | None = None, xsrf: float | None = None, ysrf: float | None = None, kb: float | None = None, convergence: float | None = None, tie_in_tvd: float | None = None, tie_in_ns: float | None = None, tie_in_ew: float | None = None) Typewell¶
Update metadata of this
Typewell.- Parameters:
name – New name for the
Typewelloperator – New operator for the
Typewellapi – New API number for the
Typewellxsrf – New surface X-coordinate for the
Typewellysrf – New surface Y-coordinate for the
Typewellkb – New Kelly Bushing (KB) elevation for the
Typewellconvergence – New grid convergence angle for the
Typewelltie_in_tvd – New True Vertical Depth (TVD) at the tie-in point
tie_in_ns – New North-South coordinate at the tie-in point
tie_in_ew – New East-West coordinate at the tie-in point
- Returns:
Updated
Typewellinstance- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') type_well = well.linked_typewells.find_by_name('TypeWell1') # Update type well metadata type_well.update_meta( name='NewTypeWellName', operator='NewOperator', kb=150.0, convergence=0.2 )
- create_topset(name: str)¶
Create a new
Topsetin thisTypewell.- Parameters:
name – Name of the
Topset- Example:
from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') type_well = well.linked_typewells.find_by_name('TypeWell1') # Create a new topset type_well.create_topset('Topset1')
- create_log(name: str, points: rogii_solo.types.DataList)¶
Create a new
Login thisTypewell.from rogii_solo import SoloClient client_id = ... # Input your client ID client_secret = ... # Input your client secret solo_client = SoloClient(client_id=client_id, client_secret=client_secret) project = solo_client.set_project_by_name('Project1') well = project.wells.find_by_name('Well1') type_well = well.linked_typewells.find_by_name('TypeWell1') # Create a new log with some points points = [ {'md': 0, 'value': 100}, {'md': 100, 'value': 200}, {'md': 200, 'value': 300} ] type_well.create_log(name='Log1', points=points)