DavMelchi commited on
Commit
9bd7cb4
·
1 Parent(s): 4989fde

Adding Distance to all neighbors

Browse files
Files changed (1) hide show
  1. queries/process_neighbors.py +42 -4
queries/process_neighbors.py CHANGED
@@ -2,6 +2,7 @@ import pandas as pd
2
  from geopy.distance import geodesic
3
 
4
  from queries.process_gsm import process_gsm_data
 
5
  from utils.convert_to_excel import convert_dfs, save_dataframe
6
  from utils.utils_vars import UtilsVars
7
 
@@ -31,11 +32,15 @@ BTS_TARGET = [
31
  WCEL_SOURCE = [
32
  "ID_WCEL",
33
  "name",
 
 
34
  ]
35
 
36
  WCEL_TARGET = [
37
  "lac_id",
38
  "name",
 
 
39
  ]
40
 
41
 
@@ -132,7 +137,7 @@ def process_neighbors_data(file_path: str):
132
  df_adce_final = check_symmetry(df_adce_final)
133
 
134
  # create distance column
135
- df_adce_final["distance"] = df_adce_final.apply(
136
  lambda row: geodesic(
137
  (row["SOURCE_Latitude"], row["SOURCE_Longitude"]),
138
  (row["TARGET_Latitude"], row["TARGET_Longitude"]),
@@ -153,13 +158,13 @@ def process_neighbors_data(file_path: str):
153
  df_adjs = df_adjs[ADJS_INITIAL_COLUMNS]
154
 
155
  # process WCEL DATA
156
- df_wcel = dfs["WCEL"]
157
- df_wcel.columns = df_wcel.columns.str.replace(r"[ ]", "", regex=True)
158
  df_wcel["ID_WCEL"] = (
159
  df_wcel[["RNC", "WBTS", "WCEL"]].astype(str).apply("_".join, axis=1)
160
  )
161
  df_wcel["lac_id"] = df_wcel[["LAC", "CId"]].astype(str).apply("_".join, axis=1)
162
- df_wcel = df_wcel[["ID_WCEL", "lac_id", "name"]]
163
 
164
  df_wcel_source = df_wcel[WCEL_SOURCE]
165
  df_wcel_source.rename(columns={"name": "SOURCE_NAME"}, inplace=True)
@@ -176,6 +181,14 @@ def process_neighbors_data(file_path: str):
176
  columns={"ID_WCEL": "SOURCE_ID", "lac_id": "TARGET_LAC_ID"}, inplace=True
177
  )
178
  df_adjs_final = check_symmetry(df_adjs_final)
 
 
 
 
 
 
 
 
179
 
180
  # process ADJI DATA
181
  df_adji = dfs["ADJI"]
@@ -197,6 +210,14 @@ def process_neighbors_data(file_path: str):
197
  columns={"ID_WCEL": "SOURCE_ID", "lac_id": "TARGET_LAC_ID"}, inplace=True
198
  )
199
  df_adji_final = check_symmetry(df_adji_final)
 
 
 
 
 
 
 
 
200
 
201
  # process ADJG DATA
202
  df_adjg = dfs["ADJG"]
@@ -217,6 +238,14 @@ def process_neighbors_data(file_path: str):
217
  df_adjg_final.rename(
218
  columns={"ID_WCEL": "SOURCE_ID", "lac_id": "TARGET_LAC_ID"}, inplace=True
219
  )
 
 
 
 
 
 
 
 
220
 
221
  # process ADJW DATA
222
  df_adjw = dfs["ADJW"]
@@ -235,6 +264,15 @@ def process_neighbors_data(file_path: str):
235
  df_adjw_final.rename(
236
  columns={"ID_BTS": "SOURCE_ID", "lac_id": "TARGET_LAC_ID"}, inplace=True
237
  )
 
 
 
 
 
 
 
 
 
238
 
239
  # save_dataframe(df_adjw_final, "ADJW")
240
 
 
2
  from geopy.distance import geodesic
3
 
4
  from queries.process_gsm import process_gsm_data
5
+ from queries.process_wcdma import process_wcdma_data
6
  from utils.convert_to_excel import convert_dfs, save_dataframe
7
  from utils.utils_vars import UtilsVars
8
 
 
32
  WCEL_SOURCE = [
33
  "ID_WCEL",
34
  "name",
35
+ "Longitude",
36
+ "Latitude",
37
  ]
38
 
39
  WCEL_TARGET = [
40
  "lac_id",
41
  "name",
42
+ "Longitude",
43
+ "Latitude",
44
  ]
45
 
46
 
 
137
  df_adce_final = check_symmetry(df_adce_final)
138
 
139
  # create distance column
140
+ df_adce_final["distance_km"] = df_adce_final.apply(
141
  lambda row: geodesic(
142
  (row["SOURCE_Latitude"], row["SOURCE_Longitude"]),
143
  (row["TARGET_Latitude"], row["TARGET_Longitude"]),
 
158
  df_adjs = df_adjs[ADJS_INITIAL_COLUMNS]
159
 
160
  # process WCEL DATA
161
+ df_wcel = process_wcdma_data(file_path)
162
+
163
  df_wcel["ID_WCEL"] = (
164
  df_wcel[["RNC", "WBTS", "WCEL"]].astype(str).apply("_".join, axis=1)
165
  )
166
  df_wcel["lac_id"] = df_wcel[["LAC", "CId"]].astype(str).apply("_".join, axis=1)
167
+ df_wcel = df_wcel[["ID_WCEL", "lac_id", "name", "Longitude", "Latitude"]]
168
 
169
  df_wcel_source = df_wcel[WCEL_SOURCE]
170
  df_wcel_source.rename(columns={"name": "SOURCE_NAME"}, inplace=True)
 
181
  columns={"ID_WCEL": "SOURCE_ID", "lac_id": "TARGET_LAC_ID"}, inplace=True
182
  )
183
  df_adjs_final = check_symmetry(df_adjs_final)
184
+ # create distance column
185
+ df_adjs_final["distance_km"] = df_adjs_final.apply(
186
+ lambda row: geodesic(
187
+ (row["Latitude_x"], row["Longitude_x"]),
188
+ (row["Latitude_y"], row["Longitude_y"]),
189
+ ).kilometers,
190
+ axis=1,
191
+ )
192
 
193
  # process ADJI DATA
194
  df_adji = dfs["ADJI"]
 
210
  columns={"ID_WCEL": "SOURCE_ID", "lac_id": "TARGET_LAC_ID"}, inplace=True
211
  )
212
  df_adji_final = check_symmetry(df_adji_final)
213
+ # create distance column
214
+ df_adji_final["distance_km"] = df_adji_final.apply(
215
+ lambda row: geodesic(
216
+ (row["Latitude_x"], row["Longitude_x"]),
217
+ (row["Latitude_y"], row["Longitude_y"]),
218
+ ).kilometers,
219
+ axis=1,
220
+ )
221
 
222
  # process ADJG DATA
223
  df_adjg = dfs["ADJG"]
 
238
  df_adjg_final.rename(
239
  columns={"ID_WCEL": "SOURCE_ID", "lac_id": "TARGET_LAC_ID"}, inplace=True
240
  )
241
+ # create distance column
242
+ df_adjg_final["distance_km"] = df_adjg_final.apply(
243
+ lambda row: geodesic(
244
+ (row["Latitude_x"], row["Longitude_x"]),
245
+ (row["Latitude_y"], row["Longitude_y"]),
246
+ ).kilometers,
247
+ axis=1,
248
+ )
249
 
250
  # process ADJW DATA
251
  df_adjw = dfs["ADJW"]
 
264
  df_adjw_final.rename(
265
  columns={"ID_BTS": "SOURCE_ID", "lac_id": "TARGET_LAC_ID"}, inplace=True
266
  )
267
+ df_adjw_final = check_symmetry(df_adjw_final)
268
+ # create distance column
269
+ df_adjw_final["distance_km"] = df_adjw_final.apply(
270
+ lambda row: geodesic(
271
+ (row["Latitude_x"], row["Longitude_x"]),
272
+ (row["Latitude_y"], row["Longitude_y"]),
273
+ ).kilometers,
274
+ axis=1,
275
+ )
276
 
277
  # save_dataframe(df_adjw_final, "ADJW")
278