db_query / utils /utils_vars.py
DavMelchi's picture
adding NICE DB
9a4ad92
import numpy as np
import pandas as pd
# url = "https://raw.githubusercontent.com/DavMelchi/STORAGE/refs/heads/main/physical_db/physical_database.csv"
url = r"./physical_db/physical_database.csv"
def get_physical_db():
"""
Reads the physical_database.csv file from the physical_db directory and
returns a pandas DataFrame containing only the columns 'Code_Sector',
'Azimut', 'Longitude', 'Latitude', and 'Hauteur'.
Returns:
pd.DataFrame: A DataFrame containing the filtered columns.
"""
physical = pd.read_csv(url)
physical = physical[
[
"Code_Sector",
"Azimut",
"Longitude",
"Latitude",
"Hauteur",
"City",
"Adresse",
"Commune",
"Cercle",
]
]
return physical
class UtilsVars:
sector_mapping = {4: 1, 5: 2, 6: 3, 11: 1, 12: 2, 13: 3, 81: 1, 82: 2, 83: 3}
type_cellule = {1: "Macro Cell 1800", 0: "Macro Cell 900"}
oml_band_frequence = {1: "OML BAND GSM 1800", 0: "OML BAND GSM 900"}
gsm_band = {1: "G1800", 0: "G900"}
configuration_schema = {1: "EGPRS 1800", 0: "EGPRS 900"}
channeltype_mapping = {4: "BCCH", 3: "TRX_TCH"}
oml_lte_freq_band = {
"L1800": "OML E-UTRA Band 3 - 20MHz",
"L800": "OML E-UTRA Band 20 - 20MHz",
"L2300": "OML E-UTRA Band 43 - 20MHz",
"L2600": "OML E-UTRA Band 7 - 20MHz",
}
porteuse_mapping = {
3004: "OML UTRA Band VIII",
3006: "OML UTRA Band VIII",
10812: "OML UTRA Band I",
10787: "OML UTRA Band I",
10837: "OML UTRA Band I",
}
color_mapping = {
"U900": "7fff0000",
"U2100": "7f00ff00",
"G900": "7fff0000",
"G1800": "7f00ff00",
"L800": "7fff0000",
"L1800": "7f00ff00",
"L2300": "7f00ffff",
"L2600": "7f0000ff",
}
size_mapping = {
"U900": 100,
"U2100": 120,
"G900": 100,
"G1800": 120,
"L800": 100,
"L1800": 120,
"L2300": 90,
"L2600": 80,
}
wcdma_band = {
3004: "U900",
3006: "U900",
10787: "U2100",
10837: "U2100",
10812: "U2100",
}
bsc_name = {
403698: "MBSCTST",
403699: "MBSC01",
403701: "MBSC04",
403702: "MBSC03",
403703: "MBSC02",
406283: "MBSKTL01",
406284: "MBSSEG01",
406308: "MBSSK0S1",
}
final_lte_database = ""
final_gsm_database = ""
final_wcdma_database = ""
final_trx_database = ""
final_mrbts_database = ""
final_invunit_database = ""
final_mal_database = ""
gsm_dfs = []
wcdma_dfs = []
lte_dfs = []
all_db_dfs = []
all_db_dfs_names = []
final_all_database = None
atoll_dfs = []
final_atoll_database = None
final_nice_database = None
neighbors_database = ""
file_path = ""
gsm_kml_file = None
wcdma_kml_file = None
lte_kml_file = None
# physisal_db = get_physical_db()
def get_band(text):
"""
Extract the band from the given string.
Parameters
----------
text : str
The string to extract the band from.
Returns
-------
str or np.nan
The extracted band, or NaN if the text was not a string or did not contain
any of the recognized bands (L1800, L2300, L800).
"""
if isinstance(text, str): # Check if text is a string
if "L1800" in text:
return "L1800"
elif "L2300" in text:
return "L2300"
elif "L800" in text:
return "L800"
elif "L2600" in text:
return "L2600"
return np.nan # or return None
class GsmAnalysisData:
total_number_of_bsc = 0
total_number_of_cell = 0
number_of_site = 0
number_of_cell_per_bsc = pd.DataFrame()
number_of_site_per_bsc = pd.DataFrame()
number_of_bts_name_empty = 0
number_of_bcf_name_empty = 0
number_of_bcch_empty = 0
bts_administate_distribution = pd.DataFrame()
trx_administate_distribution = pd.DataFrame()
number_of_trx_per_bsc = pd.DataFrame()
number_of_cell_per_lac = pd.DataFrame()
number_of_site_per_lac = pd.DataFrame()
trx_frequency_distribution = pd.DataFrame()
class WcdmaAnalysisData:
total_number_of_rnc = 0
total_number_of_wcel = 0
number_of_site = 0
number_of_site_per_rnc = 0
number_of_cell_per_rnc = pd.DataFrame()
number_of_empty_wbts_name = 0
number_of_empty_wcel_name = 0
wcel_administate_distribution = pd.DataFrame()
psc_distribution = pd.DataFrame()
number_of_cell_per_lac = pd.DataFrame()
number_of_site_per_lac = pd.DataFrame()
class LteFddAnalysisData:
total_number_of_lncel = 0
total_number_of_site = 0
number_of_empty_lncel_name = 0
number_of_empty_lncel_cellname = 0
number_of_empty_lnbts_name = 0
number_of_cell_per_band = pd.DataFrame()
phycellid_distribution = pd.DataFrame()
rootsequenceindex_distribution = pd.DataFrame()
lncel_administate_distribution = pd.DataFrame()
number_of_cell_per_tac = pd.DataFrame()
class LteTddAnalysisData:
total_number_of_lncel = 0
total_number_of_site = 0
number_of_empty_lncel_name = 0
number_of_empty_lncel_cellname = 0
number_of_empty_lnbts_name = 0
number_of_cell_per_band = pd.DataFrame()
phycellid_distribution = pd.DataFrame()
rootsequenceindex_distribution = pd.DataFrame()
lncel_administate_distribution = pd.DataFrame()
number_of_cell_per_tac = pd.DataFrame()
class SiteAnalysisData:
total_number_of_site = 0
total_munber_of_gsm_site = 0
total_number_of_wcdma_site = 0
total_number_of_lte_site = 0
gsm_bands_distribution = pd.DataFrame()
wcdma_bands_distribution = pd.DataFrame()
lte_bands_distribution = pd.DataFrame()
all_bands_distribution = pd.DataFrame()
number_of_trx_per_site_distribution = pd.DataFrame()