DavMelchi commited on
Commit
5a8534e
·
1 Parent(s): 516c6e6

fixe muti-point showing in gsm app in starup issues

Browse files
apps/multi_points_distance_calculator.py CHANGED
@@ -1,46 +1,7 @@
1
  import pandas as pd
2
  import streamlit as st
3
- from geopy.distance import geodesic
4
-
5
-
6
- # Function to calculate distances while preserving all original columns
7
- def calculate_distances(
8
- df1: pd.DataFrame,
9
- df2: pd.DataFrame,
10
- code_col1,
11
- lat_col1,
12
- long_col1,
13
- code_col2,
14
- lat_col2,
15
- long_col2,
16
- ):
17
- distances = []
18
-
19
- for _, row1 in df1.iterrows():
20
- for _, row2 in df2.iterrows():
21
- coord1 = (row1[lat_col1], row1[long_col1])
22
- coord2 = (row2[lat_col2], row2[long_col2])
23
- distance_km = geodesic(coord1, coord2).kilometers # Compute distance
24
-
25
- # Combine all original columns + distance
26
- combined_row = {
27
- **row1.to_dict(), # Keep all columns from Dataset1
28
- **{
29
- f"{col}_Dataset2": row2[col] for col in df2.columns
30
- }, # Keep all columns from Dataset2
31
- "Distance_km": distance_km,
32
- }
33
- distances.append(combined_row)
34
-
35
- df_distances = pd.DataFrame(distances)
36
-
37
- # Find the closest point for each Point1
38
- df_closest: pd.DataFrame = df_distances.loc[
39
- df_distances.groupby(code_col1)["Distance_km"].idxmin()
40
- ]
41
-
42
- return df_distances, df_closest
43
 
 
44
 
45
  # Streamlit UI
46
  st.title("Multi Points Distance Calculator")
 
1
  import pandas as pd
2
  import streamlit as st
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
 
4
+ from utils.utils_functions import calculate_distances
5
 
6
  # Streamlit UI
7
  st.title("Multi Points Distance Calculator")
process_kpi/process_gsm_capacity.py CHANGED
@@ -1,7 +1,6 @@
1
  import numpy as np
2
  import pandas as pd
3
 
4
- from apps.multi_points_distance_calculator import calculate_distances
5
  from queries.process_gsm import combined_gsm_database
6
  from utils.check_sheet_exist import execute_checks_sheets_exist
7
  from utils.convert_to_excel import convert_dfs, save_dataframe
@@ -18,6 +17,7 @@ from utils.kpi_analysis_utils import (
18
  create_hourly_date,
19
  kpi_naming_cleaning,
20
  )
 
21
 
22
  GSM_ANALYSIS_COLUMNS = [
23
  "ID_BTS",
 
1
  import numpy as np
2
  import pandas as pd
3
 
 
4
  from queries.process_gsm import combined_gsm_database
5
  from utils.check_sheet_exist import execute_checks_sheets_exist
6
  from utils.convert_to_excel import convert_dfs, save_dataframe
 
17
  create_hourly_date,
18
  kpi_naming_cleaning,
19
  )
20
+ from utils.utils_functions import calculate_distances
21
 
22
  GSM_ANALYSIS_COLUMNS = [
23
  "ID_BTS",
utils/utils_functions.py ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pandas as pd
2
+ from geopy.distance import geodesic
3
+
4
+
5
+ # Function to calculate distances while preserving all original columns
6
+ def calculate_distances(
7
+ df1: pd.DataFrame,
8
+ df2: pd.DataFrame,
9
+ code_col1,
10
+ lat_col1,
11
+ long_col1,
12
+ code_col2,
13
+ lat_col2,
14
+ long_col2,
15
+ ):
16
+ distances = []
17
+
18
+ for _, row1 in df1.iterrows():
19
+ for _, row2 in df2.iterrows():
20
+ coord1 = (row1[lat_col1], row1[long_col1])
21
+ coord2 = (row2[lat_col2], row2[long_col2])
22
+ distance_km = geodesic(coord1, coord2).kilometers # Compute distance
23
+
24
+ # Combine all original columns + distance
25
+ combined_row = {
26
+ **row1.to_dict(), # Keep all columns from Dataset1
27
+ **{
28
+ f"{col}_Dataset2": row2[col] for col in df2.columns
29
+ }, # Keep all columns from Dataset2
30
+ "Distance_km": distance_km,
31
+ }
32
+ distances.append(combined_row)
33
+
34
+ df_distances = pd.DataFrame(distances)
35
+
36
+ # Find the closest point for each Point1
37
+ df_closest: pd.DataFrame = df_distances.loc[
38
+ df_distances.groupby(code_col1)["Distance_km"].idxmin()
39
+ ]
40
+
41
+ return df_distances, df_closest