簡體   English   中英

隨機排列的坐標值的3D插值

[英]3D Interpolation of randomly arranged coordinate value

在.NET / C#項目中,我相對地隨機安排了坐標,並為每個坐標分配了權重KPI,如下所示:

Weight   | Lat       | Long
---------+-----------+-----------
1,123444 | 54,219367 | 9,696117
1,067940 | 51,950265 | 11,692274
1,054050 | 52,131392 | 13,216249
1,044820 | 52,636704 | 9,845077
1,023757 | 50,118346 | 7,308953
1,006427 | 53,612651 | 12,429595
1,002610 | 51,433237 | 7,661594
0,988619 | 49,396423 | 7,022961
0,955858 | 51,010989 | 10,845346
0,943669 | 50,652052 | 9,162438
0,938015 | 51,104541 | 13,201738
0,863415 | 48,790447 | 11,497889
0,835913 | 48,661604 | 9,350134

在數學或統計學方面,我不是專家。 我需要做的是根據先前計算的值(見上文)對任何其他給定的地理坐標權重進行插值。

我發現的所有3D插值算法都假定坐標必須以矩形形狀排列,這在我的szenario中是不可能的。

有沒有適合我需要的算法? 需要指出的是,我們在同一項目中使用了一些R.NET功能,因此使用R的解決方案將是完美的。

插值方法有很多,它們給您帶來略有不同的結果。 您應該嘗試一下,看看哪種方法最適合您的方案。

一種方法是將所有數據點放在一定的半徑上。 計算到每個對象的距離,然后使用距離作為權重計算它們的高度的加權平均值。 這將允許您在點之間進行線性插值。

如果您想要一些更波浪的東西,可以執行相同的操作,但可以使用distance ^ 2或distance ^ 3代替重量作為重量。 這將使最接近點的權重更大,並使曲面更彎曲。 您甚至可以將它們組合起來,使其具有a*distance^2 + b*distance但我會盡可能簡化。

如果由於分布不均勻而不想使用半徑,則可以獲取最接近的K點(使用K進行實驗,看看哪種方法最有效)。

這些都是非常通用的,但是它們在很多情況下都可以很好地工作。

注意:如果點相對較近,則可以計算3D空間中的距離,但是如果它們相距較遠,則應計算球體上的距離(圓弧的長度)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM