Expand description
Interpolation module
This module provides implementations of various interpolation methods. These methods are used to estimate values at arbitrary points based on a set of known data points.
§Overview
- 1D interpolation methods (
interp1d
module)- Linear, nearest, cubic interpolation
- PCHIP (Piecewise Cubic Hermite Interpolating Polynomial) - shape-preserving interpolation
- Spline interpolation (
spline
module) - B-spline basis functions and interpolation (
bspline
module):BSpline
- B-spline basis functions and interpolation- Support for derivatives, antiderivatives, and integration
- Knot generation with different styles (uniform, average, clamped)
- Least-squares fitting with B-splines
- NURBS curves and surfaces (
nurbs
module):NurbsCurve
- Non-Uniform Rational B-Spline curvesNurbsSurface
- Non-Uniform Rational B-Spline surfaces- Utility functions for creating common NURBS shapes (circles, spheres)
- Support for control point weights and derivatives
- Bezier curves and surfaces (
bezier
module):BezierCurve
- Parametric curves with control pointsBezierSurface
- Parametric surfaces with control points- Bernstein polynomial basis functions
- Curve/surface evaluation, derivatives, and curve splitting
- Bivariate splines (
bivariate
module):BivariateSpline
- Base class for bivariate splinesSmoothBivariateSpline
- Smooth bivariate spline approximationRectBivariateSpline
- Bivariate spline approximation over a rectangular mesh
- Multivariate interpolation (
interpnd
module) - Advanced interpolation methods (
advanced
module):- Akima spline interpolation - robust to outliers
- Radial Basis Function (RBF) interpolation - for scattered data
- Enhanced RBF interpolation - with automatic parameter selection and multi-scale capabilities
- Kriging (Gaussian process regression) - with uncertainty quantification
- Barycentric interpolation - stable polynomial interpolation
- Thin-plate splines - special case of RBF for smooth interpolation
- GPU-accelerated interpolation (
gpu_accelerated
module):- GPU-accelerated RBF interpolation for large datasets
- Batch spline evaluation using GPU parallelism
- Mixed CPU/GPU workloads for optimal performance
- Multi-GPU support and memory-efficient operations
- Grid transformation and resampling (
grid
module):- Resample scattered data onto regular grids
- Convert between grids of different resolutions
- Map grid data to arbitrary points
- Tensor product interpolation (
tensor
module):- Efficient high-dimensional interpolation on structured grids
- Higher-order interpolation using Lagrange polynomials
- Penalized splines (
penalized
module):- P-splines with various penalty types (ridge, derivatives)
- Cross-validation for optimal smoothing parameter selection
- Constrained splines (
constrained
module):- Splines with explicit monotonicity and convexity constraints
- Support for regional constraints and multiple constraint types
- Constraint-preserving interpolation and least squares fitting
- Tension splines (
tension
module):- Splines with adjustable tension parameters
- Control over the “tightness” of interpolation curves
- Smooth transition between cubic splines and linear interpolation
- Hermite splines (
hermite
module):- Cubic and quintic Hermite interpolation with derivative constraints
- Direct control over function values and derivatives at data points
- Multiple derivative specification options (automatic, fixed, zero, periodic)
- C1 and C2 continuity options (continuous first/second derivatives)
- Multiscale B-splines (
multiscale
module):- Hierarchical B-splines with adaptive refinement
- Different refinement criteria (error-based, curvature-based, combined)
- Multi-level representation with control over precision-complexity tradeoffs
- Efficient representation of functions with varying detail across the domain
- Active learning for adaptive sampling (
adaptive_learning
module):- Intelligent sampling strategies for reducing function evaluations
- Uncertainty-based, error-based, and gradient-based sampling
- Exploration vs exploitation balance for optimal data collection
- Expected improvement and combined sampling strategies
- Statistics tracking and convergence monitoring
- Physics-informed interpolation (
physics_informed
module):- Interpolation methods that respect physical constraints and conservation laws
- Mass, energy, and momentum conservation enforcement
- Positivity-preserving and monotonicity-preserving interpolation
- Boundary condition enforcement and smoothness constraints
- Multi-physics coupling and constraint satisfaction monitoring
- Gaussian process regression with adaptive kernels (
adaptive_gp
module):- Automatic kernel selection and hyperparameter optimization
- Multiple kernel types (RBF, Matérn, Periodic, Linear, Polynomial)
- Uncertainty quantification and probabilistic interpolation
- Model comparison and Bayesian model selection
- Sparse GP methods for scalability to large datasets
- Neural network enhanced interpolation (
neural_enhanced
module):- Hybrid interpolation combining traditional methods with neural networks
- Residual learning to improve base interpolation accuracy
- Multiple neural architectures (MLP, Bayesian, PINN, Transformer)
- Adaptive training with early stopping and regularization
- Uncertainty-aware neural interpolation with Bayesian networks
- Advanced extrapolation methods (
extrapolation
module):- Configurable extrapolation beyond domain boundaries
- Multiple methods: constant, linear, polynomial, periodic, reflected
- Physics-informed extrapolation (exponential, power law)
- Customizable for specific domain knowledge
- Enhanced boundary handling (
boundarymode
module):- Physical boundary conditions for PDEs (Dirichlet, Neumann)
- Domain extension via symmetry, periodicity, and custom mappings
- Separate control of upper and lower boundary behavior
- Support for mixed boundary conditions
- Optimization-based parameter fitting (
optimization
module):- Cross-validation based model selection (K-fold, leave-one-out)
- Regularization parameter optimization with grid search
- Hyperparameter tuning for RBF kernels and spline smoothing
- Model comparison and validation metrics (MSE, MAE, R²)
- Bayesian optimization for efficient parameter search
- Time series specific interpolation (
timeseries
module):- Temporal pattern recognition (trends, seasonality, irregularities)
- Missing data handling with forward/backward fill and interpolation
- Seasonal decomposition and trend-aware interpolation
- Outlier detection and robust temporal smoothing
- Uncertainty estimation for time-dependent predictions
- Holiday and event-aware interpolation strategies
- Geospatial interpolation methods (
geospatial
module):- Geographic coordinate handling (latitude/longitude, projections)
- Spherical interpolation with great circle distances
- Spatial autocorrelation and kriging for Earth science data
- Multi-scale interpolation from local to global coverage
- Elevation-aware 3D interpolation and topographic considerations
- Boundary handling for coastal and land/water transitions
- Utility functions (
utils
module):- Error estimation with cross-validation
- Parameter optimization
- Differentiation and integration of interpolated functions
Re-exports§
pub use error::InterpolateError;
pub use error::InterpolateResult;
pub use adaptive_gp::make_adaptive_gp;
pub use adaptive_gp::AdaptiveGPConfig;
pub use adaptive_gp::AdaptiveGaussianProcess;
pub use adaptive_gp::GPStats;
pub use adaptive_gp::KernelHyperparameters;
pub use adaptive_gp::KernelModel;
pub use adaptive_gp::KernelType as GPKernelType;
pub use adaptive_learning::make_active_learner;
pub use adaptive_learning::ActiveLearner;
pub use adaptive_learning::ActiveLearningConfig;
pub use adaptive_learning::LearningStats;
pub use adaptive_learning::SamplingCandidate;
pub use adaptive_learning::SamplingStrategy;
pub use adaptive_singularity::apply_singularity_handling;
pub use adaptive_singularity::SingularityDetector;
pub use adaptive_singularity::SingularityDetectorConfig;
pub use adaptive_singularity::SingularityInfo;
pub use adaptive_singularity::SingularityType;
pub use adaptive_singularity::TreatmentStrategy;
pub use advanced::akima::make_akima_spline;
pub use advanced::akima::AkimaSpline;
pub use advanced::barycentric::make_barycentric_interpolator;
pub use advanced::barycentric::BarycentricInterpolator;
pub use advanced::barycentric::BarycentricTriangulation;
pub use advanced::enhanced_kriging::make_bayesian_kriging;
pub use advanced::enhanced_kriging::make_enhanced_kriging;
pub use advanced::enhanced_kriging::make_universal_kriging;
pub use advanced::enhanced_kriging::AnisotropicCovariance;
pub use advanced::enhanced_kriging::BayesianKrigingBuilder;
pub use advanced::enhanced_kriging::BayesianPredictionResult;
pub use advanced::enhanced_kriging::EnhancedKriging;
pub use advanced::enhanced_kriging::EnhancedKrigingBuilder;
pub use advanced::enhanced_kriging::TrendFunction;
pub use advanced::enhanced_rbf::make_accurate_rbf;
pub use advanced::enhanced_rbf::make_auto_rbf;
pub use advanced::enhanced_rbf::make_fast_rbf;
pub use advanced::enhanced_rbf::EnhancedRBFInterpolator;
pub use advanced::enhanced_rbf::EnhancedRBFKernel;
pub use advanced::enhanced_rbf::KernelType;
pub use advanced::enhanced_rbf::KernelWidthStrategy;
pub use advanced::fast_kriging::make_fixed_rank_kriging;
pub use advanced::fast_kriging::make_hodlr_kriging;
pub use advanced::fast_kriging::make_local_kriging;
pub use advanced::fast_kriging::make_tapered_kriging;
pub use advanced::fast_kriging::FastKriging;
pub use advanced::fast_kriging::FastKrigingBuilder;
pub use advanced::fast_kriging::FastKrigingMethod;
pub use advanced::fast_kriging::FastPredictionResult;
pub use advanced::kriging::make_kriging_interpolator;
pub use advanced::kriging::CovarianceFunction;
pub use advanced::kriging::KrigingInterpolator;
pub use advanced::rbf::RBFInterpolator;
pub use advanced::rbf::RBFKernel;
pub use advanced::thinplate::make_thinplate_interpolator;
pub use advanced::thinplate::ThinPlateSpline;
pub use bezier::bernstein;
pub use bezier::compute_bernstein_all;
pub use bezier::BezierCurve;
pub use bezier::BezierSurface;
pub use bivariate::BivariateInterpolator;
pub use bivariate::BivariateSpline;
pub use bivariate::RectBivariateSpline;
pub use bivariate::SmoothBivariateSpline;
pub use bivariate::SmoothBivariateSplineBuilder;
pub use boundarymode::make_antisymmetric_boundary;
pub use boundarymode::make_linear_gradient_boundary;
pub use boundarymode::make_periodic_boundary;
pub use boundarymode::make_symmetric_boundary;
pub use boundarymode::make_zero_gradient_boundary;
pub use boundarymode::make_zero_value_boundary;
pub use boundarymode::BoundaryMode;
pub use boundarymode::BoundaryParameters;
pub use boundarymode::BoundaryResult;
pub use bspline::generate_knots;
pub use bspline::make_interp_bspline;
pub use bspline::make_lsq_bspline;
pub use bspline::BSpline;
pub use bspline::BSplineWorkspace;
pub use bspline::ExtrapolateMode as BSplineExtrapolateMode;
pub use bspline::WorkspaceMemoryStats;
pub use cache::make_cached_bspline;
pub use cache::make_cached_bspline_with_config;
pub use cache::BSplineCache;
pub use cache::CacheConfig;
pub use cache::CacheStats;
pub use cache::CachedBSpline;
pub use cache::DistanceMatrixCache;
pub use cache_aware::make_cache_aware_rbf;
pub use cache_aware::CacheAwareBSpline;
pub use cache_aware::CacheAwareRBF;
pub use cache_aware::CacheOptimizedConfig;
pub use cache_aware::CacheOptimizedStats;
pub use cache_aware::CacheSizes;
pub use constrained::ConstrainedSpline;
pub use constrained::Constraint;
pub use constrained::ConstraintRegion;
pub use constrained::ConstraintType;
pub use constrained::FittingMethod;
pub use extrapolation::make_cubic_extrapolator;
pub use extrapolation::make_exponential_extrapolator;
pub use extrapolation::make_linear_extrapolator;
pub use extrapolation::make_periodic_extrapolator;
pub use extrapolation::make_reflection_extrapolator;
pub use extrapolation::ExtrapolationMethod;
pub use extrapolation::ExtrapolationParameters;
pub use extrapolation::Extrapolator;
pub use fast_bspline::make_cached_fast_bspline_evaluator;
pub use fast_bspline::make_fast_bspline_evaluator;
pub use fast_bspline::FastBSplineEvaluator;
pub use fast_bspline::TensorProductFastEvaluator;
pub use geospatial::make_climate_interpolator;
pub use geospatial::make_elevation_interpolator;
pub use geospatial::CoordinateSystem;
pub use geospatial::GeospatialConfig;
pub use geospatial::GeospatialInterpolator;
pub use geospatial::GeospatialResult;
pub use geospatial::InterpolationModel;
pub use geospatial::SpatialStats;
pub use gpu_accelerated::get_gpu_device_info;
pub use gpu_accelerated::is_gpu_acceleration_available;
pub use gpu_accelerated::make_gpu_rbf_interpolator;
pub use gpu_accelerated::GpuBatchSplineEvaluator;
pub use gpu_accelerated::GpuConfig;
pub use gpu_accelerated::GpuDeviceInfo;
pub use gpu_accelerated::GpuRBFInterpolator;
pub use gpu_accelerated::GpuRBFKernel;
pub use gpu_accelerated::GpuStats;
pub use grid::create_regular_grid;
pub use grid::map_grid_to_points;
pub use grid::resample_grid_to_grid;
pub use grid::resample_to_grid;
pub use grid::GridTransformMethod;
pub use hermite::make_hermite_spline;
pub use hermite::make_hermite_spline_with_derivatives;
pub use hermite::make_natural_hermite_spline;
pub use hermite::make_periodic_hermite_spline;
pub use hermite::make_quintic_hermite_spline;
pub use hermite::DerivativeSpec;
pub use hermite::HermiteSpline;
pub use high_dimensional::make_knn_interpolator;
pub use high_dimensional::make_local_rbf_interpolator;
pub use high_dimensional::make_pca_interpolator;
pub use high_dimensional::DimensionReductionMethod;
pub use high_dimensional::HighDimensionalInterpolator;
pub use high_dimensional::HighDimensionalInterpolatorBuilder;
pub use high_dimensional::InterpolatorStats;
pub use high_dimensional::LocalMethod;
pub use high_dimensional::LocalRBFType;
pub use high_dimensional::SparseStrategy;
pub use high_dimensional::SpatialIndexType;
pub use interp1d::cubic_interpolate;
pub use interp1d::hyman_interpolate;
pub use interp1d::linear_interpolate;
pub use interp1d::modified_akima_interpolate;
pub use interp1d::monotonic_interpolate;
pub use interp1d::nearest_interpolate;
pub use interp1d::pchip_interpolate;
pub use interp1d::steffen_interpolate;
pub use interp1d::Interp1d;
pub use interp1d::InterpolationMethod;
pub use interp1d::MonotonicInterpolator;
pub use interp1d::MonotonicMethod;
pub use interp1d::PchipInterpolator;
pub use interpnd::make_interp_nd;
pub use interpnd::make_interp_scattered;
pub use interpnd::map_coordinates;
pub use interpnd::ExtrapolateMode;
pub use interpnd::GridType;
pub use interpnd::RegularGridInterpolator;
pub use interpnd::ScatteredInterpolator;
pub use local::mls::MovingLeastSquares;
pub use local::mls::PolynomialBasis;
pub use local::mls::WeightFunction;
pub use local::polynomial::make_loess;
pub use local::polynomial::make_robust_loess;
pub use local::polynomial::LocalPolynomialConfig;
pub use local::polynomial::LocalPolynomialRegression;
pub use local::polynomial::RegressionResult;
pub use multiscale::make_adaptive_bspline;
pub use multiscale::MultiscaleBSpline;
pub use multiscale::RefinementCriterion;
pub use neural_enhanced::make_neural_enhanced_interpolator;
pub use neural_enhanced::ActivationType;
pub use neural_enhanced::EnhancementStrategy;
pub use neural_enhanced::NeuralArchitecture;
pub use neural_enhanced::NeuralEnhancedInterpolator;
pub use neural_enhanced::NeuralTrainingConfig;
pub use neural_enhanced::TrainingStats;
pub use numerical_stability::apply_tikhonov_regularization;
pub use numerical_stability::assess_matrix_condition;
pub use numerical_stability::check_safe_division;
pub use numerical_stability::machine_epsilon;
pub use numerical_stability::safe_reciprocal;
pub use numerical_stability::solve_with_stability_monitoring;
pub use numerical_stability::ConditionReport;
pub use numerical_stability::StabilityDiagnostics;
pub use numerical_stability::StabilityLevel;
pub use nurbs::make_nurbs_circle;
pub use nurbs::make_nurbs_sphere;
pub use nurbs::NurbsCurve;
pub use nurbs::NurbsSurface;
pub use optimization::grid_search;
pub use optimization::make_cross_validator;
pub use optimization::CrossValidationResult;
pub use optimization::CrossValidationStrategy;
pub use optimization::CrossValidator;
pub use optimization::ModelSelector;
pub use optimization::OptimizationConfig;
pub use optimization::OptimizationResult;
pub use optimization::ValidationMetric;
pub use parallel::make_parallel_loess;
pub use parallel::make_parallel_mls;
pub use parallel::make_parallel_robust_loess;
pub use parallel::ParallelConfig;
pub use parallel::ParallelEvaluate;
pub use parallel::ParallelLocalPolynomialRegression;
pub use parallel::ParallelMovingLeastSquares;
pub use penalized::cross_validate_lambda;
pub use penalized::pspline_with_custom_penalty;
pub use penalized::PSpline;
pub use penalized::PenaltyType;
pub use physics_informed::make_mass_conserving_interpolator;
pub use physics_informed::make_monotonic_physics_interpolator;
pub use physics_informed::make_smooth_physics_interpolator;
pub use physics_informed::ConservationLaw;
pub use physics_informed::PhysicalConstraint;
pub use physics_informed::PhysicsInformedConfig;
pub use physics_informed::PhysicsInformedInterpolator;
pub use physics_informed::PhysicsInformedResult;
pub use scattered_optimized::make_optimized_scattered_interpolator;
pub use scattered_optimized::OptimizedScatteredInterpolator;
pub use scattered_optimized::OptimizedScatteredStats;
pub use scattered_optimized::ScatteredConfig;
pub use simd_optimized::get_simd_config;
pub use simd_optimized::is_simd_available;
pub use simd_optimized::simd_bspline_basis_functions;
pub use simd_optimized::simd_bspline_batch_evaluate;
pub use simd_optimized::simd_distance_matrix;
pub use simd_optimized::simd_rbf_evaluate;
pub use simd_optimized::RBFKernel as SimdRBFKernel;
pub use simd_optimized::SimdConfig;
pub use smoothing::make_adaptive_smoothing_spline;
pub use smoothing::make_error_based_smoothing_spline;
pub use smoothing::make_optimized_smoothing_spline;
pub use smoothing::KnotStrategy;
pub use smoothing::VariableKnotSpline;
pub use sparse_grid::make_adaptive_sparse_grid_interpolator;
pub use sparse_grid::make_sparse_grid_from_data;
pub use sparse_grid::make_sparse_grid_interpolator;
pub use sparse_grid::GridPoint;
pub use sparse_grid::MultiIndex;
pub use sparse_grid::SparseGridBuilder;
pub use sparse_grid::SparseGridInterpolator;
pub use sparse_grid::SparseGridStats;
pub use spatial::balltree::BallTree;
pub use spatial::kdtree::KdTree;
pub use spline::make_interp_spline;
pub use spline::BoundaryCondition;
pub use spline::CubicSpline;
pub use structured_matrix::create_bspline_band_matrix;
pub use structured_matrix::solve_band_system;
pub use structured_matrix::solve_sparse_system;
pub use structured_matrix::solve_structured_least_squares;
pub use structured_matrix::BandMatrix;
pub use structured_matrix::CSRMatrix;
pub use tension::make_tension_spline;
pub use tension::TensionSpline;
pub use tensor::lagrange_tensor_interpolate;
pub use tensor::tensor_product_interpolate;
pub use tensor::LagrangeTensorInterpolator;
pub use tensor::TensorProductInterpolator;
pub use timeseries::backward_fill;
pub use timeseries::forward_fill;
pub use timeseries::make_daily_interpolator;
pub use timeseries::make_weekly_interpolator;
pub use timeseries::MissingDataStrategy;
pub use timeseries::SeasonalityType;
pub use timeseries::TemporalPattern;
pub use timeseries::TemporalStats;
pub use timeseries::TimeSeriesConfig;
pub use timeseries::TimeSeriesInterpolator;
pub use timeseries::TimeSeriesResult;
pub use voronoi::constant_value_extrapolation;
pub use voronoi::inverse_distance_extrapolation;
pub use voronoi::linear_gradient_extrapolation;
pub use voronoi::make_laplace_interpolator;
pub use voronoi::make_natural_neighbor_interpolator;
pub use voronoi::make_parallel_laplace_interpolator;
pub use voronoi::make_parallel_natural_neighbor_interpolator;
pub use voronoi::make_parallel_sibson_interpolator;
pub use voronoi::make_sibson_interpolator;
pub use voronoi::nearest_neighbor_extrapolation;
pub use voronoi::Extrapolation;
pub use voronoi::ExtrapolationMethod as VoronoiExtrapolationMethod;
pub use voronoi::ExtrapolationParams;
pub use voronoi::GradientEstimation;
pub use voronoi::InterpolateWithGradient;
pub use voronoi::InterpolateWithGradientResult;
pub use voronoi::InterpolationMethod as VoronoiInterpolationMethod;
pub use voronoi::NaturalNeighborInterpolator;
pub use voronoi::ParallelNaturalNeighborInterpolator;
Modules§
- adaptive_
gp - Gaussian process regression with adaptive kernels
- adaptive_
learning - Active learning approaches for adaptive sampling in interpolation
- adaptive_
singularity - Automatic singularity detection and handling for interpolation
- advanced
- Advanced interpolation methods for specialized use cases.
- bezier
- Bezier curve and surface implementations
- bivariate
- Bivariate interpolation modules
- boundarymode
- bspline
- B-spline basis functions and B-spline curves
- cache
- Cache-aware algorithm implementations for interpolation
- cache_
aware - Cache-aware algorithm implementations for high-performance interpolation
- constrained
- Constrained splines with monotonicity and convexity constraints
- error
- Error types for the SciRS2 interpolation module
- extrapolation
- fast_
bspline - Fast evaluation of B-splines using recursive algorithms
- geospatial
- Geospatial interpolation methods
- gpu_
accelerated - GPU-accelerated interpolation methods
- grid
- Grid transformation and resampling utilities
- griddata
- Grid data interpolation - SciPy-compatible griddata implementation
- hermite
- high_
dimensional - High-dimensional interpolation methods
- interp1d
- One-dimensional interpolation methods
- interp2d
- 2D interpolation - SciPy-compatible interp2d implementation
- interpnd
- N-dimensional interpolation methods
- local
- Local interpolation methods
- multiscale
- neural_
enhanced - Neural network enhanced interpolation
- numerical_
stability - Numerical Stability Monitoring and Condition Assessment
- nurbs
- NURBS (Non-Uniform Rational B-Splines) implementation
- optimization
- Optimization-based parameter fitting for interpolation
- parallel
- Parallel processing utilities for interpolation
- penalized
- Penalized splines (P-splines) with various penalty terms
- physics_
informed - Physics-informed interpolation methods
- scattered_
optimized - Optimized scattered data interpolation for large datasets
- simd_
optimized - SIMD-optimized interpolation functions
- smoothing
- Variable knot smoothing splines
- sparse_
grid - Sparse grid interpolation methods
- spatial
- Spatial data structures for efficient nearest neighbor search
- spline
- Spline interpolation methods
- structured_
matrix - Structured coefficient matrix operations for interpolation algorithms
- tension
- tensor
- Tensor product interpolation
- timeseries
- Time series specific interpolation methods
- utils
- Utility functions for interpolation
- voronoi
- Voronoi-based interpolation methods