cdcam package¶
Cambridge Digital Communications Assessment Model
Submodules¶
cdcam.interventions module¶
Decide on interventions
-
cdcam.interventions.decide_interventions(strategy, budget, service_obligation_capacity, system, timestep, simulation_parameters)[source]¶ Given a system and a set of strategy parameters, return the best selected interventions.
Parameters: - strategy (str) – One of ‘minimal’, ‘macrocell’, ‘small_cell’ intervention strategies.
- budget (int) – Annual budget in GBP.
- service_obligation_capacity (float) – Threshold for universal mobile service, in Mbps/km².
- system (NetworkManager) – Gives areas (postcode sectors) with population density, demand.
- timestep (int) – The current simulation timestep.
- simulation_parameters (dict) – All necessary simulation parameters.
-
cdcam.interventions.meet_demand(budget, available_interventions, timestep, system, simulation_parameters)[source]¶ Suggest areas based on meeting highest demand first.
Parameters: - budget (int) – Annual budget in GBP.
- available_interventions (tuple) – Contains the different intervention options that can be selected.
- timestep (int) – The current simulation timestep.
- system (NetworkManager) – Gives areas (postcode sectors) with population density, demand.
- simulation_parameters (dict) – All necessary simulation parameters.
-
cdcam.interventions.meet_service_obligation(budget, available_interventions, timestep, service_obligation_capacity, system, simulation_parameters)[source]¶ Suggest areas based on meeting a desired capacity threshold.
Parameters: - budget (int) – Annual budget in GBP.
- available_interventions (tuple) – Contains the different intervention options that can be selected.
- timestep (int) – The current simulation timestep.
- service_obligation_capacity (float) – Threshold for universal mobile service, in Mbps/km².
- system (NetworkManager) – Gives areas (postcode sectors) with population density, demand.
- simulation_parameters (dict) – All necessary simulation parameters.
cdcam.model module¶
Cambridge Communications Assessment Model
-
class
cdcam.model.LAD(data, simulation_parameters)[source]¶ Bases:
objectLocal area district - Higher level statistical unit.
Represents an area to be modelled. Contains data for demand characterisation and assets for supply assessment.
Parameters: - data (dict) –
Metadata and info for the LAD
- simulation_parameters (dict) –
Contains all simulation parameters, set in the run script.
- market_share:
int - Percentage market share of the modelled hypothetical operator.
- market_share:
- annual_budget:
int - Annual budget to spend.
- annual_budget:
- service_obligation_capacity:
int - Required service obligation.
- service_obligation_capacity:
- busy_hour_traffic_percentage:
int - Percentage of daily traffic taking place in the busy hour.
- busy_hour_traffic_percentage:
- coverage_threshold:
int - The threshold we wish to measure the served population against.
- coverage_threshold:
- penetration:
int - The penetration of users with smartphone and data access.
- penetration:
- channel_bandwidth:
int - Carrier bandwidth by frequency.
- channel_bandwidth:
- macro_sectors:
int - Number of sectors per macrocell.
- macro_sectors:
- small-cell_sectors:
int - Number of sectors per small cell.
- small-cell_sectors:
- mast_height:
int - Mast height for the sites being assessed.
- mast_height:
-
area¶
-
coverage(simulation_parameters)[source]¶ Return proportion of population with coverage over a threshold (e.g. 10 Mbps).
-
population¶
-
population_density¶
- data (dict) –
-
class
cdcam.model.NetworkManager(lads, pcd_sectors, assets, capacity_lookup_table, clutter_lookup, simulation_parameters)[source]¶ Bases:
objectModel controller class.
Represents lower level statistical units (postcode sectors) nested within upper level statistical units (local area districts), with all affiliated assets, capacities and clutter types.
Parameters: - lads (
listofdictList of local area districts) – - pcd_sectors (
listofdictList of postcode sectors (pcd)) – - assets (
listofdict) –List of assets
- pcd_sector:
str - Code of the postcode sector
- pcd_sector:
- site_ngr:
int - Unique site reference number
- site_ngr:
- technology:
str - Abbreviation of the asset technology (LTE, 5G etc.)
- technology:
- frequency:
str - Spectral frequency(s) the asset operates at (800, 2600, ..)
- frequency:
- type:
str - The type of cell site (macrocell site, small cell site…)
- type:
- build_date:
int - Build year of the asset
- build_date:
- capacity_lookup_table (dict) –
Dictionary that represents the clutter/asset type, spectrum frequency and channel bandwidth, and the consequential cellular capacity provided for different asset densities.
- clutter_lookup (list of tuples) –
Each element represents the settlement definitions for urban, suburban and rural by population density in square kilometers (persons per km²)
- simulation_parameters (dict) –
Contains all simulation parameters, set in the run script.
- market_share:
int - Percentage market share of the modelled hypothetical operator.
- market_share:
- annual_budget:
int - Annual budget to spend.
- annual_budget:
- service_obligation_capacity:
int - Required service obligation.
- service_obligation_capacity:
- busy_hour_traffic_percentage:
int - Percentage of daily traffic taking place in the busy hour.
- busy_hour_traffic_percentage:
- coverage_threshold:
int - The threshold we wish to measure the served population against.
- coverage_threshold:
- penetration:
int - The penetration of users with smartphone and data access.
- penetration:
- channel_bandwidth:
int - Carrier bandwidth by frequency.
- channel_bandwidth:
- macro_sectors:
int - Number of sectors per macrocell.
- macro_sectors:
- small-cell_sectors:
int - Number of sectors per small cell.
- small-cell_sectors:
- mast_height:
int - Mast height for the sites being assessed.
- mast_height:
- lads (
-
class
cdcam.model.PostcodeSector(data, assets, capacity_lookup_table, clutter_lookup, simulation_parameters)[source]¶ Bases:
objectPostcode Sector - Lower level statistical unit.
Represents an area to be modelled. Contains data for demand characterisation and assets for supply assessment.
Parameters: - data (dict) –
Metadata and info for the LAD
- assets (
listofdict) –List of assets
- pcd_sector:
strCode of the postcode sector - site_ngr:
intUnique site reference number - technology:
strAbbreviation of the asset technology (LTE, 5G etc.) - frequency:
strSpectral frequency(s) the asset operates at (800, 2600, ..) - type:
strThe type of cell site (macrocell site, small cell site…) - build_date:
intBuild year of the asset
- pcd_sector:
- capacity_lookup_table (dict) –
Dictionary that represents the clutter/asset type, spectrum frequency and channel bandwidth, and the consequential cellular capacity provided for different asset densities.
- clutter_lookup (list of tuples) –
Each element represents the settlement definitions for urban, suburban and rural by population density in square kilometers (persons per km²)
- simulation_parameters (dict) –
Contains all simulation parameters, set in the run script.
-
demand¶ - population
- smartphone penetration
- market share
- user demand
- area
E.g.:
100 population * (80% / 100) penetration * (25% / 100) market share = 20 users 20 users * 0.01 Mbps user demand = 0.2 total user throughput 0.2 Mbps total user throughput during the busy hour / 1 km² area = 0.2 Mbps/km² area demandType: Estimate total demand based on
-
population_density¶ Calculate population density for a specific population and area (persons per km²).
- data (dict) –
-
cdcam.model.find_frequency_bandwidth(frequency, simulation_parameters)[source]¶ Finds the correct bandwidth for a specific frequency from the simulation parameters.
-
cdcam.model.lookup_capacity(lookup_table, environment, cell_type, frequency, bandwidth, generation, site_density)[source]¶ Use lookup table to find capacity by clutter environment geotype, frequency, bandwidth, technology generation and site density.