反距离权重
反距离权重
import math
import pdb
knPoint = map(float,raw_input("请输入未知属性点的坐标").split(','))
#print(knPoint)
pdb.set_trace()
Points = []
while (1):
point = raw_input("输入已知坐标点坐标和属性值,并用英文逗号间隔:").split(',')
#退出循环
if (point == ['']):break
exPoint = map(float, point)
Points.append(exPoint)
#print(Points)
pdb.set_trace()
def length(x1, y1, x2, y2):
return math.sqrt((x2-x1)**2 + (y2-y1)**2)
#求反距离累加和
y = 0
for i in range(len(Points)):
num = 1 / length(knPoint[0],knPoint[1],Points[i][0],Points[i][1])
y += num
pdb.set_trace()
Z = 0
for i in range(len(Points)):
num = 1 / length(knPoint[0],knPoint[1],Points[i][0],Points[i][1])
#计算权重
W = num / y
z = W * Points[i][2]
Z += z
print(Z)
一、Python 代码实现断点
3.7之前版本:
import pdb
pdb.set_trace() #insert breakpoint
输出:
(Pdb)
#查看变量 a 的值
(Pdb)p a # p 后面加什么变量名,就可以看到什么变量的值
(Pdb)c #进入下一个断点
3.7以上版本:
#无须导入库
breakpoint() #insert breakpoint
二、Python计算平方和
(数字 * 数字)
(数字**2)
math.pow(number,2)
三、Python开根号
math.sqrt(数字)
pow(数字,次方)
cmath.sqrt(数字) 该方法多用于 复数、负数 的开方
四、map()函数
返回数组
五、split()函数
返回数组
六、实现点坐标的输入
Points = []
while(1):
point = input("输入点坐标和属性值,用英文逗号隔开").split(',')
if (point = ['']):break
Point = map(float,point)
Points.append(Point)