Created
December 16, 2014 13:31
-
-
Save meerestier/b1c30ebb76152720a849 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
################################################################################# | |
# | |
# Eure Daten | |
library("FGClimatology") | |
meteo20 <- read.logger("../Data/Messung_Moerickeluch_Nov2014/CR800_20_Meteo.dat") | |
meteo40 <- read.logger("../Data/Messung_Moerickeluch_Nov2014/CR800_40_Meteo.dat") | |
meteo50 <- read.logger("../Data/Messung_Moerickeluch_Nov2014/CR800_50_Meteo.dat") | |
# Vorprozessierung - falsches Datum | |
meteo20 <- meteo20[-(1:6),] | |
meteo40 <- meteo40[-(1:38),] | |
meteo50 <- meteo50[-c(1,2675:2678),] | |
# einige Messfuehler sind falsch kalibriert worden (Fehler im Logger behoben) | |
kalib <- function(x, intercept = 0, slope = 1){ (x-intercept)/slope } | |
meteo20$ RH_b <- kalib(meteo20$ RH_b, -0.72, 1.047) | |
meteo40$ RH_b <- kalib(meteo40$ RH_b, -0.62, 1.044) | |
meteo40$ RH_t <- kalib(meteo40$ RH_t, -0.38, 1.038) | |
################################################################################# | |
# | |
# Vergleich der Stationen untereinander | |
# Trotz Vorprozessierung haben die Stationen verschiedene Anfangs- und Endzeiten | |
summary(meteo20) | |
summary(meteo40) | |
summary(meteo50) | |
# Was ist der spaeteste Startzeitpunkt? Was der frueheste Endzeitpunkt? | |
# Vergleich der unterschiedlichen min() miteinander ... | |
min_time <- max( c( min(meteo20$ TIMESTAMP), min(meteo40$ TIMESTAMP), min(meteo50$ TIMESTAMP) ) ) | |
max_time <- min( c( max(meteo20$ TIMESTAMP), max(meteo40$ TIMESTAMP), max(meteo50$ TIMESTAMP) ) ) | |
# der TIMESTAMP muss groess?er als min_time und kleiner als max_time sein | |
# logical-Vektoren! | |
meteo20_time <- meteo20$ TIMESTAMP >= min_time & meteo20$ TIMESTAMP <= max_time | |
meteo40_time <- meteo40$ TIMESTAMP >= min_time & meteo40$ TIMESTAMP <= max_time | |
meteo50_time <- meteo50$ TIMESTAMP >= min_time & meteo50$ TIMESTAMP <= max_time | |
summary(meteo20_time) | |
summary(meteo40_time) | |
summary(meteo50_time) | |
# anlegen einer neuen Tabelle mit allen Temperatur-Werten (Spalte 3 und 5) | |
Temp_all <- cbind(meteo20[meteo20_time, c(1,3,5)], meteo40[meteo40_time, c(3,5)],meteo50[meteo50_time, c(3,5)]) | |
str(Temp_all) | |
# zweiter weg | |
Temp_all_alt <- cbind(meteo20 $ Temp_t [meteo20_time], meteo20$Temp_t[meteo20_time], meteo40[meteo40_time, c(3,5)],meteo50[meteo50_time, c(3,5)]) | |
boxplot(Temp_all) | |
common_timestamp <- seq(min_time, max_time, units="minutes", by=60) | |
# Aufgabe: Erstellen eines boxplots mit allen Temperaturfuehlern am zweiten Tag | |
# Tipp: Es werden neue logical_variablen fuer die Tage gebraucht | |
# (auf die Laenge von common_timestamp angepasst) | |
################################################################################# | |
RH_all <- cbind(meteo20[meteo20_time, c(4,6)], meteo40[meteo40_time, c(4,6)],meteo50[meteo50_time, c(4,6)]) | |
boxplot(RH_all) | |
# Temp_all beinhaltet TIMESTAMP und alle Temperaturfühler | |
Temp_all <- cbind(meteo20[meteo20_time, c(1,3,5)], meteo40[meteo40_time, c(3,5)],meteo50[meteo50_time, c(3,5)]) | |
# Filtern nach day2 TODO: warum geht nicht == | |
day2 <- Temp_all$TIMESTAMP >= as.POSIXlt("12.11.2014",format="%d.%m.%Y") & Temp_all$TIMESTAMP < as.POSIXlt("13.11.2014",format="%d.%m.%Y") | |
summary(day2) | |
Temp_day2 <- subset (Temp_all, Temp_all$TIMESTAMP >= as.POSIXlt("12.11.2014",format="%d.%m.%Y") & Temp_all$TIMESTAMP < as.POSIXlt("13.11.2014",format="%d.%m.%Y")) | |
# Boxplotten, aber erste Spalte auslassen | |
boxplot(Temp_day2[,-1], xlab = "Abb. 1: Temperatur an Stationen, T & B", ylab = "Temperatur in °C", xaxt="n") | |
# Beschriftung | |
axis(at=1:6,side=1,c("20 T","20 B","40 T","40 B","50 T","50 B")) | |
# Aufgabe: Erstellen eines Zeitreihenplots mit den Top-Temperaturfuehlern | |
# als Linien nebeneinander in einem plot! | |
Temp_all_topt <- cbind(meteo20[meteo20_time, c(1,3)], meteo40[meteo40_time, c(3)],meteo50[meteo50_time, c(3)]) | |
# Diagramm vorbereiten | |
xrange <- c(min_time, max_time) | |
yrange <- c(min( c( min(meteo20$ Temp_t), min(meteo40$ Temp_t), min(meteo50$ Temp_t) ) ), max( c( max(meteo20$ Temp_t), max(meteo40$ Temp_t), max(meteo50$ Temp_t) ) )) | |
plot(xrange, yrange, type="n", panel.first = grid(10,10), xaxt="n", yaxt="n", xlab=NA, ylab=NA) | |
# Achseneinteilung, automatische Beschriftungen | |
xticks <- seq(round(starttime, units = "hours"), round(endtime, units = "hours"), by=6*60*60)+3600 | |
axis(side = 1, at = xticks, labels = format(xticks, "%H:%M"), tck = -.015) | |
xticks <- seq(round(starttime, units = "days"), round(endtime, units = "days"), by=24*60*60) | |
axis(side = 1, at = xticks+12*3600, labels = format(xticks, "%d.%m.%Y"), lwd = 0, line = 1.2) | |
axis(side = 2, tck = -.015, las = 1) | |
# AchsenBeschriftungen | |
mtext(side = 2, "Temperatur in °C", line = 2) | |
# Abbildungsbeschriftung | |
mtext(side = 1, "Abb. 2: Top-Temperaturfühler ", line = 4) | |
# Plot | |
lines(Temp_all_topt$TIMESTAMP, Temp_all_topt[,2], col="black") | |
lines(Temp_all_topt$TIMESTAMP, Temp_all_topt[,3], col="gray") | |
lines(Temp_all_topt$TIMESTAMP, Temp_all_topt[,4], col="blue") | |
# Legende | |
legend("bottomright",legend=c("20","40","50"), col=c("black","gray","blue"),lty=1 ) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment