Expand description
Geostatistical kriging library with ordinary and binomial kriging, variogram fitting, and optional WASM and GPU support.
This crate provides spatial interpolation via ordinary kriging and prevalence-surface
estimation via binomial kriging. Default binomial kriging is empirical-Bayes
(Beta-prior) logit on the link, calibrated ordinary kriging with per-site logit
observation variance on the covariance diagonal, and logistic back to prevalence; see
BinomialKrigingModel and BinomialBuildNotes (not a full binomial-likelihood
spatial model). The crate also includes empirical variogram computation, parametric model
fitting, and Haversine-based geographic coordinates. Build with wasm for browser
bindings or gpu for GPU-accelerated batch prediction.
§Scope
- Geographic by default. Coordinates are
(latitude, longitude)in degrees and the default distance is Haversine (great-circle, kilometers). This works globally, including near the poles and across the antimeridian, to the precision allowed by the selected floating-point type (see thef64feature below for double precision). - 2-D spatial fields and 2+1-D spatio-temporal fields. The root
krigingmodule covers surfaces that are functions of two spatial coordinates; thespacetimemodule adds an additional scalar time axis with the same four kriging families (ordinary, simple, universal, binomial). There is no 3-D (volumetric) kriging in this crate. - Planar data is supported via
projected.ProjectedCoord+ Euclidean distance +Anisotropy2Dlet you krige(x, y)data in any linear unit (meters, grid cells, pixels). Convert between lat/lon and planar withProjectedCoord::equirectangularfor small areas where the sphere-vs-plane distortion is negligible. The spatio-temporal models are generic over the spatial geometry and accept both geographic and projected coordinates via thespacetime::SpatialMetrictrait.
§WASM initialization
When using the kriging-rs-wasm npm wrapper, you must call and await init() once
before constructing any model. The wrapper guards against the JS-glue-before-WASM race
(it only marks the module ready after the underlying instantiation resolves) — but if
you build your own bindings, make sure the WebAssembly instance is fully available
before calling constructors, otherwise you will see cryptic TypeErrors from
wasm_bindgen.
§Quick example
use kriging_rs::{GeoCoord, GeoDataset, OrdinaryKrigingModel, VariogramModel, VariogramType};
let coords = vec![
GeoCoord::try_new(0.0, 0.0)?,
GeoCoord::try_new(0.0, 1.0)?,
GeoCoord::try_new(1.0, 0.0)?,
];
let values = vec![1.0, 2.0, 1.5];
let dataset = GeoDataset::new(coords, values)?;
let variogram = VariogramModel::new(0.01, 2.0, 300.0, VariogramType::Exponential)?;
let model = OrdinaryKrigingModel::new(dataset, variogram)?;
let prediction = model.predict(GeoCoord::try_new(0.3, 0.3)?)?;§Module organization
kriging— Ordinary kriging (OrdinaryKrigingModel,Prediction) and binomial kriging (BinomialKrigingModel,BinomialObservation, etc.) for spatial interpolation and prevalence surfaces.variogram— Empirical variogram (compute_empirical_variogram), fitting (fit_variogram), and parametric models (VariogramModel,VariogramType).spacetime— Spatio-temporal kriging (ordinary, simple, universal, binomial) with separable and product-sum space-time variograms, empirical + parametric fitting, and generic spatial metrics (geographic or projected).distance—GeoCoordand Haversine distance.geo_dataset— Coordinate–value datasets (GeoDataset).error—KrigingError.wasm(optional,wasmfeature) — Browser-facing WASM bindings.gpu(optional,gpufeature) — GPU backend and batch covariance helpers.
§Features
Default build has no WASM or GPU. Enable with:
wasm— WASM bindings and browser support.gpu— WebGPU-based batch prediction (native and web).gpu-blocking— Blocking GPU helpers on native (includesgpu).
Re-exports§
pub use utils::Probability;pub use utils::clamp_probability;pub use utils::logistic;pub use utils::logit;pub use utils::logit_clamped;pub use distance::GeoCoord;pub use error::KrigingError;pub use geo_dataset::GeoDataset;pub use kriging::binomial::BINOMIAL_CALIBRATION_VERSION;pub use kriging::binomial::BinomialBuildNotes;pub use kriging::binomial::BinomialCalibratedResult;pub use kriging::binomial::BinomialFit;pub use kriging::binomial::BinomialKrigingModel;pub use kriging::binomial::BinomialObservation;pub use kriging::binomial::BinomialPrediction;pub use kriging::binomial::BinomialPrior;pub use kriging::binomial::HeteroskedasticBinomialConfig;pub use kriging::binomial::build_binomial_observations_dropping_zero_trials;pub use kriging::binomial::indices_of_zero_trials;pub use kriging::binomial::logit_observation_variance_empirical_bayes;pub use kriging::ordinary::Neighborhood;pub use kriging::ordinary::OrdinaryKrigingModel;pub use kriging::ordinary::Prediction;pub use kriging::simple::SimpleKrigingModel;pub use kriging::universal::UniversalKrigingModel;pub use kriging::universal::UniversalTrend;pub use projected::Anisotropy2D;pub use projected::BinomialProjectedKrigingModel;pub use projected::DirectionalConfig;pub use projected::ProjectedBinomialFit;pub use projected::ProjectedBinomialObservation;pub use projected::ProjectedCoord;pub use projected::ProjectedDataset;pub use projected::ProjectedKrigingModel;pub use projected::compute_directional_empirical_variogram;pub use projected::euclidean_distance;pub use projected::euclidean_distance_squared;pub use variogram::fitting::FitResult;pub use variogram::fitting::fit_variogram;pub use variogram::models::VariogramModel;pub use variogram::models::VariogramType;pub use variogram::nested::NestedVariogram;pub use variogram::EmpiricalEstimator;pub use variogram::PositiveReal;pub use variogram::VariogramConfig;pub use variogram::compute_empirical_variogram;pub use variogram::compute_empirical_variogram_binomial_calibrated;
Modules§
- aggregate
- Aggregation helpers over conditional simulation ensembles.
- cv
- Cross-validation for kriging models.
- distance
- error
- geo_
dataset - Coordinate–value datasets for kriging (pairs of locations and observed values).
- kriging
- Kriging models for spatial interpolation and prevalence surfaces.
- projected
- Projected (planar) coordinates with Euclidean distance and 2-D anisotropy.
- simulation
- Conditional simulation via sequential Gaussian simulation (SGS).
- spacetime
- Space–time kriging.
- utils
- variogram
- Variogram computation, fitting, and parametric models.
Type Aliases§
- Real
- Floating-point type used for coordinates, values, and variogram parameters.