PETROPHYSICS.IO
DOCUMENTATION

Crossplot reference

Plot any two numeric LAS curves, then inspect, colour, filter and select the samples.

Danila Karnaukh · Petrophysicistv17 · Updated 2026-10-04Markdown version

Lock dock (v16)

Turn Lock dock on below the tool switcher to share the original LAS across Log Viewer, Crossplot, Histogram and Python in the same browser and website address. New files, sample files and removal synchronize with open tabs. The stored original LAS restores after navigation or reload. Turning off deletes the stored shared LAS and leaves open datasets in place.

Scripts, calculated results and plot settings stay in each tool. A different shared LAS resets results/views and stops a run against the old file while keeping editor text. Save your project before leaving a page. Export LAS and reimport it while locked to share calculated curves as source curves. Read Lock dock: workflow, storage and limitations.

Load data and choose axes

Use Choose LAS file, drag one file into the drop area, or select Try with sample data. LAS versions through 3.0 are supported, including WRAP YES; files are limited to 25 MiB, 250,000 rows and 5,000,000 data cells across all tables. This is the well-log LAS format, not LiDAR LAS.

Choose the horizontal X and vertical Y curves. Units are taken directly from the LAS. Swap axes exchanges both curves and their scale settings. Changing a curve clears its manual limits and the selection.

Axis tab

Linear and logarithmic scales are available independently. Blank limits mean Auto. Min and Max are display endpoints: X Min is left, X Max is right; Y Min is bottom, Y Max is top. Set Min greater than Max to reverse an axis. For density increasing downwards, set Y Min to 2.75 and Y Max to 1.95.

Logarithmic limits must be positive. Missing pairs and pairs with a non-positive value on a logarithmic axis are excluded. The counters and Verify plot report these separately. Drag a rectangle to zoom; Reset view or double-click restores the configured limits. Zooming does not change the stored axis settings.

Points and colouring

Points offers square, circle, triangle, diamond, plus and cross markers; size 1–20 px or Auto; and a uniform colour. Colouring can use any numeric curve with Viridis, Plasma, Ocean, Warm, Blue–white–red or Greyscale. The palette can be reversed.

Blank colour limits use the full LAS curve, independently of zoom, selection or filtering. Manual limits clamp outliers to the endpoint colours. Descending limits reverse the value mapping. Missing colour values appear grey; selected points retain the selection colour. A colour curve is not an automatic lithology or fluid classification.

Selection

Choose Select points, then draw a lasso or click a sample. Replace, Add and Remove control membership. Esc cancels a gesture. Selection membership is stored by the original zero-based parsed row number, not depth or position on the screen. A point on the lasso boundary is included. Hidden selections can remain after filtering or zooming.

Filtering

Choose one curve and enter one or two conditions; both conditions must pass (AND). Supported comparisons are >, ≥, <, ≤, = and ≠. Blank condition fields are ignored. Missing filter values fail every comparison. Apply filter commits the draft; Clear filter removes it. Multiple filter curves and OR are not supported.

Regression

ModelMinimum distinct X valuesFit space
Linear2Original Y
Polynomial degree 2 / 3 / 43 / 4 / 5Original Y
Power2; every selected X and Y must be positiveln(Y) against ln(X)
Exponential2; every selected Y must be positiveln(Y) against X

Enable the fit in Regression. It uses selected source rows that pass the filter, regardless of whether they are in the current viewport. Display scales do not transform the fitting data. R² is reported in original Y units, including for power and exponential fits; it is undefined for constant Y. A failed fit shows a reason instead of inventing a result.

The line uses the selection colour and a thickness of 1–20 px. It extends across the current view, so portions outside the selected data are extrapolation.

Save, restore and export

Save settings stores the curve references, axes, viewport, point style, colour mapping, filter, selected row numbers and regression settings in JSON. Load the same LAS before Load settings. Export PNG captures the current view with axes, legends and the fit summary. Verify plot shows the applied scene and counts. No raw LAS values are embedded in settings files.

Settings and API reference · Run density–neutron example · Run density–sonic example

Python and expanded plots (v11)

Click Python editor to run code against the loaded LAS. New result curves are available for X, Y, colouring and filtering. Results offers Use as X, Use as Y and Use as colour. Save project stores the code, curve values and current plot; load the original LAS first to restore it. Import never executes Python. Expand fills the window with the plot and its controls, including X/Y selectors; Dock or Escape restores its position. Python receives all source rows regardless of filters or axis zoom.

Export LAS (v15)

Export LAS is available in Log Viewer, Crossplot, Histogram and Python. It downloads every original parsed curve and all current calculated results. Log Viewer includes Vsh, density porosity and Archie Sw as well as Python results.

Find the button beside Export PNG in the plotting tools, in their expanded plot headers, or beside Save .py in any Python editor, docked or expanded. It becomes available after a LAS loads, even before calculating, and is disabled during Python execution or another project action.

To include a Python curve, call well.add_curve(...) and finish successfully. Earlier committed and restored project results are included. New script, Reset kernel, Stop and a failed run retain previous committed results.

The download contains the full parsed LAS interval and all curves. Track assignments, visible depth limits, axis choices, zoom, filters and point selection do not restrict it. Regression lines are plot objects, not LAS columns.

Open the exported LAS in another tool to reuse results, or load it while Lock dock is on to share it across tools. Python kernels and projects stay specific to each page. CSV export is not included.

// JavaScript in any of the four tools:
const result = await Petrophysics.export_result({format: "las", download: false});
// Omit download:false to start a download.
console.log(result.rows, result.curveCount, result.calculatedCurveCount);
console.log(result.renamedCurves, result.warnings);

The result also includes blob, filename, format, bytes, pythonCurveCount and nullValue. Calculated count includes built-in and Python curves; Python count is its subset. NO_DATASET means load a LAS; PYTHON_RUNNING means finish or stop the run. There is no Python well.export_las method. Request LAS explicitly; default exports remain PNG in plotting tools and JSON in standalone Python.

Python without a LAS (v17)

Python editor works even before a LAS is loaded. Run ordinary Python, NumPy, pandas, SciPy and Matplotlib with your own data; in this mode well is None. Save .py keeps your code. Load a LAS when you need well objects, curve results and LAS export. See the Python reference.

LAS datasets in v22

All four tools share the reader for LAS versions through 3.0. Choose the active table using LAS dataset. Projects record its identity; Lock dock shares that choice and the source file. Numeric plots require numeric data, and Log Viewer requires depth. Python exposes typed fields and all tables with well.datasets and well.dataset(id). Legacy numeric export remains LAS 2.0; LAS 3.0 export retains extra tables and typed fields. LAS formats, syntax and limits.