digital_comms.mobile_network package¶
Submodules¶
digital_comms.mobile_network.costs module¶
Cost module
Written by Ed Oughton August 2019
-
digital_comms.mobile_network.costs.
calculate_costs
(data, discount_rate, start_timestep, current_timestep)[source]¶ Calculates the discounted cost for capex and opex, depending on timestep.
- Parameters
- Returns
output – Contains a list of assets, with affliated discounted capex and opex costs.
- Return type
list of dicts
digital_comms.mobile_network.interventions module¶
Decide on interventions
-
digital_comms.mobile_network.interventions.
decide_interventions
(strategy, budget, service_obligation_capacity, system, timestep, simulation_parameters)[source]¶ Given strategy parameters and a system return some next best intervention
- strategystr
One of ‘minimal’, ‘macrocell’, ‘small_cell’ intervention strategies
- budgetint
Annual budget in GBP
- service_obligation_capacityfloat
Threshold for universal mobile service, in Mbps/km^2
- systemNetworkManager
Gives areas (postcode sectors) with population density, demand
digital_comms.mobile_network.model module¶
Cambridge Communications Assessment Model
-
class
digital_comms.mobile_network.model.
LAD
(data, simulation_parameters)[source]¶ Bases:
object
Local area district.
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 * id:
int
Unique ID
- name:
str
Name of the LAD
- name:
simulation_parameters (dict) –
Contains all simulation parameters, set in the run script. * market_share: :obj: ‘int’
Percentage market share of the modelled hypothetical operator.
- annual_budget: :obj: ‘int’
Annual budget to spend.
- service_obligation_capacity: :obj: ‘int’
Required service obligation.
- busy_hour_traffic_percentage: :obj: ‘int’
Percentage of daily traffic taking place in the busy hour.
- coverage_threshold: :obj: ‘int’
The threshold we wish to measure the served population against.
- penetration: :obj: ‘int’
The penetration of users with smartphone and data access.
-
property
area
¶
-
coverage
(simulation_parameters)[source]¶ Return proportion of population with capacity coverage over a threshold
-
property
population
¶
-
property
population_density
¶
-
class
digital_comms.mobile_network.model.
NetworkManager
(lads, pcd_sectors, assets, capacity_lookup_table, clutter_lookup, simulation_parameters)[source]¶ Bases:
object
Model controller class.
Represents postcode sectors nested in local area districts, with all affiliated assets, capacities and clutter types.
- Parameters
List of local area districts * id:
int
Unique ID
- name:
str
Name of the LAD
- name:
List of postcode sectors (pcd) * id:
str
Postcode name
List of assets * pcd_sector:
str
Code of the postcode 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. * key:
tuple
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^2) * 0:
int
Population density in persons per km^2.
- 1:
string
Settlement type (rban, suburban and rural)
- 1:
simulation_parameters (dict) –
Contains all simulation parameters, set in the run script. * market_share: :obj: ‘int’
Percentage market share of the modelled hypothetical operator.
- annual_budget: :obj: ‘int’
Annual budget to spend.
- service_obligation_capacity: :obj: ‘int’
Required service obligation.
- busy_hour_traffic_percentage: :obj: ‘int’
Percentage of daily traffic taking place in the busy hour.
- coverage_threshold: :obj: ‘int’
The threshold we wish to measure the served population against.
- penetration: :obj: ‘int’
The penetration of users with smartphone and data access.
-
class
digital_comms.mobile_network.model.
PostcodeSector
(data, assets, capacity_lookup_table, clutter_lookup, simulation_parameters, testing)[source]¶ Bases:
object
Represents a pcd_sector to be modelled
-
property
demand
¶ Estimate total demand based on population and penetration.
- E.g.
- 0.02 Mbps per user during busy hours
100 population
0.8 penetration
/ 10 km^2 area
= ~0.16 Mbps/km^2 area capacity demand
-
property
population_density
¶ Calculate population density for a specific population and area.
-
property
-
digital_comms.mobile_network.model.
find_frequency_bandwidth
(frequency, simulation_parameters)[source]¶ Finds the correct bandwidth for a specific frequency from the simulation parameters.
-
digital_comms.mobile_network.model.
interpolate
(x0, y0, x1, y1, x)[source]¶ Linear interpolation between two values.
-
digital_comms.mobile_network.model.
lookup_capacity
(lookup_table, clutter_environment, frequency, bandwidth, generation, site_density, testing)[source]¶ Use lookup table to find capacity by clutter environment geotype, frequency, bandwidth and site density.