- 经验
- 12
- 分贝
- 0
- 家园分
- 27
- 在线时间:
- 1 小时
- 最后登录:
- 2025-10-27
- 帖子:
- 11
- 精华:
- 0
- 注册时间:
- 2025-6-6
- UID:
- 1766215
注册:2025-6-6
|
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)
|
|