参考资料:
用于计算不同试验站点之间的距离,可以据此来评估各试验站点分布的合理性。
1、首选需要准备excel文件,用于存放各试验站点的经纬度信息。数据列内容如下:
2、利用百度地图的拾取坐标系统,获取具体试验站点的经纬度信息。界面如下:
地址:拾取坐标系统
3、将所有测试点的经纬度信息保存在excel文件中,并将导入和导出的文件路径写入代码,
代码如下:
import math
import pandas as pd
R = 6371.393
Pi = math.pi
df=pd.read_excel(含有试验站点经纬度信息的excel文件路径)
name1=[]
name2=[]
name3=[]
name4=[]
dist=[]
for i in range(df.shape[0]):
for j in range(df.shape[0]):
jingduA, weiduA= df['经度'][i], df['纬度'][i]
jingduB, weiduB = df['经度'][j], df['纬度'][j]
a = (math.sin(math.radians(weiduA/2-weiduB/2)))**2
b = math.cos(weiduA*Pi/180) * math.cos(weiduB*Pi/180) * (math.sin((jingduA/2-jingduB/2)*Pi/180))**2
L = 2 * R * math.asin((a+b)**0.5)
name1.append(df['单位'][i])
name3.append(df['测试站点名称'][i])
name2.append(df['单位'][j])
name4.append(df['测试站点名称'][j])
dist.append(L)
df2=pd.DataFrame({
'单位1':name1,
'站点1':name3,
'单位2':name2,
'站点2':name4,
'距离':dist
})
df2.to_excel(导出测算试验站点间距离的文件路径)
4、运行代码,获得试验站点间的直线距离数据,单位为公里。效果如下: