Rogii Solo.Trace

Trace

attribute well

The Well that contains this Trace.

attribute uuid

Unique identifier of the Trace.

attribute name

Name of the Trace.

property points

Abstract method to get the points of the Trace.

method to_dict()

Convert the Trace instance to a dictionary.

method to_df()

Convert the Trace instance to a Pandas DataFrame.

TimeTrace

attribute hash

Hash value of the TimeTrace data.

attribute unit

Unit of measurement for the TimeTrace values.

attribute start_date_time_index

Start time of the TimeTrace data.

attribute last_date_time_index

End time of the TimeTrace data.

property points

Get the points associated with this TimeTrace.

method to_dict()

Convert the TimeTrace instance to a dictionary.

TimeTracePoint

attribute index

Time index of the measurement of this TimeTracePoint.

attribute value

Value of the measurement of this TimeTracePoint.

method to_dict()

Convert the this TimeTracePoint to a dictionary.

method to_df()

Convert the this TimeTracePoint to a Pandas DataFrame.

CalcTrace

attribute hash

Hash value of the CalcTrace data.

attribute start_date_time_index

Start time of the CalcTrace data.

attribute last_date_time_index

End time of the CalcTrace data.

property points

Get the points associated with this CalcTrace.

property rac_codes

Get the RAC (Rotary Activity Code) codes associated with this CalcTrace.

method to_dict()

Convert the CalcTrace instance to a dictionary.

CalcTracePoint

attribute start

Start time of the interval.

attribute end

End time of the interval.

attribute value

Value calculated for this interval.

method to_dict()

Convert the CalcTracePoint to a dictionary.

method to_df()

Convert the CalcTracePoint to a Pandas DataFrame.

RacCode

attribute code

Numeric code of the RacCode.

attribute status

Description of the RacCode.

method to_dict()

Convert the RacCode to a dictionary.

method to_df()

Convert the RacCode to a Pandas DataFrame.

TracePointRepository

attribute start_date_time_index

Start time of the trace data.

attribute last_date_time_index

End time of the trace data.

method to_dict(time_from, time_to)

-

method to_df(time_from, time_to)

Convert the TracePointRepository to a Pandas DataFrame.

TimeTracePointRepository

method to_dict(time_from, time_to)

Converts the TimeTracePointRepository to a list of dictionaries, filtered by time range.

CalcTracePointRepository

method to_dict(time_from, time_to)

Convert the CalcTracePointRepository to a list of dictionaries, filtered by time range.

Module Contents

class Trace(papi_client: rogii_solo.papi.client.PapiClient, well: rogii_solo.well.Well, **kwargs)

Bases: rogii_solo.base.ComplexObject

Base class for Traces in a Well. A trace represents a series of measurements or calculations over time or depth.

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 a time Trace name
trace = well.time_traces.find_by_name('Trace1')
print(trace.name)

# Get a time Trace ID
trace = well.time_traces.find_by_id('TraceID')
print(trace.uuid)
well: rogii_solo.well.Well

The Well that contains this Trace.

uuid: str | None = None

Unique identifier of the Trace.

name: str | None = None

Name of the Trace.

property points: TracePointRepository
Abstractmethod:

Abstract method to get the points of the Trace.

to_dict() Dict

Convert the Trace instance to a dictionary.

Returns:

Dictionary representation of the Trace.

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')
trace = well.calc_traces.find_by_name('Trace1')

# Convert the calculated Trace to a dictionary
trace_dict = trace.to_dict()
print(trace_dict)
to_df() pandas.DataFrame

Convert the Trace instance to a Pandas DataFrame.

Returns:

DataFrame representation of the Trace.

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')
trace = well.calc_traces.find_by_name('Trace1')

# Convert the calculated Trace to a DataFrame
trace_df = trace.to_df()
print(trace_df)
class TimeTrace(papi_client: rogii_solo.papi.client.PapiClient, well: rogii_solo.well.Well, **kwargs)

Bases: Trace

Represent a time-based Trace in a 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')
time_trace = well.time_traces.find_by_name('TimeTrace1')

# Get the hash of the time trace
trace_hash = time_trace.hash
print(trace_hash)

# Get the unit of measurement
trace_unit = time_trace.unit
print(trace_unit)

# Get the start and end time indices
start_time = time_trace.start_date_time_index
end_time = time_trace.last_date_time_index
print(f'From {start_time} to {end_time}')
hash: str | None = None

Hash value of the TimeTrace data.

unit: str | None = None

Unit of measurement for the TimeTrace values.

start_date_time_index: str | None = None

Start time of the TimeTrace data.

last_date_time_index: str | None = None

End time of the TimeTrace data.

property points: TimeTracePointRepository

Get the points associated with this TimeTrace.

Returns:

