通信人家园
标题:
计算站间距
[查看完整版帖子]
[打印本页]
时间:
2025-10-27 15:15
作者:
lyh-111
标题:
计算站间距
import openpyxl,xlrdimport os,sysimport math,reimport datetime#-----------------------数据输出到EXCEL文件------------------------def write_xlsx(dis): workbook = openpyxl.Workbook() sheet = workbook.active sheet.title = '最小站间距' for i in range(0, len(dis)): for j in range(0,len(dis
)): sheet.cell(row=i+1, column=j+1, value=dis
[j]) workbook.save('最小站间距-'+datetime.datetime.now().strftime('%Y%m%d')+'.xlsx') #-----------------------程序入口------------------------ if __name__ == '__main__': if os.path.isfile('GSM经纬度.xlsx'): GSM_data=xlrd.open_workbook('GSM经纬度.xlsx') GSM_table=GSM_data.sheets()[0] GSM_Btsname=GSM_table.col_values(0,start_rowx=1,end_rowx=None) GSM_lon=GSM_table.col_values(1,start_rowx=1,end_rowx=None) GSM_lat=GSM_table.col_values(2,start_rowx=1,end_rowx=None) if os.path.isfile('LTE经纬度.xlsx'): LTE_data=xlrd.open_workbook('LTE经纬度.xlsx') LTE_table=LTE_data.sheets()[0] LTE_Btsname=LTE_table.col_values(0,start_rowx=1,end_rowx=None) LTE_lon=LTE_table.col_values(1,start_rowx=1,end_rowx=None) LTE_lat=LTE_table.col_values(2,start_rowx=1,end_rowx=None) dis = [['网元名称','最小站间距(m)','目标站点']] print('最小站间距开始计算,请耐心等待:') GSM_lg = len(GSM_Btsname) for i in range(0,GSM_lg): Bts_dic = 100000000 tem = [GSM_Btsname
] name = '' LTE_lg = len(LTE_Btsname) for j in range(0,LTE_lg): lon1=GSM_lon
lat1=GSM_lat
lon1, lat1, lon2, lat2 = map(math.radians, [float(lon1), float(lat1), float(LTE_lon[j]), float(LTE_lat[j])]) # 经纬度转换成弧度 dlon = lon2 - lon1 dlat = lat2 - lat1 a = math.sin(dlat / 2) ** 2 + math.cos(lat1) * math.cos(lat2) * math.sin(dlon / 2) ** 2 c = 2 * math.asin(math.sqrt(a)) r = 6371.137 # 地球平均半径,单位为公里 dic = (c * r * 1000) if dic < Bts_dic: Bts_dic = dic name = LTE_Btsname[j] tem.append(str('%.2f'%Bts_dic)) tem.append(name) dis.append(tem) print('+',end='') sys.stdout.flush() write_xlsx(dis)
时间:
2025-10-27 18:56
作者:
不吹不黑
哦,收到了谢谢
通信人家园 (https://www.txrjy.com/)
Powered by C114