Skip to main content

Python wrapper for a Fortran kriging and sequential Gaussian simulation engine

Project description

krigekit

PyPI Python CI

A Python wrapper for a high-performance Fortran kriging engine parallelised with OpenMP.

Capability Notes
Ordinary and simple kriging Point and block support
Co-kriging Linear Model of Coregionalisation
Universal kriging / KED External drift variables
Sequential Gaussian Simulation Reproducible paths, multi-realisation, optional normal-score transform
Space-time kriging Sum-metric and product-sum ST models
Multiple Indicator Kriging / SIS Categorical variables, three cross-variogram strategies
Spatially Varying Anisotropy Per-block variogram
Cross-validation Leave-one-out
Kriging weight reuse Store and replay weights

Full documentation →


Installation

pip

pip install krigekit

Pre-built binary wheels are available for:

Platform Architecture Minimum OS
Linux x86_64 manylinux_2_28 (RHEL 8 / Ubuntu 20.04 equivalent)
macOS arm64 (Apple Silicon) macOS 14 Sonoma
macOS x86_64 (Intel) macOS 15 Sequoia
Windows x86_64 Windows 10 / Server 2019

Requires Python 3.10, 3.11, or 3.12.

conda / mamba

conda-forge packaging is planned. In the meantime, install via pip inside a conda environment:

conda create -n krigekit python=3.12
conda activate krigekit
pip install krigekit

Quick start

import numpy as np
from krigekit import Kriging

obs_coord  = np.array([[0,0],[1,0],[0,1],[1,1],[0.5,0.5]], dtype=float)
obs_value  = np.array([1.0, 2.0, 3.0, 4.0, 2.5])
grid_coord = np.mgrid[0:1.1:0.25, 0:1.1:0.25].reshape(2,-1).T

k = Kriging()
k.set_obs(ivar=1, coord=obs_coord, value=obs_value)
k.set_grid(coord=grid_coord)
k.set_vgm(ivar=1, jvar=1, vtype="sph", sill=1.0, a_major=1.0)
k.set_search()
k.solve()
df = k.get_result_df()
del k

For the full class API, co-kriging, SGSIM, space-time kriging, indicator simulation, and more, see the user guide and gallery examples.


Repository structure

krigekit/
├── src/
│   ├── libkriging/      Fortran kriging engine
│   ├── sparks/          Pilot-point kriging/SGSIM CLI
│   └── krigekit/        Python ctypes wrapper
├── examples/            Sphinx-Gallery example scripts
├── tests/               pytest test suite
├── test_data/           CSV/image data used by tests and examples
├── docs/                Sphinx documentation source
├── build_lib.py         Fortran compile script
├── environment.yml      conda/mamba development environment
└── pyproject.toml       pip package configuration

Contributing

Building from source

A Fortran compiler is required (gfortran ≥ 10 or Intel ifx/ifort).

# Clone and set up the development environment
git clone https://github.com/ougx/krigekit.git
cd krigekit

# Compile the Fortran library
python build_lib.py --compiler gfortran      # Linux / macOS
python build_lib.py --compiler gfortran      # Windows (MinGW via MSYS2)
python build_lib.py --compiler ifx           # Windows (Intel oneAPI)

# Install in editable mode with dev dependencies
pip install -e ".[dev]"

Additional build options:

python build_lib.py --opt debug        # debug build, no optimisation
python build_lib.py --no-openmp        # disable OpenMP
python build_lib.py --hcache 0         # disable factor cache

Workflow

  1. Fork the repository and create a feature branch.
  2. Add tests for any new behaviour.
  3. Run pytest to confirm all tests pass.
  4. Open a pull request.

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

krigekit-0.2.2-py3-none-win_amd64.whl (765.3 kB view details)

Uploaded Python 3Windows x86-64

krigekit-0.2.2-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded Python 3manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

krigekit-0.2.2-py3-none-macosx_15_0_x86_64.whl (1.9 MB view details)

Uploaded Python 3macOS 15.0+ x86-64

krigekit-0.2.2-py3-none-macosx_14_0_arm64.whl (1.2 MB view details)

Uploaded Python 3macOS 14.0+ ARM64

File details

Details for the file krigekit-0.2.2-py3-none-win_amd64.whl.

File metadata

  • Download URL: krigekit-0.2.2-py3-none-win_amd64.whl
  • Upload date:
  • Size: 765.3 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for krigekit-0.2.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 e15ecba4faee35837d798595462a75f442611b51707f32aad5ecfdb68c3ef89e
MD5 4b6f1f5ea5bca6b2e55a8256eb63da50
BLAKE2b-256 ee6133bf336919d452e3a1f2a7e6bbe3ffe71e7e84986afe8f5a73566291d74d

See more details on using hashes here.

Provenance

The following attestation bundles were made for krigekit-0.2.2-py3-none-win_amd64.whl:

Publisher: build_wheels.yml on ougx/krigekit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file krigekit-0.2.2-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for krigekit-0.2.2-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 220ab78412b1766c2e5a8c553f4633550189ad11276319a6887a69fbd97c3ab7
MD5 f5e0a5b8600bc392ea9b483b2b1ea6fa
BLAKE2b-256 6624bbafe54718a637638fd79409aab78ed0cadf38ecb1ca7f9ee3ce935aeb38

See more details on using hashes here.

Provenance

The following attestation bundles were made for krigekit-0.2.2-py3-none-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build_wheels.yml on ougx/krigekit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file krigekit-0.2.2-py3-none-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for krigekit-0.2.2-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 33bffad4efa1c9e00829c4797c9fa1cbf9a1f97d42c2697dfe93f6011d61fa79
MD5 f8f4ee8192ef6df405044987aad6c4a1
BLAKE2b-256 6e5753411e63c69566bcf3603a500e17472a90661b8295c467eb10bd68df5f19

See more details on using hashes here.

Provenance

The following attestation bundles were made for krigekit-0.2.2-py3-none-macosx_15_0_x86_64.whl:

Publisher: build_wheels.yml on ougx/krigekit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file krigekit-0.2.2-py3-none-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for krigekit-0.2.2-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 1818d733f28f37e96b02fe04f8ea387ce99116cd05d9764795bdb0ac11fea104
MD5 038e49313f18c814659f63e5b5aa7fb4
BLAKE2b-256 d62bb14b29ca3fb01a825f8d807da7a8556fe6bb3cf6b0d8ec0e588c94d09c61

See more details on using hashes here.

Provenance

The following attestation bundles were made for krigekit-0.2.2-py3-none-macosx_14_0_arm64.whl:

Publisher: build_wheels.yml on ougx/krigekit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page