1use crate::Real;
2use thiserror::Error;
3
4#[derive(Error, Debug)]
6pub enum KrigingError {
7 #[error("Insufficient data: need at least {0} observations")]
8 InsufficientData(usize),
9 #[error("Dimension mismatch: {0}")]
10 DimensionMismatch(String),
11 #[error("Invalid coordinate: lat={lat}, lon={lon}")]
12 InvalidCoordinate { lat: Real, lon: Real },
13 #[error("Matrix operation failed: {0}")]
14 MatrixError(String),
15 #[error("Variogram fitting failed: {0}")]
16 FittingError(String),
17 #[error("Invalid binomial data: {0}")]
18 InvalidBinomialData(String),
19 #[error("Backend unavailable: {0}")]
20 BackendUnavailable(String),
21}