我正在尝试访问excel文件的行和列并进行一些基本的距离计算,但是我一直得到相同的值>我正在尝试通过遍历的列表来查找距地图任意两点的距离我创建的字典中的边和它们对应的值。不知道我在这里做错了什么。任何指导表示赞赏。
import pandas as pd
import array
import numpy as np
import pyomo.environ as pyo
from math import sin, cos, sqrt, atan2, radians
import requests
import urllib.request
import time
from bs4 import BeautifulSoup
distance = pd.read_csv("Distance File.csv")
distance.head()
d_long = distance["Longitude"]
d_lat = distance["Latitude"]
print(d_long)
print(d_lat)
distance_dict = {}
location = list(range(0, 10))
print(location)
for i in d_long:
for j in d_lat:
for x in location:
distance_dict[x] = i, j
# distance_dict.update(d1)
print(distance_dict)
opt = pyo.SolverFactory("glpk")
V = list(distance_dict.keys()) # List of Customers
Customers = (1, 2, 3, 4, 5, 6, 7, 8, 9)
distance_dict = distance_dict # Dict of customers
E = []
for i in V:
for j in V:
if i != j:
E.append((i, j))
print(E)
c = {}
for (i, j) in E:
lat = radians(abs(distance_dict[i][1]))
lon = radians(abs(distance_dict[i][0]))
lat2 = radians(abs(distance_dict[j][1]))
lon2 = radians(abs(distance_dict[j][0]))
dlon = lon2 - lon
dlat = lat2 - lat
a = sin(dlat / 2) ** 2 + cos(lat) * cos(lat) * sin(dlon / 2) ** 2
c[i, j] = 2 * atan2(sqrt(a), sqrt(1 - a))
print(dlat)
print(c)
for i in d_long:
for j in d_lat:
for x in location:
distance_dict[x] = i, j
对于location
中的所有键,请设置d_lat
/long
中的值的最后一个值>