#housekeeping
options(jupyter.plot_mimetypes = c("text/plain", "image/png" ))
options(repr.plot.width=8, repr.plot.height=4)
suppressPackageStartupMessages(library(dplyr))
suppressPackageStartupMessages(library(zoo))
suppressPackageStartupMessages(library(lubridate))
suppressPackageStartupMessages(library(RCurl))
myfile <- getURL('https://rdm.inesctec.pt/dataset/8e80ec16-8124-4305-9d75-d0816ddc15b2/resource/efdeb2a4-1277-42f3-8b89-be6f57875aab/download/radoninesc202001.txt',ssl.verifyhost=FALSE, ssl.verifypeer=FALSE)
dat=read.table(textConnection(myfile),header=FALSE,sep="",stringsAsFactors=FALSE)
# data date/time as POSIXct
dat.times=as.POSIXct(paste(dat$V1,dat$V2),format="%Y-%m-%d %H:%M:%S",tz="UTC")
start.time=dat.times[1]
end.time=dat.times[length(dat.times)]
print(paste("data from", start.time, "to", end.time))
Rn=dat$V3
# check for continuity of record [0 --> continuous record]; result=number of gaps
# 6h measurements --> 21600 sec
ngaps=length(which(c(1,round(diff(unclass(dat.times)/21600)))!=1))
gaps=which(c(1,round(diff(unclass(dat.times)/21600)))!=1)
#fill-in gaps by adding missing times as NA values
all.times <- seq.POSIXt(from=start.time, to=end.time, by=21600)
df <- data.frame(dat.times=all.times,stringsAsFactors=FALSE)
data2020.01 <- full_join(df,data.frame(dat.times=dat.times, Rn=Rn))
[1] "data from 2020-01-01 to 2020-01-31 18:00:00"
Joining, by = "dat.times"
ts.zoo=zoo(data2020.01$Rn,data2020.01$dat.times)
times <- time(zoo(ts.zoo))
ticks <- seq(times[1], times[length(times)], by = "days")
fmt <- "%d-%m" # format for axis labels
labs <- format(ticks, fmt)
plot(ts.zoo,ylab = "Rn (Bq/m3)",xlab="day",col="darkmagenta", main="January 2020",xaxt="n",type="b",pch=20)
axis(1, at = ticks,labels=labs, tcl = -0.3)
myfile <- getURL('https://rdm.inesctec.pt/dataset/8e80ec16-8124-4305-9d75-d0816ddc15b2/resource/ce5b12fc-a3ab-4206-9bef-58031859ad48/download/radoninesc202002.txt',ssl.verifyhost=FALSE, ssl.verifypeer=FALSE)
dat=read.table(textConnection(myfile),header=FALSE,sep="",stringsAsFactors=FALSE)
# data date/time as POSIXct
dat.times=as.POSIXct(paste(dat$V1,dat$V2),format="%Y-%m-%d %H:%M:%S",tz="UTC")
start.time=dat.times[1]
end.time=dat.times[length(dat.times)]
print(paste("data from", start.time, "to", end.time))
Rn=dat$V3
# check for continuity of record [0 --> continuous record]; result=number of gaps
# 6h measurements --> 21600 sec
ngaps=length(which(c(1,round(diff(unclass(dat.times)/21600)))!=1))
gaps=which(c(1,round(diff(unclass(dat.times)/21600)))!=1)
#fill-in gaps by adding missing times as NA values
all.times <- seq.POSIXt(from=start.time, to=end.time, by=21600)
df <- data.frame(dat.times=all.times,stringsAsFactors=FALSE)
data2020.02 <- full_join(df,data.frame(dat.times=dat.times, Rn=Rn))
[1] "data from 2020-02-01 to 2020-02-29 18:00:00"
Joining, by = "dat.times"
ts.zoo=zoo(data2020.02$Rn,data2020.02$dat.times)
times <- time(zoo(ts.zoo))
ticks <- seq(times[1], times[length(times)], by = "days")
fmt <- "%d-%m" # format for axis labels
labs <- format(ticks, fmt)
plot(ts.zoo,ylab = "Rn (Bq/m3)",xlab="day",col="darkmagenta", main="February 2020",xaxt="n",type="b",pch=20)
axis(1, at = ticks,labels=labs, tcl = -0.3)
myfile <- getURL('https://rdm.inesctec.pt/dataset/8e80ec16-8124-4305-9d75-d0816ddc15b2/resource/36de903b-f4af-4beb-9a5a-595e219a59f4/download/radoninesc202003.txt',ssl.verifyhost=FALSE, ssl.verifypeer=FALSE)
dat=read.table(textConnection(myfile),header=FALSE,sep="",stringsAsFactors=FALSE)
# data date/time as POSIXct
dat.times=as.POSIXct(paste(dat$V1,dat$V2),format="%Y-%m-%d %H:%M:%S",tz="UTC")
start.time=dat.times[1]
end.time=dat.times[length(dat.times)]
print(paste("data from", start.time, "to", end.time))
Rn=dat$V3
# check for continuity of record [0 --> continuous record]; result=number of gaps
# 6h measurements --> 21600 sec
ngaps=length(which(c(1,round(diff(unclass(dat.times)/21600)))!=1))
gaps=which(c(1,round(diff(unclass(dat.times)/21600)))!=1)
#fill-in gaps by adding missing times as NA values
all.times <- seq.POSIXt(from=start.time, to=end.time, by=21600)
df <- data.frame(dat.times=all.times,stringsAsFactors=FALSE)
data2020.03 <- full_join(df,data.frame(dat.times=dat.times, Rn=Rn))
[1] "data from 2020-03-01 to 2020-03-31 18:00:00"
Joining, by = "dat.times"
ts.zoo=zoo(data2020.03$Rn,data2020.03$dat.times)
times <- time(zoo(ts.zoo))
ticks <- seq(times[1], times[length(times)], by = "days")
fmt <- "%d-%m" # format for axis labels
labs <- format(ticks, fmt)
plot(ts.zoo,ylab = "Rn (Bq/m3)",xlab="day",col="darkmagenta", main="March 2020",xaxt="n",type="b",pch=20)
axis(1, at = ticks,labels=labs, tcl = -0.3)
myfile <- getURL('https://rdm.inesctec.pt/dataset/8e80ec16-8124-4305-9d75-d0816ddc15b2/resource/a8ac9b07-1388-4a5f-af5d-9e2b4d6e43ec/download/radoninesc202004.txt',ssl.verifyhost=FALSE, ssl.verifypeer=FALSE)
dat=read.table(textConnection(myfile),header=FALSE,sep="",stringsAsFactors=FALSE)
# data date/time as POSIXct
dat.times=as.POSIXct(paste(dat$V1,dat$V2),format="%Y-%m-%d %H:%M:%S",tz="UTC")
start.time=dat.times[1]
end.time=dat.times[length(dat.times)]
print(paste("data from", start.time, "to", end.time))
Rn=dat$V3
# check for continuity of record [0 --> continuous record]; result=number of gaps
# 6h measurements --> 21600 sec
ngaps=length(which(c(1,round(diff(unclass(dat.times)/21600)))!=1))
gaps=which(c(1,round(diff(unclass(dat.times)/21600)))!=1)
#fill-in gaps by adding missing times as NA values
all.times <- seq.POSIXt(from=start.time, to=end.time, by=21600)
df <- data.frame(dat.times=all.times,stringsAsFactors=FALSE)
data2020.04 <- full_join(df,data.frame(dat.times=dat.times, Rn=Rn))
[1] "data from 2020-04-01 to 2020-04-30 18:00:00"
Joining, by = "dat.times"
ts.zoo=zoo(data2020.04$Rn,data2020.04$dat.times)
times <- time(zoo(ts.zoo))
ticks <- seq(times[1], times[length(times)], by = "days")
fmt <- "%d-%m" # format for axis labels
labs <- format(ticks, fmt)
plot(ts.zoo,ylab = "Rn (Bq/m3)",xlab="day",col="darkmagenta", main="April 2020",xaxt="n",type="b",pch=20)
axis(1, at = ticks,labels=labs, tcl = -0.3)
myfile <- getURL('https://rdm.inesctec.pt/dataset/8e80ec16-8124-4305-9d75-d0816ddc15b2/resource/0c22871a-4190-42a1-8b40-662f8fae2936/download/radoninesc202005.txt',ssl.verifyhost=FALSE, ssl.verifypeer=FALSE)
dat=read.table(textConnection(myfile),header=FALSE,sep="",stringsAsFactors=FALSE)
# data date/time as POSIXct
dat.times=as.POSIXct(paste(dat$V1,dat$V2),format="%Y-%m-%d %H:%M:%S",tz="UTC")
start.time=dat.times[1]
end.time=dat.times[length(dat.times)]
print(paste("data from", start.time, "to", end.time))
Rn=dat$V3
# check for continuity of record [0 --> continuous record]; result=number of gaps
# 6h measurements --> 21600 sec
ngaps=length(which(c(1,round(diff(unclass(dat.times)/21600)))!=1))
gaps=which(c(1,round(diff(unclass(dat.times)/21600)))!=1)
#fill-in gaps by adding missing times as NA values
all.times <- seq.POSIXt(from=start.time, to=end.time, by=21600)
df <- data.frame(dat.times=all.times,stringsAsFactors=FALSE)
data2020.05 <- full_join(df,data.frame(dat.times=dat.times, Rn=Rn))
[1] "data from 2020-05-01 to 2020-05-31 18:00:00"
Joining, by = "dat.times"
ts.zoo=zoo(data2020.05$Rn,data2020.05$dat.times)
times <- time(zoo(ts.zoo))
ticks <- seq(times[1], times[length(times)], by = "days")
fmt <- "%d-%m" # format for axis labels
labs <- format(ticks, fmt)
plot(ts.zoo,ylab = "Rn (Bq/m3)",xlab="day",col="darkmagenta", main="May 2020",xaxt="n",type="b",pch=20)
axis(1, at = ticks,labels=labs, tcl = -0.3)
myfile <- getURL('https://rdm.inesctec.pt/dataset/8e80ec16-8124-4305-9d75-d0816ddc15b2/resource/ce979651-7242-4db8-b4e6-b7748c87b06d/download/radoninesc202006.txt',ssl.verifyhost=FALSE, ssl.verifypeer=FALSE)
dat=read.table(textConnection(myfile),header=FALSE,sep="",stringsAsFactors=FALSE)
# data date/time as POSIXct
dat.times=as.POSIXct(paste(dat$V1,dat$V2),format="%Y-%m-%d %H:%M:%S",tz="UTC")
start.time=dat.times[1]
end.time=dat.times[length(dat.times)]
print(paste("data from", start.time, "to", end.time))
Rn=dat$V3
# check for continuity of record [0 --> continuous record]; result=number of gaps
# 6h measurements --> 21600 sec
ngaps=length(which(c(1,round(diff(unclass(dat.times)/21600)))!=1))
gaps=which(c(1,round(diff(unclass(dat.times)/21600)))!=1)
#fill-in gaps by adding missing times as NA values
all.times <- seq.POSIXt(from=start.time, to=end.time, by=21600)
df <- data.frame(dat.times=all.times,stringsAsFactors=FALSE)
data2020.06 <- full_join(df,data.frame(dat.times=dat.times, Rn=Rn))
[1] "data from 2020-06-01 to 2020-06-30 18:00:00"
Joining, by = "dat.times"
ts.zoo=zoo(data2020.06$Rn,data2020.06$dat.times)
times <- time(zoo(ts.zoo))
ticks <- seq(times[1], times[length(times)], by = "days")
fmt <- "%d-%m" # format for axis labels
labs <- format(ticks, fmt)
plot(ts.zoo,ylab = "Rn (Bq/m3)",xlab="day",col="darkmagenta", main="June 2020",xaxt="n",type="b",pch=20)
axis(1, at = ticks,labels=labs, tcl = -0.3)
myfile <- getURL('https://rdm.inesctec.pt/dataset/8e80ec16-8124-4305-9d75-d0816ddc15b2/resource/7f62e287-7b2e-4d4b-9fad-4f7ac509c90a/download/radoninesc202007.txt',ssl.verifyhost=FALSE, ssl.verifypeer=FALSE)
dat=read.table(textConnection(myfile),header=FALSE,sep="",stringsAsFactors=FALSE)
# data date/time as POSIXct
dat.times=as.POSIXct(paste(dat$V1,dat$V2),format="%Y-%m-%d %H:%M:%S",tz="UTC")
start.time=dat.times[1]
end.time=dat.times[length(dat.times)]
print(paste("data from", start.time, "to", end.time))
Rn=dat$V3
# check for continuity of record [0 --> continuous record]; result=number of gaps
# 6h measurements --> 21600 sec
ngaps=length(which(c(1,round(diff(unclass(dat.times)/21600)))!=1))
gaps=which(c(1,round(diff(unclass(dat.times)/21600)))!=1)
#fill-in gaps by adding missing times as NA values
all.times <- seq.POSIXt(from=start.time, to=end.time, by=21600)
df <- data.frame(dat.times=all.times,stringsAsFactors=FALSE)
data2020.07 <- full_join(df,data.frame(dat.times=dat.times, Rn=Rn))
[1] "data from 2020-07-01 to 2020-07-31 18:00:00"
Joining, by = "dat.times"
ts.zoo=zoo(data2020.07$Rn,data2020.07$dat.times)
times <- time(zoo(ts.zoo))
ticks <- seq(times[1], times[length(times)], by = "days")
fmt <- "%d-%m" # format for axis labels
labs <- format(ticks, fmt)
plot(ts.zoo,ylab = "Rn (Bq/m3)",xlab="day",col="darkmagenta", main="July 2020",xaxt="n",type="b",pch=20)
axis(1, at = ticks,labels=labs, tcl = -0.3)
myfile <- getURL('https://rdm.inesctec.pt/dataset/8e80ec16-8124-4305-9d75-d0816ddc15b2/resource/3c858dd5-711d-446a-bc99-5af174edcb41/download/radoninesc202008.txt',ssl.verifyhost=FALSE, ssl.verifypeer=FALSE)
dat=read.table(textConnection(myfile),header=FALSE,sep="",stringsAsFactors=FALSE)
# data date/time as POSIXct
dat.times=as.POSIXct(paste(dat$V1,dat$V2),format="%Y-%m-%d %H:%M:%S",tz="UTC")
start.time=dat.times[1]
end.time=dat.times[length(dat.times)]
print(paste("data from", start.time, "to", end.time))
Rn=dat$V3
# check for continuity of record [0 --> continuous record]; result=number of gaps
# 6h measurements --> 21600 sec
ngaps=length(which(c(1,round(diff(unclass(dat.times)/21600)))!=1))
gaps=which(c(1,round(diff(unclass(dat.times)/21600)))!=1)
#fill-in gaps by adding missing times as NA values
all.times <- seq.POSIXt(from=start.time, to=end.time, by=21600)
df <- data.frame(dat.times=all.times,stringsAsFactors=FALSE)
data2020.08 <- full_join(df,data.frame(dat.times=dat.times, Rn=Rn))
[1] "data from 2020-08-01 to 2020-08-31 18:00:00"
Joining, by = "dat.times"
ts.zoo=zoo(data2020.08$Rn,data2020.08$dat.times)
times <- time(zoo(ts.zoo))
ticks <- seq(times[1], times[length(times)], by = "days")
fmt <- "%d-%m" # format for axis labels
labs <- format(ticks, fmt)
plot(ts.zoo,ylab = "Rn (Bq/m3)",xlab="day",col="darkmagenta", main="August 2020",xaxt="n",type="b",pch=20)
axis(1, at = ticks,labels=labs, tcl = -0.3)
myfile <- getURL('https://rdm.inesctec.pt/dataset/8e80ec16-8124-4305-9d75-d0816ddc15b2/resource/e755d8f9-0b82-4b54-9546-c675e37ed80a/download/radoninesc202009.txt',ssl.verifyhost=FALSE, ssl.verifypeer=FALSE)
dat=read.table(textConnection(myfile),header=FALSE,sep="",stringsAsFactors=FALSE)
# data date/time as POSIXct
dat.times=as.POSIXct(paste(dat$V1,dat$V2),format="%Y-%m-%d %H:%M:%S",tz="UTC")
start.time=dat.times[1]
end.time=dat.times[length(dat.times)]
print(paste("data from", start.time, "to", end.time))
Rn=dat$V3
# check for continuity of record [0 --> continuous record]; result=number of gaps
# 6h measurements --> 21600 sec
ngaps=length(which(c(1,round(diff(unclass(dat.times)/21600)))!=1))
gaps=which(c(1,round(diff(unclass(dat.times)/21600)))!=1)
#fill-in gaps by adding missing times as NA values
all.times <- seq.POSIXt(from=start.time, to=end.time, by=21600)
df <- data.frame(dat.times=all.times,stringsAsFactors=FALSE)
data2020.09 <- full_join(df,data.frame(dat.times=dat.times, Rn=Rn))
[1] "data from 2020-09-01 to 2020-09-30 18:00:00"
Joining, by = "dat.times"
ts.zoo=zoo(data2020.09$Rn,data2020.09$dat.times)
times <- time(zoo(ts.zoo))
ticks <- seq(times[1], times[length(times)], by = "days")
fmt <- "%d-%m" # format for axis labels
labs <- format(ticks, fmt)
plot(ts.zoo,ylab = "Rn (Bq/m3)",xlab="day",col="darkmagenta", main="September 2020",xaxt="n",type="b",pch=20)
axis(1, at = ticks,labels=labs, tcl = -0.3)
myfile <- getURL('https://rdm.inesctec.pt/dataset/8e80ec16-8124-4305-9d75-d0816ddc15b2/resource/e4bdf861-6bc4-4c93-8f96-efeec765f82b/download/radoninesc202010.txt',ssl.verifyhost=FALSE, ssl.verifypeer=FALSE)
dat=read.table(textConnection(myfile),header=FALSE,sep="",stringsAsFactors=FALSE)
# data date/time as POSIXct
dat.times=as.POSIXct(paste(dat$V1,dat$V2),format="%Y-%m-%d %H:%M:%S",tz="UTC")
start.time=dat.times[1]
end.time=dat.times[length(dat.times)]
print(paste("data from", start.time, "to", end.time))
Rn=dat$V3
# check for continuity of record [0 --> continuous record]; result=number of gaps
# 6h measurements --> 21600 sec
ngaps=length(which(c(1,round(diff(unclass(dat.times)/21600)))!=1))
gaps=which(c(1,round(diff(unclass(dat.times)/21600)))!=1)
#fill-in gaps by adding missing times as NA values
all.times <- seq.POSIXt(from=start.time, to=end.time, by=21600)
df <- data.frame(dat.times=all.times,stringsAsFactors=FALSE)
data2020.10 <- full_join(df,data.frame(dat.times=dat.times, Rn=Rn))
[1] "data from 2020-10-01 to 2020-10-31 18:00:00"
Joining, by = "dat.times"
ts.zoo=zoo(data2020.10$Rn,data2020.10$dat.times)
times <- time(zoo(ts.zoo))
ticks <- seq(times[1], times[length(times)], by = "days")
fmt <- "%d-%m" # format for axis labels
labs <- format(ticks, fmt)
plot(ts.zoo,ylab = "Rn (Bq/m3)",xlab="day",col="darkmagenta", main="October 2020",xaxt="n",type="b",pch=20)
axis(1, at = ticks,labels=labs, tcl = -0.3)
myfile <- getURL('https://rdm.inesctec.pt/dataset/8e80ec16-8124-4305-9d75-d0816ddc15b2/resource/2297529a-33b9-446d-b3bd-0814e55db2fe/download/radoninesc202011.txt',ssl.verifyhost=FALSE, ssl.verifypeer=FALSE)
dat=read.table(textConnection(myfile),header=FALSE,sep="",stringsAsFactors=FALSE)
# data date/time as POSIXct
dat.times=as.POSIXct(paste(dat$V1,dat$V2),format="%Y-%m-%d %H:%M:%S",tz="UTC")
start.time=dat.times[1]
end.time=dat.times[length(dat.times)]
print(paste("data from", start.time, "to", end.time))
Rn=dat$V3
# check for continuity of record [0 --> continuous record]; result=number of gaps
# 6h measurements --> 21600 sec
ngaps=length(which(c(1,round(diff(unclass(dat.times)/21600)))!=1))
gaps=which(c(1,round(diff(unclass(dat.times)/21600)))!=1)
#fill-in gaps by adding missing times as NA values
all.times <- seq.POSIXt(from=start.time, to=end.time, by=21600)
df <- data.frame(dat.times=all.times,stringsAsFactors=FALSE)
data2020.11 <- full_join(df,data.frame(dat.times=dat.times, Rn=Rn))
[1] "data from 2020-11-01 to 2020-11-30 18:00:00"
Joining, by = "dat.times"
ts.zoo=zoo(data2020.11$Rn,data2020.11$dat.times)
times <- time(zoo(ts.zoo))
ticks <- seq(times[1], times[length(times)], by = "days")
fmt <- "%d-%m" # format for axis labels
labs <- format(ticks, fmt)
plot(ts.zoo,ylab = "Rn (Bq/m3)",xlab="day",col="darkmagenta", main="November 2020",xaxt="n",type="b",pch=20)
axis(1, at = ticks,labels=labs, tcl = -0.3)
myfile <- getURL('https://rdm.inesctec.pt/dataset/8e80ec16-8124-4305-9d75-d0816ddc15b2/resource/81550e4d-3d92-4e49-a9f7-dfb5adf4c281/download/radoninesc202012.txt',ssl.verifyhost=FALSE, ssl.verifypeer=FALSE)
dat=read.table(textConnection(myfile),header=FALSE,sep="",stringsAsFactors=FALSE)
# data date/time as POSIXct
dat.times=as.POSIXct(paste(dat$V1,dat$V2),format="%Y-%m-%d %H:%M:%S",tz="UTC")
start.time=dat.times[1]
end.time=dat.times[length(dat.times)]
print(paste("data from", start.time, "to", end.time))
Rn=dat$V3
# check for continuity of record [0 --> continuous record]; result=number of gaps
# 6h measurements --> 21600 sec
ngaps=length(which(c(1,round(diff(unclass(dat.times)/21600)))!=1))
gaps=which(c(1,round(diff(unclass(dat.times)/21600)))!=1)
#fill-in gaps by adding missing times as NA values
all.times <- seq.POSIXt(from=start.time, to=end.time, by=21600)
df <- data.frame(dat.times=all.times,stringsAsFactors=FALSE)
data2020.12 <- full_join(df,data.frame(dat.times=dat.times, Rn=Rn))
[1] "data from 2020-12-01 to 2020-12-14 06:00:00"
Joining, by = "dat.times"
ts.zoo=zoo(data2020.12$Rn,data2020.12$dat.times)
times <- time(zoo(ts.zoo))
ticks <- seq(times[1], times[length(times)], by = "days")
fmt <- "%d-%m" # format for axis labels
labs <- format(ticks, fmt)
plot(ts.zoo,ylab = "Rn (Bq/m3)",xlab="day",col="darkmagenta", main="December 2020",xaxt="n",type="b",pch=20)
axis(1, at = ticks,labels=labs, tcl = -0.3)