DavMelchi commited on
Commit
a7ca75d
·
1 Parent(s): f135ea9

Add 3G Adjl checking

Browse files
Files changed (1) hide show
  1. queries/process_adjl.py +49 -6
queries/process_adjl.py CHANGED
@@ -15,7 +15,9 @@ ADJL_GSM_COLUMNS = ["BSC", "BCF", "BTS", "ADJL", "earfcn", "lteAdjCellTac"]
15
 
16
  ADJL_WCDMA_COLUMNS = ["RNC", "WBTS", "WCEL", "ADJL", "AdjLEARFCN"]
17
 
18
- BTS_COLUMNS = ["ID_BTS", "name", "locationAreaIdLAC", "Code_Sector"]
 
 
19
 
20
  LTE_COLUMNS_CONFIG = ["Code_Sector", "site_config_band"]
21
 
@@ -87,10 +89,10 @@ def process_adjl_data(file_path: str) -> list[pd.DataFrame]:
87
  df_bts = process_gsm_data(file_path)[BTS_COLUMNS]
88
 
89
  # ------------------- WCEL -------------------
90
- df_wcel = process_wcdma_data(file_path)
91
- df_wcel["ID_WCEL"] = (
92
- df_wcel[["RNC", "WBTS", "WCEL"]].astype(str).agg("_".join, axis=1)
93
- )
94
 
95
  # ------------------- LTE -------------------
96
  lte_fdd_df, lte_tdd_df = process_lte_data(file_path)
@@ -164,7 +166,48 @@ def process_adjl_data(file_path: str) -> list[pd.DataFrame]:
164
  )
165
 
166
  # Mark existing BTS
167
- df_bts["exists"] = df_bts["ID_BTS"].isin(gsm_adjl_df["ID_BTS"])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
168
 
169
  return [gsm_adjl_df, wcdma_adjl_df, df_bts, df_wcel, lte_df]
170
 
 
15
 
16
  ADJL_WCDMA_COLUMNS = ["RNC", "WBTS", "WCEL", "ADJL", "AdjLEARFCN"]
17
 
18
+ BTS_COLUMNS = ["ID_BTS", "name", "Code_Sector"]
19
+
20
+ WCEL_COLUMNS = ["ID_WCEL", "name", "Code_Sector"]
21
 
22
  LTE_COLUMNS_CONFIG = ["Code_Sector", "site_config_band"]
23
 
 
89
  df_bts = process_gsm_data(file_path)[BTS_COLUMNS]
90
 
91
  # ------------------- WCEL -------------------
92
+ df_wcel = process_wcdma_data(file_path)[WCEL_COLUMNS]
93
+ # df_wcel["ID_WCEL"] = (
94
+ # df_wcel[["RNC", "WBTS", "WCEL"]].astype(str).agg("_".join, axis=1)
95
+ # )
96
 
97
  # ------------------- LTE -------------------
98
  lte_fdd_df, lte_tdd_df = process_lte_data(file_path)
 
166
  )
167
 
168
  # Mark existing BTS
169
+ df_bts["adjl_exists"] = df_bts["ID_BTS"].isin(gsm_adjl_df["ID_BTS"])
170
+
171
+ # --- WCDMA ADJL ---
172
+ # Filter invalid rows
173
+ wcdma_adjl_df = wcdma_adjl_df[
174
+ wcdma_adjl_df["RNC"].notna()
175
+ & wcdma_adjl_df["WBTS"].notna()
176
+ & wcdma_adjl_df["WCEL"].notna()
177
+ ].reset_index(drop=True)
178
+
179
+ # Build IDs and bands
180
+ wcdma_adjl_df["ID_WCEL"] = (
181
+ wcdma_adjl_df[["RNC", "WBTS", "WCEL"]].astype(str).agg("_".join, axis=1)
182
+ )
183
+ wcdma_adjl_df["ID_WCEL"] = wcdma_adjl_df["ID_WCEL"].str.replace(
184
+ ".0", "", regex=False
185
+ )
186
+ wcdma_adjl_df["adjl_band"] = wcdma_adjl_df["AdjLEARFCN"].map(UtilsVars.lte_band)
187
+
188
+ # Merge WCEL info
189
+ wcdma_adjl_df = pd.merge(wcdma_adjl_df, df_wcel, on="ID_WCEL", how="left")
190
+
191
+ # Aggregate ADJL band info
192
+ wcdma_adjl_df_band = adjl_band(wcdma_adjl_df, "ID_WCEL", "adjl_band")
193
+ wcdma_adjl_df = pd.merge(
194
+ wcdma_adjl_df, wcdma_adjl_df_band, on="ID_WCEL", how="left"
195
+ )
196
+
197
+ # Build Code_Sector_band
198
+ wcdma_adjl_df["Code_Sector_band"] = (
199
+ wcdma_adjl_df[["Code_Sector", "adjl_band"]].astype(str).agg("_".join, axis=1)
200
+ )
201
+
202
+ # Merge LTE references
203
+ wcdma_adjl_df = wcdma_adjl_df.merge(lte_df_config, on="Code_Sector", how="left")
204
+
205
+ # Validations
206
+ wcdma_adjl_df["check_bands"] = wcdma_adjl_df.apply(check_bands, axis=1)
207
+ wcdma_adjl_df["missing_bands"] = wcdma_adjl_df.apply(missing_bands, axis=1)
208
+
209
+ # Mark existing WCEL
210
+ df_wcel["adjl_exists"] = df_wcel["ID_WCEL"].isin(wcdma_adjl_df["ID_WCEL"])
211
 
212
  return [gsm_adjl_df, wcdma_adjl_df, df_bts, df_wcel, lte_df]
213