#地理 #GIS #地理空间

inverse_distance_weight

空间插值中的逆距离加权(IDW)算法

2个版本

0.1.1 2023年9月9日
0.1.0 2023年9月9日

#175 in 地理空间

MIT 许可证

17KB
268

inverse_distance_weight

Latest version Documentation MIT

逆距离加权(IDW)算法 的实现。

该crate支持1到3维的点进行插值。

算法中使用的加权函数是 weightᵢ = 1 / distance(pointᵢ, position)

示例

use inverse_distance_weight::IDW;

// 1 dimension
let points = vec![0.0, 1.0];
let values = vec![0.0, 1.0];
let idw = IDW::new(points, values);

let result = idw.evaluate(0.5);

// 2 dimension
let points = vec![(0.0, 0.0), (1.0, 1.0)];
let values = vec![0.0, 1.0];
let idw = IDW::new(points, values);

let result = idw.evaluate((0.5, 0.5));

// 3 dimension
let points = vec![(0.0, 0.0, 0.0), (1.0, 1.0, 1.0)];
let values = vec![0.0, 1.0];
let idw = IDW::new(points, values);

let result = idw.evaluate((0.5, 0.5, 0.5));

// Customize
let points = vec![0.0, 1.0];
let values = vec![0.0, 1.0];
let idw = IDW::new(points, values)
    // Sets a power parameter. Default is 2.
    .power(0.5)
    // Sets a transform function for weights.
    .weighted_function(|weight| (1.0 + (4.0 * std::f64::consts::PI * weight).sin()) * 0.5);

依赖项

~155KB