pub struct IDWInterpolator { /* private fields */ }Expand description
Inverse Distance Weighting interpolator for scattered data
§Examples
use scirs2_spatial::interpolate::IDWInterpolator;
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 with power=2
let interp = IDWInterpolator::new(&points.view(), &values.view(), 2.0, None).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
assert!((result - 1.5).abs() < 0.1);Implementations§
Source§impl IDWInterpolator
impl IDWInterpolator
Sourcepub fn new(
points: &ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>,
values: &ArrayBase<ViewRepr<&f64>, Dim<[usize; 1]>>,
power: f64,
n_neighbors: Option<usize>,
) -> Result<IDWInterpolator, SpatialError>
pub fn new( points: &ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, values: &ArrayBase<ViewRepr<&f64>, Dim<[usize; 1]>>, power: f64, n_neighbors: Option<usize>, ) -> Result<IDWInterpolator, SpatialError>
Create a new IDW interpolator
§Arguments
points- Input points with shape (n_samples, n_dims)values- Input values with shape (n_samples,)power- Power parameter (p), controls the importance of nearby pointsn_neighbors- Number of neighbors to use (None = use all points)
§Returns
A new IDWInterpolator
§Errors
- If points and values have different lengths
- If power is negative
- If n_neighbors is 0 or greater than n_points
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>
Sourcepub fn interpolate_many(
&self,
points: &ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>,
) -> Result<ArrayBase<OwnedRepr<f64>, Dim<[usize; 1]>>, SpatialError>
pub fn interpolate_many( &self, points: &ArrayBase<ViewRepr<&f64>, Dim<[usize; 2]>>, ) -> Result<ArrayBase<OwnedRepr<f64>, Dim<[usize; 1]>>, SpatialError>
Sourcepub fn n_neighbors(&self) -> Option<usize>
pub fn n_neighbors(&self) -> Option<usize>
Get the number of neighbors used by this interpolator
Sourcepub fn set_n_neighbors(
&mut self,
_nneighbors: Option<usize>,
) -> Result<(), SpatialError>
pub fn set_n_neighbors( &mut self, _nneighbors: Option<usize>, ) -> Result<(), SpatialError>
Trait Implementations§
Source§impl Clone for IDWInterpolator
impl Clone for IDWInterpolator
Source§fn clone(&self) -> IDWInterpolator
fn clone(&self) -> IDWInterpolator
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 IDWInterpolator
impl RefUnwindSafe for IDWInterpolator
impl Send for IDWInterpolator
impl Sync for IDWInterpolator
impl Unpin for IDWInterpolator
impl UnsafeUnpin for IDWInterpolator
impl UnwindSafe for IDWInterpolator
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.