Rogii Solo.Topset

Topset

attribute well

The well object that contains this topset

attribute uuid

Unique identifier of the Topset

attribute name

Name of the Topset

property tops

Get the Tops (MD/TVD points) associated with this Topset.

property starred_top_top

Get the top starred Top of the Topset.

property starred_top_center

Get the center starred Top of the Topset.

property starred_top_bottom

Get the bottom starred Top of the Topset.

method to_dict(get_converted)

Convert the Topset instance to a dictionary.

method to_df(get_converted)

Convert the Topset instance to a Pandas DataFrame.

method create_top(name, md)

Create a new Top in this Topset.

Top

attribute topset

The Topset that contains this top

attribute measure_units

The measurement units used for this top

attribute uuid

Unique identifier of the Top

attribute name

Name of the Top

attribute md

Measured depth (MD) of the Top

method to_dict(get_converted)

Convert the Top instance to a dictionary.

method to_df(get_converted)

Convert the Top instance to a Pandas DataFrame.

method update_meta(name, md)

Update the metadata of this Top.

Module Contents

class Topset(papi_client: rogii_solo.papi.client.PapiClient, well: WellType, **kwargs)

Bases: rogii_solo.base.ComplexObject

Represent a Topset within a Well, Typewell, or NestedWell. A Topset is a collection of Top objects that mark specific measured depths (MD) in a well, typically used to identify formation boundaries or other significant 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 TopSets of the Well
topsets = well.topsets

# Get a TopSet name
topset = topsets.find_by_name('TopSet1')
print(topset.name)

# Get a TopSet id
topset = topsets.find_by_id('TopSetID')
print(topset.comment_id)
well: WellType

The well object that contains this topset

uuid: str | None = None

Unique identifier of the Topset

name: str | None = None

Name of the Topset

property tops: rogii_solo.base.ObjectRepository[Top]

Get the Tops (MD/TVD points) associated with this Topset.

Returns:

ObjectRepository containing Top instances.

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')
topset = well.topsets.find_by_name('Topset1')

# Get all tops in the topset
tops = topset.tops

# Find a specific top by name
formation_top = tops.find_by_name('Formation1')

# Convert all tops to a dictionary
tops_data = tops.to_dict()

# Convert all tops to a DataFrame
tops_df = tops.to_df()
property starred_top_top: Top | None

Get the top starred Top of the Topset.

Returns:

The top Top instance.

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')
topset = well.topsets.find_by_name('Topset1')

# Get the top starred Top
top = topset.starred_top_top
if top:
    print(f'Top marker: {top.name} at MD {top.md}')
property starred_top_center: Top | None

Get the center starred Top of the Topset.

Returns:

The center Top instance.

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')
topset = well.topsets.find_by_name('Topset1')

# Get the center starred Top
top = topset.starred_top_center

if top:
    print(f'Center marker: {top.name} at MD {top.md}')
property starred_top_bottom: Top | None

Get the bottom starred Top of the Topset.

Returns:

The bottom Top instance.

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')
topset = well.topsets.find_by_name('Topset1')

# Get the bottom starred Top
top = topset.starred_top_bottom

if top:
    print(f'Bottom marker: {top.name} at MD {top.md}')
to_dict(get_converted: bool = True) Dict[str, Any]

Convert the Topset instance to a dictionary.

Parameters:

get_converted – (Optional) Whether to convert values to project units. Default is True.

Returns:

Dictionary representation 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')
topset = well.topsets.find_by_name('Topset1')

# Convert the Topset to a dictionary
topset_dict = topset.to_dict()
print(topset_dict)
to_df(get_converted: bool = True) pandas.DataFrame

Convert the Topset instance to a Pandas DataFrame.

Parameters:

get_converted – (Optional) Whether to convert values to project units. Default is True.

Returns:

DataFrame representation 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')
topset = well.topsets.find_by_name('Topset1')

# Convert the TopSet to a DataFrame
topset_df = topset.to_df()
print(topset_df)
create_top(name: str, md: float)

Create a new Top in this Topset.

Parameters:
  • name – Name of the new top

  • md – Measured depth (MD) of the new top

Raises:

InvalidTopDataException – If the MD value is outside the valid range (0-100000)

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')
topset = well.topsets.find_by_name('Topset1')

# Create a new top at MD 1000.0
topset.create_top(name='Formation1', md=1000.0)
class Top(papi_client: rogii_solo.papi.client.PapiClient, topset: Topset, **kwargs)

Bases: rogii_solo.base.ComplexObject

Represent a Top within a Topset. A Top marks a specific measured depth (MD) in a well, typically used to identify formation boundaries or other significant 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')
topset = well.topsets.find_by_name('Topset1')

# Create a new top
topset.create_top(name='Formation1', md=1000.0)

# Get the top by name
top = topset.tops.find_by_name('Formation1')
topset: Topset

The Topset that contains this top

measure_units: str

The measurement units used for this top

uuid: str | None = None

Unique identifier of the Top

name: str | None = None

Name of the Top

md: float | None = None

Measured depth (MD) of the Top

to_dict(get_converted: bool = True) Dict[str, Any]

Convert the Top instance to a dictionary.

Parameters:

get_converted – (Optional) Whether to convert values to project units. Default is True.

Returns:

Dictionary representation of the Top.

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')
topset = well.topsets.find_by_name('Topset1')
top = topset.tops.find_by_name('Formation1')

# Convert the Top to a dictionary in project units
top_dict = top.to_dict()
print(top_dict)

# Convert the Top to a dictionary without unit conversion
top_dict = top.to_dict(get_converted=False)
print(top_dict)
to_df(get_converted: bool = True) pandas.DataFrame

Convert the Top instance to a Pandas DataFrame.

Parameters:

get_converted – (Optional) Whether to convert values to project units. Default is True.

Returns:

DataFrame representation of the Top.

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')
topset = well.topsets.find_by_name('Topset1')
top = topset.tops.find_by_name('Formation1')

# Convert the Top to a DataFrame
top_df = top.to_df()
print(top_df)
update_meta(name: str, md: float)

Update the metadata of this Top.

Parameters:
  • name – Name for the Top

  • md – Measured depth (MD) for the Top

Raises:

InvalidTopDataException – If the MD value is outside the valid range (0-100000)

Returns:

updated Top

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')
topset = well.topsets.find_by_name('Topset1')
top = topset.tops.find_by_name('Formation1')

try:
    # Update the Top name and MD
    top.update_meta(name='Formation2', md=1100.0)
except InvalidTopDataException:
    print('Invalid MD value. Must be between 0 and 100000.')