2015-01-16 29 views
2

我有麻煩試圖找出如果蟒蛇是內插,我有Python的插值時間,緯度和經度

**lat lon time** 
 
    x1 y1 3:02(t1) 
 
      
 
     
 
    x2 y2 3:05(t2) 
 

 

 

 

 
    x3 y3 3:10(t3) 
 

 
    
 
    x4 y4 3:13(t4)

我留下空間,以數據集的最佳選擇強調我正在尋找的東西。我期待以1秒爲間隔填補缺失的時間。所以我認爲我需要做的是t4-t1,以便獲得11個相等的空間,將時間轉換爲秒,以使計算更容易。然後圖形應該是這樣的:

**lat lon time** 
 

 
    x1 y1 3:02(t1) 
 
    a  b 3:03 
 
    c  d 3:04 
 
    x2 y2 3:05(t2) 
 
       3:06 
 
       3:07 
 
       3:08 
 
       3:09 
 
    x3 y3 3:10(t3) 
 
       3:11 
 
       3:12 
 
    x4 y4 3:13(t4)

這個我找的,我新創建的緯度和經度每秒鐘後。所以在x2,y2和x1之間,y1我想找到a,b,c,d的值,它們將是一個插值的lat和lon。

有沒有辦法做到這一點沒有每個集之間的一致性值?

+1

參見[本(中性語言)的問題和答案(http://stackoverflow.com/questions/1739019/how-to-use-linear-interpolation - 兩個地理座標之間的當前位置) - 根據您處理的速度,線性插值可能不足。 – Lack

+0

我建議檢查我的答案[這裏](https://gis.stackexchange.com/a/267004/84004)使用python –

回答

1

用於python的numpy庫具有內置插值的功能。請注意,在這個例子中我使用了一個整數的時間。您應該將時間轉換爲numpy.interp的數字(例如秒)數組。

import numpy as np 

times = [2, 5, 10, 13] 
lat = [1.5, 2, 4, 7] 
lon = [3, 2, 1, -2] 
t = np.arange(2, 14) 

latint = np.interp(t, times, lat) 
lonint = np.interp(t, times, lon) 
for pos in zip(latint, lonint, t): 
    print(pos) 

應打印:

(1.5, 3.0, 2) 
(1.6666666666666667, 2.6666666666666665, 3) 
(1.8333333333333333, 2.3333333333333335, 4) 
(2.0, 2.0, 5) 
(2.3999999999999999, 1.8, 6) 
(2.7999999999999998, 1.6000000000000001, 7) 
(3.2000000000000002, 1.3999999999999999, 8) 
(3.6000000000000001, 1.2, 9) 
(4.0, 1.0, 10) 
(5.0, 0.0, 11) 
(6.0, -1.0, 12) 
(7.0, -2.0, 13) 
+0

在地球橢球上做這個謝謝羅蘭!我開始好轉一點。如果我想爲Lat,Lon和Time導入CSV,該怎麼辦?我是否需要根據?推斷變量? – wxJunkie

+0

我怎麼知道?我不知道CSV文件中有什麼,也不知道你想用它做什麼... –