作物品种测试——批量获取试验站点直线距离

发布时间:2024年01月24日

参考资料:

根据经纬度计算两地之间的距离_经纬度计算距离-CSDN博客

用于计算不同试验站点之间的距离,可以据此来评估各试验站点分布的合理性。

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、运行代码,获得试验站点间的直线距离数据,单位为公里。效果如下:

文章来源:https://blog.csdn.net/maizeman126/article/details/135651294
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。