python怎么计算圆上任意两点的距离_基于criteri的python中两点间最近邻距离的计算...

我有一个数据集,有小学和高中的GPS坐标。为了弄清楚在哪里建新学校,我需要计算每个小学低年级到高年级小学的距离,以及高年级小学到最近中学的距离。在

我使用的是python,可以使用advice来最好地完成这个计算。输出应该向csv添加两个额外的列。1) 应表示最近的高中,2)应表示距该高中的距离(km)。在

我得到了一个可以工作的距离函数,但是在比较一个特定行与所有其他指定行的距离时遇到了问题,例如,比较一个较低的主行1-4与所有其他主行1-8的距离,并将输出保存到一个新列中。在

谢谢你的建议。在

谢谢

EDIT2-目前工作代码:

该算法使用一些小样本数据,但不能很好地扩展。我尝试使用的60000个数据点遇到内存错误# Algorithm for calculating the closest upper primary school for lower primary schools.

for i, row in df.iterrows():

listy = 0

school = []

if row['LS_Type'] == 'Primary (1-4)':

a = row['Northing']

b = row['Easting']

LS_ID = row['LS_ID']

for j, row2 in df.iterrows():

if row2['LS_Type'] == 'Primary (1-8)':

dist_km = distance(a,b, df.Northing[j], df.Easting[j])

if (listy == 0):

listy = dist_km

school.append([df.LS_Name[j], df.LS_ID[j]])

else:

if dist_km < listy:

listy = dist_km

school[0] = [df.LS_Name[j], int(df.LS_ID[j])]

df['dist_up_prim'][i] = listy

df["closest_up_prim"][i] = school[0]

else:

df['dist_up_prim'][i] = 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值