反距离权重

反距离权重

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)
posted @ 2023-05-12 09:44  Agiser0  阅读(75)  评论(0)    收藏  举报