pub mod autocorrelation;
pub mod kriging;
pub mod point_process;
pub use autocorrelation::{
gearys_c, local_morans_i, morans_i, ripleys_k, ripleys_l, ClusterType, GearyResult,
LocalMoranResult, MoranResult,
};
pub use kriging::{
empirical_variogram, EmpiricalVariogram, OrdinaryKriging, VariogramModel,
};
pub use point_process::{
csr_envelope, f_function, g_function, kernel_intensity, CsrEnvelope,
};
#[derive(Debug, thiserror::Error)]
pub enum SpatialError {
#[error("Dimension mismatch: {0}")]
DimensionMismatch(String),
#[error("Invalid argument: {0}")]
InvalidArgument(String),
#[error("Computation error: {0}")]
ComputationError(String),
#[error("Convergence error: {0}")]
ConvergenceError(String),
#[error("Insufficient data: {0}")]
InsufficientData(String),
}
pub type SpatialResult<T> = Result<T, SpatialError>;