Skip to content

giocaizzi/py3dinterpolations

Repository files navigation

py3dinterpolations

py3dinterpolations

Quick 3D interpolation with Python.

PyPI Python Tests Coverage Docs Ruff License: MIT


Interpolate scattered 3D spatial data onto regular grids using Ordinary Kriging or Inverse Distance Weighting (IDW). Built on top of PyKrige and scikit-learn, with built-in preprocessing, cross-validation, and interactive visualizations.

import pandas as pd
from py3dinterpolations import GridData, interpolate

# load your spatial data (columns: ID, X, Y, Z, V)
df = pd.read_csv("measurements.csv")
griddata = GridData(df)

# interpolate onto a regular 3D grid
modeler = interpolate(
    griddata=griddata,
    model_type="ordinary_kriging",
    grid_resolution=5.0,
    model_params={"variogram_model": "linear", "nlags": 6, "weight": True},
)

# access results
grid = modeler.result  # interpolated 3D grid

Features

  • Interpolation — Ordinary 3D Kriging and IDW out of the box
  • Preprocessing — downsampling, coordinate normalization, signal standardization
  • Cross-validation — parameter grid search for kriging models
  • Visualization — 2D slices with matplotlib, interactive 3D with plotly

Installation

pip install py3dinterpolations

With development dependencies:

pip install py3dinterpolations[dev]

Documentation

Full documentation with working examples is available at giocaizzi.github.io/py3dinterpolations.

License

MIT