A TimeTracePointRepository containing the TimeTrace 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')
time_trace = well.time_traces.find_by_name('TimeTrace1')

# Get the points of the time Trace
points = time_trace.points
print(points.to_dict())
to_dict() Dict

Convert the TimeTrace instance to a dictionary.

Returns:

Dictionary representation of the TimeTrace.

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')
time_trace = well.time_traces.find_by_name('TimeTrace1')

# Convert the time Trace to a dictionary
time_trace_dict = time_trace.to_dict()
print(time_trace_dict)
class TimeTracePoint(**kwargs)

Bases: rogii_solo.base.BaseObject

Represent a single point in a TimeTrace, containing a time index and value.

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')
time_trace = well.time_traces.find_by_name('TimeTrace1')

# Get the first point of the time trace
point = time_trace.points[0]

# Get the time index of the point
time_index = point.index
print(time_index)

# Get the value at this time point
value = point.value
print(value)
index: str | None = None

Time index of the measurement of this TimeTracePoint.

value: float | None = None

Value of the measurement of this TimeTracePoint.

to_dict() Dict

Convert the this TimeTracePoint to a dictionary.

Returns:

Dictionary representation of the TimeTracePoint.

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')
time_trace = well.time_traces.find_by_name('TimeTrace1')
time_trace_point = time_trace.points[0]

# Convert the time trace point to a dictionary
time_trace_point_dict = time_trace_point.to_dict()
print(time_trace_point_dict)
to_df() pandas.DataFrame

Convert the this TimeTracePoint to a Pandas DataFrame.

Returns:

DataFrame representation of the this TimeTracePoint.

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')
time_trace = well.time_traces.find_by_name('TimeTrace1')
time_trace_point = time_trace.points[0]

# Convert the time trace point to a DataFrame
time_trace_point_df = time_trace_point.to_df()
print(time_trace_point_df)
class CalcTrace(papi_client: rogii_solo.papi.client.PapiClient, well: rogii_solo.well.Well, **kwargs)

Bases: Trace

Represent a calculated Trace in a Well. Calculated traces contain derived values computed over time intervals.

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')
calc_trace = well.calc_traces.find_by_name('CalcTrace1')

# Get the hash of the calculated trace
trace_hash = calc_trace.hash
print(trace_hash)

# Get the start and end time indices
start_time = calc_trace.start_date_time_index
end_time = calc_trace.last_date_time_index
print(f'From {start_time} to {end_time}')

# Get available RAC codes
rac_codes = calc_trace.rac_codes
print(rac_codes.to_dict())
hash: str | None = None

Hash value of the CalcTrace data.

start_date_time_index: str | None = None

Start time of the CalcTrace data.

last_date_time_index: str | None = None

End time of the CalcTrace data.

property points: CalcTracePointRepository

Get the points associated with this CalcTrace.

Returns:

A CalcTracePointRepository containing the CalcTrace 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')
calc_trace = well.calc_traces.find_by_name('CalcTrace1')

# Get the points of the calculated trace
points = calc_trace.points
print(points.to_dict())
property rac_codes: rogii_solo.base.ObjectRepository[RacCode]

Get the RAC (Rotary Activity Code) codes associated with this CalcTrace.

Returns:

An ObjectRepository containing RacCode 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')
calc_trace = well.calc_traces.find_by_name('CalcTrace1')

# Get the RAC codes
rac_codes = calc_trace.rac_codes
print(rac_codes.to_dict())
to_dict() Dict

Convert the CalcTrace instance to a dictionary.

Returns:

Dictionary representation of the CalcTrace.

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')
calc_trace = well.calc_traces.find_by_name('CalcTrace1')

# Convert the calculated trace to a dictionary
calc_trace_dict = calc_trace.to_dict()
print(calc_trace_dict)
class CalcTracePoint(**kwargs)

Bases: rogii_solo.base.BaseObject

Represent a single point in a CalcTrace, containing start time, end time, and value.

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')
calc_trace = well.calc_traces.find_by_name('CalcTrace1')

# Get the first point of the calculated trace
point = calc_trace.points[0]

# Get the start and end times of the point
start_time = point.start
end_time = point.end
print(f'From {start_time} to {end_time}')

# Get the value for this time interval
value = point.value
print(value)
start: str | None = None

Start time of the interval.

end: str | None = None

End time of the interval.

value: float | None = None

Value calculated for this interval.

to_dict() Dict

Convert the CalcTracePoint to a dictionary.

Returns:

Dictionary representation of the CalcTracePoint.

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')
calc_trace = well.calc_traces.find_by_name('CalcTrace1')
calc_trace_point = calc_trace.points[0]

# Convert the calculated trace point to a dictionary
calc_trace_point_dict = calc_trace_point.to_dict()
print(calc_trace_point_dict)
to_df() pandas.DataFrame

