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:
object
Local 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:
object
Model 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 (
list
ofdict
List of local area districts) – - pcd_sectors (
list
ofdict
List of postcode sectors (pcd)) – - assets (
list
ofdict
) –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:
object
Postcode 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 (
list
ofdict
) –List of assets
- pcd_sector:
str
Code of the postcode sector - site_ngr:
int
Unique site reference number - technology:
str
Abbreviation of the asset technology (LTE, 5G etc.) - frequency:
str
Spectral frequency(s) the asset operates at (800, 2600, ..) - type:
str
The type of cell site (macrocell site, small cell site…) - build_date:
int
Build 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
- overbooking factor
- smartphone penetration
- market share
- user demand
- area
E.g.:
2000 population / 20 * (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 demand
Type: 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.