Source code for simulator.reports.DtnEnergyReport
import pandas as pd
from simulator.reports.DtnAbstractReport import DtnAbstractReport
[docs]class DtnEnergyReport(DtnAbstractReport):
_alias = 'energy'
[docs] def collect_data(self):
# Initialize variables
data = []
# Iterate through all nodes
for nid, node in self.env.nodes.items():
# Iterate over all ducts to a given neighbor
for neighbor, ducts in node.ducts.items():
# Iterate over all ducts
for duct_id, duct in ducts.items():
# Get the radios for this duct. Note that only
# the outduct consumes energy
radios = duct['outduct'].radios
# If no radios are defined, continue
if not radios: continue
# Create record
data.extend((nid, neighbor, duct_id, rid, radio.energy)
for rid, radio in radios.items())
# Create data frame
df = pd.DataFrame(data, columns=('node', 'neighbor', 'duct',
'radio', 'energy_J'))
# Return data
return df