aboutsummaryrefslogtreecommitdiff
path: root/results/analysis.R
blob: 2a946fbd2a5c3f2f65f9b2a91e9768d6af717513 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
library("tidyverse")
library("knitr")

data=read_csv("results.csv")    
ccgrid=read_csv("ccgrid.csv")


r_=function(x){round(x,digits=2)}

finalEnergy=data%>%group_by(simkey,wireless,wakeupfor)%>%summarize(wireless=first(wireless),sd=sd(energy),wakeupfor=first(wakeupfor),energy=mean(energy))
#finalStats=data%>%group_by(simkey,wireless,wakeupfor,seed)%>%
 #   summarise(success=sum(nSend))%>%
  #  ungroup()%>%group_by(simkey,wireless,wakeupfor)%>%
   # summarise(sd_success=sd(success),success=mean(success))

# Success
finalStats=data%>%filter(isSender!=0)%>%group_by(simkey,wireless,wakeupfor)%>%summarise(sd_success=sd(nSend),success=mean(nSend))

# Hint Added
#hintAdded=data%>%filter(isSender==0)%>%group_by(simkey,wireless,wakeupfor)%>%summarise(hint_added=mean(hint_added))
#finalStats=finalStats%>%left_join(hintAdded,by=c("simkey","wireless","wakeupfor"))

# Sender energy
senderEnergy=data%>%filter(isSender!=0)%>%group_by(simkey,wireless,wakeupfor)%>%summarise(senderEnergy=mean(energy))
receiverEnergy=data%>%filter(isSender==0)%>%group_by(simkey,wireless,wakeupfor)%>%summarise(receiverEnergy=mean(energy))
finalStats=finalStats%>%left_join(senderEnergy,by=c("simkey","wireless","wakeupfor"))
finalStats=finalStats%>%left_join(receiverEnergy,by=c("simkey","wireless","wakeupfor"))

# Uptime
senderUptime=data%>%filter(isSender!=0)%>%group_by(simkey,wireless,wakeupfor)%>%summarise(senderUptime=mean(totalUptime))
receiverUptime=data%>%filter(isSender==0)%>%group_by(simkey,wireless,wakeupfor)%>%summarise(receiverUptime=mean(totalUptime))
finalStats=finalStats%>%left_join(senderUptime,by=c("simkey","wireless","wakeupfor"))
finalStats=finalStats%>%left_join(receiverUptime,by=c("simkey","wireless","wakeupfor"))

# Comparison
finalStats=finalStats%>%left_join(ccgrid,by=c("simkey","wireless","wakeupfor"),suffix = c("","_ccgrid"))
finalStats=finalStats%>%mutate(senderEnergy_err=abs(r_((senderEnergy-senderEnergy_ccgrid)/senderEnergy)*100))
finalStats=finalStats%>%mutate(receiverEnergy_err=abs(r_((receiverEnergy-receiverEnergy_ccgrid)/receiverEnergy)*100))
finalStats=finalStats%>%mutate(senderUptime_err=abs(r_((senderUptime-senderUptime_ccgrid)/senderUptime)*100))
finalStats=finalStats%>%mutate(receiverUptime_err=abs(r_((receiverUptime-receiverUptime_ccgrid)/receiverUptime)*100))

# Add nSendFail to stats
sendFail=data%>%filter(node=="on0")%>%group_by(simkey,wireless,wakeupfor)%>%summarise(nSendFail=mean(nSendFail))
finalStats=finalStats%>%left_join(sendFail,by=c("simkey","wireless","wakeupfor"))


ggplot(finalStats,aes(x=simkey,senderEnergy_err,color=wireless,group=wireless))+geom_point()+geom_line()+facet_wrap(~wakeupfor)+xlab("Scenarios") + ylab("Sender Energy Relative Error (%)") + expand_limits(x = 0, y = 0)
ggsave("err_sender_energy.png",width=7,height = 5)

ggplot(finalStats,aes(x=simkey,receiverEnergy_err,color=wireless,group=wireless))+geom_point()+geom_line()+facet_wrap(~wakeupfor)+xlab("Scenarios") + ylab("Receiver Energy Relative Error (%)") + expand_limits(x = 0, y = 0)
ggsave("err_receiver_energy.png",width=7,height = 5)

ggplot(finalStats,aes(x=simkey,senderUptime_err,color=wireless,group=wireless))+geom_point()+geom_line()+facet_wrap(~wakeupfor)+xlab("Scenarios") + ylab("Sender AccUptime Energy Relative Error (%)") + expand_limits(x = 0, y = 0)
ggsave("err_sender_accuptime.png",width=7,height = 5)

ggplot(finalStats,aes(x=simkey,receiverUptime_err,color=wireless,group=wireless))+geom_point()+geom_line()+facet_wrap(~wakeupfor)+xlab("Scenarios") + ylab("Receiver AccUptime Energy Relative Error (%)") + expand_limits(x = 0, y = 0)
ggsave("err_rcv_accuptime.png",width=7,height = 5)


stopifnot(1)
# Generate plots
ggplot(finalEnergy,aes(x=simkey,y=energy,fill=wireless))+
    geom_bar(stat="identity",position=position_dodge())+
    xlab("Scenarios")+ylab("Energy (J)")+
    geom_errorbar(position=position_dodge(0.9),aes(ymin=energy-sd, ymax=energy+sd),width=0.5,size=1.5,) +
    facet_wrap(~ wakeupfor) +
    geom_text(aes(label = r_(energy+sd), y= energy+sd),vjust=-0.4,position=position_dodge(0.9))+
    geom_text(aes(label = r_(energy-sd), y= energy-sd),vjust=+1.5,position=position_dodge(0.9))+
    geom_text(aes(label = r_(energy), y= energy/2),fontface="bold",colour="white",position=position_dodge(0.9))
ggsave("energy.png")


ggplot(finalStats,aes(x=simkey,y=success,fill=wireless))+
    geom_bar(stat="identity",position=position_dodge())+
    xlab("Scenarios")+ylab("Energy (J)")+
    geom_errorbar(position=position_dodge(0.9),aes(ymin=success-sd_success, ymax=success+sd_success),width=0.5,size=1.5,) +
    geom_text(aes(label = r_(success+sd_success), y= success+sd_success),vjust=-0.4,position=position_dodge(0.9))+
    geom_text(aes(label = r_(success-sd_success), y= success-sd_success),vjust=+1.5,position=position_dodge(0.9))+
    geom_text(aes(label = r_(success), y= success/2),fontface="bold",colour="white",position=position_dodge(0.9))+
    facet_wrap(~ wakeupfor) +
ggsave("success.png")

##### Save tables #####
tf="tables-energy.org"
write("",file=tf)
for(wake in unique(data$wakeupfor)){
    write(kable(finalEnergy%>%filter(wireless=="lora",wakeupfor==wake)),file=tf,append=TRUE)
    write("\n",file=tf,append=TRUE)
    write(kable(finalEnergy%>%filter(wireless=="nbiot",wakeupfor==wake)),file=tf,append=TRUE)
    write("\n",file=tf,append=TRUE)
}

tf="tables-stats.org"
write("",file=tf)
for(wake in unique(data$wakeupfor)){
    write(kable(finalStats%>%filter(wireless=="lora",wakeupfor==wake)),file=tf,append=TRUE)
    write("\n",file=tf,append=TRUE)
    write(kable(finalStats%>%filter(wireless=="nbiot",wakeupfor==wake)),file=tf,append=TRUE)
    write("\n",file=tf,append=TRUE)
}