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()