Python API Workflow¶
Use the Python API when the log is part of a data-processing workflow.
Best fit¶
- Jupyter notebooks
- computed channels
- alignment and merge operations before rendering
- automated report generation from scripts or services
Main modules¶
wellplot.api.datasetwellplot.api.builderwellplot.api.renderwellplot.api.serialize
Typical flow¶
- create or load a
WellDataset - add curves, arrays, or raster data
- align, convert, sort, and merge channels
- build the layout with
LogBuilder - render a report or a partial scope
- optionally save the resulting layout/report YAML
Minimal example¶
from wellplot import DatasetBuilder, LogBuilder, render_report
# Build data
working = (
DatasetBuilder(name="demo")
.add_curve(
mnemonic="GR",
values=[70.0, 72.0, 75.0],
index=[8200.0, 8201.0, 8202.0],
index_unit="ft",
value_unit="gAPI",
)
.build()
)
# Build layout
builder = LogBuilder(name="demo")
builder.set_render(backend="matplotlib", dpi=180)
builder.set_page(size="A4", orientation="portrait")
builder.set_depth_axis(unit="ft", scale=240)
section = builder.add_section("main", dataset=working, title="Main")
section.add_track(
id="depth",
title="",
kind="reference",
width_mm=16,
reference={"axis": "depth", "define_layout": True, "unit": "ft"},
)
section.add_track(id="gr", title="", kind="normal", width_mm=30)
section.add_curve(
channel="GR",
track_id="gr",
label="Gamma Ray",
scale={"kind": "linear", "min": 0, "max": 150},
)
report = builder.build()
# Render
render_report(report, output_path="demo.pdf")
Reference examples¶
examples/api_dataset_ingest_demo.pyexamples/api_layout_render_demo.pyexamples/api_partial_render_demo.pyexamples/api_notebook_bytes_demo.pyexamples/api_end_to_end_demo.py