Convert the CalcTracePoint to a Pandas DataFrame.

Returns:

DataFrame representation of the CalcTracePoint.

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')
calc_trace = well.calc_traces.find_by_name('CalcTrace1')
calc_trace_point = calc_trace.points[0]

# Convert the calculated trace point to a DataFrame
calc_trace_point_df = calc_trace_point.to_df()
print(calc_trace_point_df)
class RacCode(**kwargs)

Bases: rogii_solo.base.BaseObject

Represent a RAC (Rotary Activity Code) code and its associated status.

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')
calc_trace = well.calc_traces.find_by_name('CalcTrace1')

# Get all RAC codes
rac_codes = calc_trace.rac_codes

# Get a specific RAC code
drilling_code = rac_codes.find_by_code(21)
print(f'Code {drilling_code.code}: {drilling_code.status}')
code: str | None = None

Numeric code of the RacCode.

status: str | None = None

Description of the RacCode.

to_dict() Dict

Convert the RacCode to a dictionary.

Returns:

Dictionary representation of the RacCode.

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')
calc_trace = well.calc_traces.find_by_name('CalcTrace1')
rac_code = calc_trace.rac_codes[0]

# Convert the RAC code to a dictionary
rac_code_dict = rac_code.to_dict()
print(rac_code_dict)
to_df() pandas.DataFrame

Convert the RacCode to a Pandas DataFrame.

Returns:

DataFrame representation of the RacCode.

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')
calc_trace = well.calc_traces.find_by_name('CalcTrace1')
rac_code = calc_trace.rac_codes[0]

# Convert the RAC code to a DataFrame
rac_code_df = rac_code.to_df()
print(rac_code_df)
class TracePointRepository(start_date_time_index: str, last_date_time_index: str, objects: List[TimeTracePoint | CalcTracePoint] = None)

Bases: list

Base class for repositories of trace points. Provides common functionality for managing collections of trace 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')
time_trace = well.time_traces.find_by_name('TimeTrace1')

# Get instance of the TracePointRepository
points = time_trace.points

# Get start date time index of the points
start_index = points.start_date_time_index
print(start_index)

# Get last date time index of the points
last_index = points.last_date_time_index
print(last_index)
start_date_time_index: str

Start time of the trace data.

last_date_time_index: str

End time of the trace data.

abstract to_dict(time_from: str = None, time_to: str = None) rogii_solo.types.DataList
to_df(time_from: str = None, time_to: str = None) pandas.DataFrame

Convert the TracePointRepository to a Pandas DataFrame.

Parameters:
  • time_from – (Optional) Start time for filtering points

  • time_to – (Optional) End time for filtering points

Returns:

DataFrame representation of the filtered 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')
calc_trace = well.calc_traces.find_by_name('CalcTrace1')
points = calc_trace.points

# Convert the points to a DataFrame
points_df = points.to_df(time_from='2023-01-01T00:00:00', time_to='2023-01-02T00:00:00')
print(points_df)
class TimeTracePointRepository(start_date_time_index: str, last_date_time_index: str, objects: List[TimeTracePoint | CalcTracePoint] = None)

Bases: TracePointRepository

Repository for TimeTracePoint objects with time-based filtering capabilities.

to_dict(time_from: str = None, time_to: str = None)

Converts the TimeTracePointRepository to a list of dictionaries, filtered by time range.

Parameters:
  • time_from – (Optional) Start time for filtering points

  • time_to – (Optional) End time for filtering points

Returns:

List of dictionaries representing the filtered 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')
time_trace = well.time_traces.find_by_name('TimeTrace1')

# Get all points
points = time_trace.points

# Get points within a specific time range
filtered_points = points.to_dict(time_from='2023-01-01T00:00:00', time_to='2023-01-02T00:00:00')
print(filtered_points)
class CalcTracePointRepository(start_date_time_index: str, last_date_time_index: str, objects: List[TimeTracePoint | CalcTracePoint] = None)

Bases: TracePointRepository

Repository for CalcTracePoint objects with time-based filtering capabilities.

to_dict(time_from: str = None, time_to: str = None)

Convert the CalcTracePointRepository to a list of dictionaries, filtered by time range. Points that overlap with the specified time range are included.

Parameters:
  • time_from – (Optional) Start time for filtering points

  • time_to – (Optional) End time for filtering points

Returns:

List of dictionaries representing the filtered 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')
calc_trace = well.calc_traces.find_by_name('CalcTrace1')

# Get all points
points = calc_trace.points

# Get points within a specific time range
filtered_points = points.to_dict(time_from='2023-01-01T00:00:00', time_to='2023-01-02T00:00:00')
print(filtered_points)