Tôi muốn thực hiện nội suy blinear bằng python.
Ví dụ gps chỉ mà tôi muốn suy chiều cao là:
Làm thế nào để thực hiện nội suy song tuyến trong Python
B = 54.4786674627
L = 17.0470721369
sử dụng bốn điểm liền kề với tọa độ biết và giá trị height:
n = [(54.5, 17.041667, 31.993), (54.5, 17.083333, 31.911), (54.458333, 17.041667, 31.945), (54.458333, 17.083333, 31.866)]
z01 z11
z
z00 z10
và đây là nỗ lực ban đầu của tôi:
import math
z00 = n[0][2]
z01 = n[1][2]
z10 = n[2][2]
z11 = n[3][2]
c = 0.016667 #grid spacing
x0 = 56 #latitude of origin of grid
y0 = 13 #longitude of origin of grid
i = math.floor((L-y0)/c)
j = math.floor((B-x0)/c)
t = (B - x0)/c - j
z0 = (1-t)*z00 + t*z10
z1 = (1-t)*z01 + t*z11
s = (L-y0)/c - i
z = (1-s)*z0 + s*z1
nơi z0 và z1
z01 z0 z11
z
z00 z1 z10
tôi nhận được 31,964 nhưng từ phần mềm khác tôi nhận được 31,961.
Tập lệnh của tôi có đúng không?
Bạn có thể cung cấp cách tiếp cận khác không?
Bạn đã làm tròn lỗi và bạn đang làm tròn ??? Điều gì sẽ xảy ra nếu bạn xóa 'tầng'? – Ben
L và B là gì? Các tọa độ của điểm mà bạn muốn nội suy? –
@machine khao khát đó là đúng – daikini