summaryrefslogtreecommitdiff
path: root/analysis/analysis.R
blob: f38a1a338a1e8ee4ac9c79b2ea5aa3dd941b4ec1 (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
library("tidyverse")

## Simulation Parameters:
## simkey         {baseline,extended,hint,hintandextended}
## wireless       {lora,nbiot}
## wakeupfor      {60s,180s}
## seed           [1,200]
## node           on[0,12]
## isSender       {0,1}
## dataSize       {1MB}

## Metrics:
## energy         [0,+inf)
## nDataRcv       [0,+inf)

nseed=200
nwakeupfor=2
nwireless=2
nsimkey=4
nsimulations=nseed*nwakeupfor*nwireless*nsimkey # Must be 3200

## Load data
data=read_csv("../CCGRID2022.csv")%>%distinct() # Note that in the data experiment wireless=="lora",seed==1,wakeupfor==60,simkey=="baseline" is present 2 times in the CSV file
tmp_data_coverage=data%>%group_by(simkey,wireless,wakeupfor,seed)%>%mutate(coverage=sum(nDataRcv))%>%ungroup()%>%filter(isSender==1)%>%select(simkey,wireless,wakeupfor,seed,coverage)
data_seed_isSender=data%>%group_by(simkey,wireless,wakeupfor,seed,isSender)%>%summarize(energy_mean=mean(energy))%>%
    left_join(tmp_data_coverage,by=c("simkey","wireless","wakeupfor","seed"))%>%
    mutate(efficiency=energy_mean/coverage)%>%
    ungroup()
data_seed=data%>%group_by(simkey,wireless,wakeupfor,seed)%>%summarize(energy=sum(energy),coverage=sum(nDataRcv))%>%
    mutate(efficiency=energy/coverage)%>%
    ungroup()

## Perform various plots to understand the data
GG_VARIOUS=function(){
    ## Dimension Coverage
    ggplot(data_seed%>%mutate(wakeupfor=as.character(wakeupfor)),
           aes(simkey,coverage,color=wakeupfor))+geom_point()+facet_wrap(~wireless+wakeupfor)+ggtitle("Dimension Coverage")
    ggsave("figures/dimension_coverage.pdf")
    ## Dimension Energy
    ggplot(data_seed%>%mutate(wakeupfor=as.character(wakeupfor)),
           aes(simkey,energy,color=wakeupfor))+geom_point()+facet_wrap(~wireless+wakeupfor)+ggtitle("Dimension Energy")+ylab("Energy Consumption (J)")
    ggsave("figures/dimension_energy.pdf")
    ## Dimension Efficiency
    ggplot(data_seed%>%mutate(wakeupfor=as.character(wakeupfor)),
           aes(simkey,efficiency,color=wakeupfor))+
        geom_point()+facet_wrap(~wireless+wakeupfor)+ggtitle("Dimension Efficiency")+ylab("Efficiency (J/Succ)")
    ggsave("figures/dimension_efficiency.pdf")
    ## Dimension Energy/Coverage
    ggplot(data_seed%>%mutate(wakeupfor=as.character(wakeupfor)),
           aes(coverage,energy,color=simkey))+geom_point()+
        ggtitle("Dimension Energy/Coverage")+xlab("Coverage")+ylab("Sum of nodes energy consumption (J)")+
        facet_wrap(~wakeupfor+wireless,scale="free")
    ggsave("figures/dimension_energy-coverage.pdf")
    ## Dimension Energy/Coverage Wakeupfor
    ggplot(data_seed%>%mutate(wakeupfor=as.character(wakeupfor)),
           aes(coverage,energy,color=wakeupfor))+geom_point()+
        ggtitle("Dimension Energy/Coverage Wakeupfor")+xlab("Coverage")+ylab("Sum of nodes energy consumption (J)")
    ggsave("figures/dimension_energy-coverage-wakeupfor.pdf")
    ## Dimension Energy/Coverage Policy
    ggplot(data_seed%>%mutate(wakeupfor=as.character(wakeupfor)),
           aes(coverage,energy,color=simkey))+geom_point()+
        ggtitle("Dimension Energy/Coverage Policy")+xlab("Coverage")+ylab("Sum of nodes energy consumption (J)")
    ggsave("figures/dimension_energy-coverage-policy.pdf")

    
}

## Plot to generate:
GG_VARIOUS()


system("rm -f figures/combined.pdf")
system("pdfunite figures/*.pdf figures/combined.pdf")