Skip to content

Python Quickstart

Audience: Python-first builders
Status: Preview

The current Python surface is centered on project access, typed results, and domain-first workflow composition.

The main Python story should be learned through stable nouns first:

  • Project
  • Survey
  • Well
  • Wellbore
  • WellboreBinding
  • TraceLocalPipeline

Advanced transport and extension details still exist, but they should not define the beginner story.

from ophiolite_sdk import Project
project = Project.create("demo-project")
summary = project.summary()
print(summary.root)
print(project.summary())
wells = project.wells()
surveys = project.surveys()
print(len(wells))
print(len(surveys))
if wells:
well = wells[0]
wellbores = well.wellbores()
print(well.name)
print(len(wellbores))
print(len(well.surveys()))

Today the Python SDK is strongest for:

  • project lifecycle
  • survey-backed seismic discovery
  • project-owned seismic operator discovery and execution
  • well and wellbore navigation
  • typed seismic operator chains
  • operator lock inspection
  • operator package installation
  • compute catalog and compute execution

Some import and broader project-manipulation flows are still more complete in Rust than in the Python wrapper.

from ophiolite_sdk import Project, SectionSelection, TraceLocalPipeline
project = Project.open("demo-project")
survey = project.surveys()[0]
selection = SectionSelection.inline(120)
pipeline = (
TraceLocalPipeline.named("Bandpass + RMS AGC")
.bandpass(8.0, 12.0, 45.0, 60.0)
.agc_rms(40.0)
)
catalog = survey.operator_catalog()
preview = survey.preview_processing(selection, pipeline)
processed = survey.run_processing(
pipeline,
output_collection_name="derived-seismic",
)

If you are working directly on .tbvol or .tbgath stores outside an OphioliteProject, use TraceBoostApp and SeismicDataset as the compatibility lane instead of the main builder path.

Stay in Python when you want typed objects, local scripting, notebook-style composition, or a programmable workflow surface that tracks platform nouns instead of raw commands.

Use ophiolite_sdk.operators only when you are authoring external operators. For built-in workflows, prefer typed helpers such as elastic.run_avo(...) and TraceProcessingPipeline.bandpass(...).agc_rms(...).

Next: CLI automation