R version 4.5.2 (2025-10-31) -- "[Not] Part in a Rumble" Copyright (C) 2025 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. Natural language support but running in an English locale R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. During startup - Warning message: In system("uname -a", intern = TRUE) : running command 'uname -a' had status 1 > ################################################################### > # SELECT TIME PERIOD > # seconds for 2 days > daystep <- 60*60*24 > step <- daystep*2 > t2 <- Sys.time() > t1 <- t2 - step > runningdate <- seq.Date( from=as.Date(t1), to=as.Date(t2), by="day") > > > IDS <- c( + "2CF7F1C053300306", + "2CF7F1C05330029D", + "2CF7F1C053300330", + "2CF7F1C053300329", + "2CF7F1C0533002A8", + + "2CF7F1C05330033E", + "2CF7F1C053300312", + "2CF7F1C053300341", + "2CF7F1C0533002AB", + "2CF7F1C0533002E0", + "2CF7F1C053300298" + ) > > > LAB <- c( + "306=125 Süd-West-Zaun", + "29D=020 Süd-Mitte-Zaun", + "330=167 Süd-Ost-Pfosten", + "329=160 Mitte-Pforte_Parkplatzschild", + "2A8=031 Mitte-Ende-Hauptstraße", + + "33E=181 Mitte-Parkplatz-Flutlichtmast", + "312=137 Nord-Eingang-Zaun", + "341=184 Mitte-Zaun-Eisenbahn", + "2AB=034 Nord-Ost-Ecke-Localbahnbrücke-Zaun", + "2E0=087 Nord-West-Laterne", + "298=015 Nord-Ost-Laterne_Gebuesch" + ) > > > COL <- c("cornflowerblue","darkblue","cadetblue","mediumorchid1", + "orange","red2","firebrick4","tomato3", + "forestgreen","black","tan4","indianred1","darkolivegreen4", + "magenta","tan3","lightsalmon","yellowgreen","chartreuse","wheat4","darkgrey", + "tan1","seagreen","mediumvioletred","tan2") > > > > > ################################################################### > > data <- data.frame(matrix(ncol = 5, nrow = 0)) > > # GET FILES FOR SELECTED DAYS > init <- 1 > for (j in seq_along(IDS)) { + ID <- IDS[j] + + mondir1 <- substr(runningdate[1], 1, 7) + mondir2 <- substr(runningdate[length(runningdate)], 1, 7) + filename1 <- paste(ID,"_",mondir1,".csv",sep="") + filename2 <- paste(ID,"_",mondir2,".csv",sep="") + + URL=paste("https://saqn.geo.uni-augsburg.de/lorawan/",mondir1,"/",filename1,sep="") + message("filename =",URL) + + tryCatch( + { + data1 <- read.table(URL,header=T,sep=",", fill=T) + colnames(data1) <- c("date","lon","lat","temp","rhum","batt") + data1$id <- ID + data <- rbind(data,data1) + }, + error = function(cond) { + message(conditionMessage(cond)) + }, + warning = function(cond) { + message(conditionMessage(cond)) + }, + finally = { + message("done!") + } + ) + + if( mondir1 != mondir2 ){ + + tryCatch( + { + # data2 <- read.table(URL,header=F,sep=",", col.names=c("date","temp","rhum","batt"), fill=T, header=T) + URL=paste("https://saqn.geo.uni-augsburg.de/lorawan/",mondir2,"/",filename2,sep="") + message("filename =",URL) + data2 <- read.table(URL,header=T,sep=",", fill=T) + colnames(data2) <- c("date","lon","lat","temp","rhum","batt") + data2$id <- ID + data <- rbind(data,data2) + }, + error = function(cond) { + message(conditionMessage(cond)) + }, + warning = function(cond) { + message(conditionMessage(cond)) + }, + finally = { + message("done!") + } + ) + + } + } filename =https://saqn.geo.uni-augsburg.de/lorawan/2026-06/2CF7F1C053300306_2026-06.csv done! filename =https://saqn.geo.uni-augsburg.de/lorawan/2026-06/2CF7F1C05330029D_2026-06.csv done! filename =https://saqn.geo.uni-augsburg.de/lorawan/2026-06/2CF7F1C053300330_2026-06.csv done! filename =https://saqn.geo.uni-augsburg.de/lorawan/2026-06/2CF7F1C053300329_2026-06.csv done! filename =https://saqn.geo.uni-augsburg.de/lorawan/2026-06/2CF7F1C0533002A8_2026-06.csv done! filename =https://saqn.geo.uni-augsburg.de/lorawan/2026-06/2CF7F1C05330033E_2026-06.csv done! filename =https://saqn.geo.uni-augsburg.de/lorawan/2026-06/2CF7F1C053300312_2026-06.csv done! filename =https://saqn.geo.uni-augsburg.de/lorawan/2026-06/2CF7F1C053300341_2026-06.csv done! filename =https://saqn.geo.uni-augsburg.de/lorawan/2026-06/2CF7F1C0533002AB_2026-06.csv done! filename =https://saqn.geo.uni-augsburg.de/lorawan/2026-06/2CF7F1C0533002E0_2026-06.csv cannot open URL 'https://saqn.geo.uni-augsburg.de/lorawan/2026-06/2CF7F1C0533002E0_2026-06.csv': HTTP status was '404 Not Found' done! filename =https://saqn.geo.uni-augsburg.de/lorawan/2026-06/2CF7F1C053300298_2026-06.csv done! > > data[data < -9998] <- NA > #data$time <- as.POSIXct(data$date) > data$time <- as.POSIXct(data$date,format="%Y-%m-%dT%H:%M:%OSZ") > > message("t1 = ",t1) t1 = 2026-06-25 15:50:14.438476 > message("t2 = ",t2) t2 = 2026-06-27 15:50:14.438476 > > > message("sensecap_temp_ledvance.png") sensecap_temp_ledvance.png > > #--------------------------------------------------------- > png("sensecap_temp_ledvance.png",width=1600, height=600, units="px", res=300, pointsize=3) > tempmin <- min(data$temp[data$time >= t1],na.rm = TRUE) - 1 > tempmax <- max(data$temp[data$time >= t1],na.rm = TRUE) + 1 > plot(data$time,data$temp,xlab=paste("time UTC"),ylab="air temperature (°C)", + xlim=c(as.POSIXct(t1),as.POSIXct(t2)),ylim=c(tempmin,tempmax),type="n",xaxs="i",yaxs="i",xaxt="n", + main=paste("Air Temperature (S2101) ",t1," - ",t2," UTC" )) > Axis(x=data$temp,side=4) > ihours <- round( seq( as.POSIXct(t1), as.POSIXct(t2),by=3600) , units="hours") > axis.POSIXct(1, x=data$time, at = ihours, format = "%a %m-%d %H:%M") > abline(v= as.POSIXct(ihours) ,lwd=0.2,col="gray") > abline(h=seq(-40,tempmax,by=1),lwd=0.2,col="gray") > abline(h=seq(-40,tempmax,by=5),lwd=0.2,col="black") > abline(h=0.0,lwd=0.5,col="black") > > for (i in seq_along(IDS)) { + ID <- IDS[i] + COLOR <- COL[i] + message(ID,COLOR) + lines(data$time[data$id == ID],data$temp[data$id == ID],col=COLOR,t="l",lwd=0.5) + } 2CF7F1C053300306cornflowerblue 2CF7F1C05330029Ddarkblue 2CF7F1C053300330cadetblue 2CF7F1C053300329mediumorchid1 2CF7F1C0533002A8orange 2CF7F1C05330033Ered2 2CF7F1C053300312firebrick4 2CF7F1C053300341tomato3 2CF7F1C0533002ABforestgreen 2CF7F1C0533002E0black 2CF7F1C053300298tan4 > > legend("topleft",LAB, col=COL[1:length(LAB)],lty=1,lwd=0.5) > dev.off() null device 1 > > #--------------------------------------------------------- > message("sensecap_rhum_ledvance.png") sensecap_rhum_ledvance.png > > png("sensecap_rhum_ledvance.png",width=1600, height=600, units="px", res=300, pointsize=3) > rhummin <- min(data$rhum,na.rm = TRUE) - 2 > rhummax <- max(data$rhum,na.rm = TRUE) + 2 > plot(data$time,data$rhum,xlab=paste("time UTC"),ylab="relative humidity (%)", + xlim=c(as.POSIXct(t1),as.POSIXct(t2)),ylim=c(rhummin,rhummax),type="n",xaxs="i",yaxs="i",xaxt="n", + main=paste("Relative Humidity (S2101) ",t1," - ",t2," UTC" )) > Axis(x=data$rhum,side=4) > ihours <- round( seq( as.POSIXct(t1), as.POSIXct(t2),by=3600) , units="hours") > axis.POSIXct(1, x=data$time, at = ihours, format = "%a %m-%d %H:%M") > abline(v= as.POSIXct(ihours) ,lwd=0.2,col="gray") > abline(h=seq(0,rhummax,by=20),lwd=0.2,col="gray") > abline(h=seq(0,100,by=10),lwd=0.2,col="black") > > for (i in seq_along(IDS)) { + ID <- IDS[i] + COLOR <- COL[i] + message(ID,COLOR) + lines(data$time[data$id == ID],data$rhum[data$id == ID],col=COLOR,t="l",lwd=0.5) + } 2CF7F1C053300306cornflowerblue 2CF7F1C05330029Ddarkblue 2CF7F1C053300330cadetblue 2CF7F1C053300329mediumorchid1 2CF7F1C0533002A8orange 2CF7F1C05330033Ered2 2CF7F1C053300312firebrick4 2CF7F1C053300341tomato3 2CF7F1C0533002ABforestgreen 2CF7F1C0533002E0black 2CF7F1C053300298tan4 > > legend("topleft",LAB, col=COL[1:length(LAB)],lty=1,lwd=0.5) > dev.off() null device 1 > > > > proc.time() user system elapsed 1.698 2.907 2.066 rm: write error: No space left on device