pub struct NaturalNeighborInterpolator { /* private fields */ }Expand description
Natural Neighbor interpolator for scattered data
This interpolator uses the Sibson method to compute natural neighbor coordinates based on Voronoi diagrams and Delaunay triangulation.
§Examples
use scirs2_spatial::interpolate::NaturalNeighborInterpolator;
use scirs2_core::ndarray::array;
// Create sample points and values
let points = array![
[0.0, 0.0],
[1.0, 0.0],
[0.0, 1.0],
[1.0, 1.0],
];
let values = array![0.0, 1.0, 2.0, 3.0];
// Create interpolator
let interp = NaturalNeighborInterpolator::new(&points.view(), &values.view()).expect("Operation failed");
// Interpolate at a point
let query_point = array![0.5, 0.5];
let result = interp.interpolate(&query_point.view()).expect("Operation failed");
// Should be close to 1.5 (average of the 4 corners)
assert!((result - 1.5).abs() < 1e-10);
// Note: This test is currently ignored due to implementation issuesImplementations§
Source§impl NaturalNeighborInterpolator
impl NaturalNeighborInterpolator
Sourcepub fn new(
points: &ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>,
values: &ArrayBase<ViewRepr<&f64>, Dim<[usize; 1]>>,
) -> Result<NaturalNeighborInterpolator, SpatialError>
pub fn new( points: &ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, values: &ArrayBase<ViewRepr<&f64>, Dim<[usize; 1]>>, ) -> Result<NaturalNeighborInterpolator, SpatialError>
Create a new natural neighbor interpolator
§Arguments
points- Input points with shape (n_samples, n_dims)values- Input values with shape (n_samples,)
§Returns
A new NaturalNeighborInterpolator
§Errors
- If points and values have different lengths
- If points are not 2D
- If fewer than 3 points are provided
- If the Delaunay triangulation fails
Sourcepub fn interpolate(
&self,
point: &ArrayBase<ViewRepr<&f64>, Dim<[usize; 1]>>,
) -> Result<f64, SpatialError>
pub fn interpolate( &self, point: &ArrayBase<ViewRepr<&f64>, Dim<[usize; 1]>>, ) -> Result<f64, SpatialError>
Trait Implementations§
Source§impl Clone for NaturalNeighborInterpolator
impl Clone for NaturalNeighborInterpolator
Source§fn clone(&self) -> NaturalNeighborInterpolator
fn clone(&self) -> NaturalNeighborInterpolator
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for NaturalNeighborInterpolator
impl RefUnwindSafe for NaturalNeighborInterpolator
impl Send for NaturalNeighborInterpolator
impl Sync for NaturalNeighborInterpolator
impl Unpin for NaturalNeighborInterpolator
impl UnsafeUnpin for NaturalNeighborInterpolator
impl UnwindSafe for NaturalNeighborInterpolator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.