-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreate_matrix.py
More file actions
70 lines (60 loc) · 1.97 KB
/
create_matrix.py
File metadata and controls
70 lines (60 loc) · 1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
from vincenty import vincenty
import numpy as np
import json
import requests
import numpy as np
def get_json_data(url):
r = requests.get(url)
if r.status_code == 200:
print('JSON файл успешно получен ')
else:
print('Ошибка при получений JSON файла ')
return r
def convert_data_distance(data):
if isinstance(data, str):
data = json.loads(data)
distance = []
for item in data:
coordX = item["coordX"]
coordY = item["coordY"]
distance.append([coordX, coordY])
distance_arr = np.array(distance)
return distance_arr
def copy_matrix(x,y, coord):
coord_new = np.zeros((coord.shape[0]+1,coord.shape[1]))
coord_new[0,0],coord_new[0,1] = x,y
for i in range(1,coord_new.shape[0]):
for j in range(coord_new.shape[1]):
coord_new[i,j] = coord[i-1,j]
return coord_new
def marix(data_coord):
matrix_mas = np.zeros((len(data_coord), len(data_coord)))
for i in range(len(matrix_mas)):
for j in range(len(matrix_mas)):
if i > j:
first = (data_coord[i,0], data_coord[i,1])
second = (data_coord[j,0], data_coord[j,1])
matrix_mas[i, j] = int(vincenty(first, second))
matrix_mas[j, i] = int(vincenty(first, second))
if i == j:
matrix_mas[i, j] = 0
return matrix_mas
def start_matrix_create():
url = 'http://localhost:3007/api/clients/'
x_coord = 54.735152
y_coord = 55.958736
client = get_json_data(url)
client = client.text
print(client)
dist = convert_data_distance(client)
dist = copy_matrix(x_coord,y_coord,dist)
res = marix(dist)
# print(dist)
#
# dir_path = pathlib.Path.cwd()
# path_result = Path(dir_path, 'C:\AllPycharn\SDVRP\data\Result.xlsx')
# res = marix(dist)
# print(res)
# df = pd.DataFrame(res)
# df.to_excel(excel_writer = path_result, index=False)
return res