YAML Logfile¶
This page describes the normalized logfile YAML shape used by wellplot.
The logfile format is the main file-backed authoring surface for printable reports.
Top-level shape¶
At the highest level, a logfile contains:
version: 1
name: my-log
data:
source_path: path/to/file.las
source_format: auto
render:
backend: matplotlib
output_path: out.pdf
dpi: 300
document:
page: ...
depth: ...
layout: ...
bindings: ...
Required top-level keys:
versionnamerenderdocument
Optional top-level keys:
data
data¶
Use top-level data when one source file feeds the report by default.
Keys:
source_pathsource_formatautolasdlis
Section-first data loading is also supported. A section can override the root
data source through its own data block.
render¶
The render block controls backend selection and output behavior.
Main keys:
backendmatplotlibplotlyoutput_pathdpicontinuous_strip_page_height_mmmatplotlib.style
Use matplotlib for printable multisection reports.
Use plotly for interactive single-section rendering.
document¶
The document block contains page, axis, layout, and binding configuration.
Main keys:
pagedepthheaderfootermarkerszoneslayoutbindings
document.page¶
Page settings control physical layout and section strip behavior.
Important keys:
sizewidth_mmheight_mmorientationcontinuousbottom_track_header_enabledmargin_left_mmmargin_right_mmmargin_top_mmmargin_bottom_mmtrack_gap_mmheader_height_mmtrack_header_height_mmfooter_height_mm
Common pattern:
page:
size: A4
orientation: portrait
track_header_height_mm: 18
track_gap_mm: 0
document.depth¶
The shared layout axis lives in document.depth.
Keys:
unitscalemajor_stepminor_step
Example:
depth:
unit: ft
scale: 240
major_step: 10
minor_step: 2
Reference tracks can override the active layout axis through their
reference.define_layout settings.
document.layout¶
The project is now track-first and section-first.
Main keys:
headingremarkstaillog_sections
Each log section defines:
- its own
id - optional section
data - the list of physical tracks to render
log_sections[*].tracks¶
Each section track defines layout, not channel binding.
Core keys:
idtitlekindwidth_mm
Optional keys:
positionx_scalegridtrack_headerreferenceannotations
Supported track kinds:
reference- depth/time axis track and reference overlays
normal- scalar curve track
array- raster or waveform track with scalar overlays
annotation- interval/text/marker/arrow/glyph track
Compatibility aliases still parse, but the explicit kinds above are the intended public vocabulary.
Track header configuration¶
Track headers use explicit object slots.
Example:
track_header:
objects:
- kind: title
enabled: true
reserve_space: true
line_units: 3
- kind: scale
enabled: true
reserve_space: true
line_units: 2
- kind: legend
enabled: true
reserve_space: true
line_units: 1
Supported header object kinds:
titlescalelegend
document.bindings¶
Bindings attach channels to the physical tracks defined in layout.
Main keys:
on_missingchannels
Each binding normally includes:
sectiontrack_idchannelkind
Supported binding kinds:
curveraster
Curve bindings¶
Curve bindings support the main scalar rendering features.
High-value keys:
labelstylescaleheader_displaycalloutsfillreference_overlayvalue_labelswraprender_mode
Implemented fill modes:
between_curvesbetween_instancesto_lower_limitto_upper_limitbaseline_split
Curve header controls:
show_nameshow_unitshow_limitsshow_colorwrap_name
Raster bindings¶
Raster bindings support VDL, waveform, and image-style array tracks.
High-value keys:
labelstyleprofilenormalizationwaveform_normalizationclip_percentilesinterpolationshow_rasterraster_alphacolor_limitscolorbarsample_axiswaveform
Typical array-track use cases:
- VDL density rendering
- waveform-only displays
- waveform overlay on top of raster density
Reference-track extras¶
Reference tracks can host local events and scalar overlays while still defining the layout axis.
Track-level reference keys:
axisdefine_layoutunitscalemajor_stepminor_stepevents
Curve binding reference_overlay keys:
modecurveindicatortickstick_sidelane_startlane_endtick_length_ratiothreshold
Annotation tracks¶
Annotation tracks do not use channel bindings for their main content. They use typed track-local objects.
Supported annotation objects:
intervaltextmarkerarrowglyph
Annotation tracks also respect the standard grid configuration, which means
the background grid can be turned on or off without changing object behavior.
Heading, remarks, and tail¶
Report packet pages are configured in document.layout.
heading- first report page cover block
remarks- first-page remarks section
tail- optional tail page using the same information model
See Report Pages for the report-specific structure.
Validation helpers¶
For Python-side validation:
wellplot.get_logfile_json_schema()wellplot.validate_logfile_mapping(...)
For file loading:
wellplot.load_logfile(...)wellplot.logfile_from_mapping(...)
Example starting points¶
examples/cbl_job_demo.log.yamlexamples/cbl_report_pages.log.yamlexamples/cbl_report_pages_open_hole.log.yamlexamples/cbl_feature_showcase_full.log.yamlexamples/reference_track_overlays.log.yaml