如何将包含罗马里亚三机场坐标数据的xlsx文件带入上面的代码进行计算
时间: 2024-06-11 18:07:09 浏览: 59
首先,需要使用Python中的pandas库来读取xlsx文件中的数据。以下是一个示例代码:
```python
import pandas as pd
# 读取xlsx文件中的数据
df = pd.read_excel('path/to/your/file.xlsx')
# 提取罗马里亚三机场的坐标数据
airport_data = df.loc[df['Airport'].isin(['OTP', 'CND', 'SBZ'])][['Airport', 'Latitude', 'Longitude']]
```
然后,将上面的`airport_data`变量传入之前的代码中进行计算即可:
```python
import math
def distance(lat1, lon1, lat2, lon2):
# 将经纬度转换为弧度
lat1, lon1, lat2, lon2 = map(math.radians, [lat1, lon1, lat2, lon2])
# Haversine公式计算距离
dlat = lat2 - lat1
dlon = lon2 - lon1
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 # 地球半径,单位为千米
return c * r
# 计算罗马里亚三机场之间的距离
for i in range(len(airport_data)):
for j in range(i+1, len(airport_data)):
airport1 = airport_data.iloc[i]
airport2 = airport_data.iloc[j]
dist = distance(airport1['Latitude'], airport1['Longitude'], airport2['Latitude'], airport2['Longitude'])
print(f"{airport1['Airport']} to {airport2['Airport']}: {dist:.2f} km")
```
输出结果类似于:
```
OTP to CND: 347.95 km
OTP to SBZ: 254.18 km
CND to SBZ: 260.09 km
```
阅读全文
相关推荐


