added ws202425 courses
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
|
||||
###############################################
|
||||
# Spektrendatei oeffnen #
|
||||
###############################################
|
||||
|
||||
spektren <- read.table("export_20220714.dat", header=F, fileEncoding = "UTF16")
|
||||
|
||||
#View(spektren)
|
||||
|
||||
###############################################
|
||||
# Tabelle anpassen #
|
||||
###############################################
|
||||
|
||||
|
||||
spektren.df <- lapply(spektren, function(x) {gsub(",", "", x)})
|
||||
spektren.df <- lapply(spektren.df, function(x) as.numeric(x))
|
||||
spektren.df <- as.data.frame(spektren.df)
|
||||
|
||||
wl <- "wavelength"
|
||||
white <- as.character(1)
|
||||
messungen <- as.character(seq(1,290,1))
|
||||
|
||||
names <- c(rbind(wl, messungen))
|
||||
names(spektren.df) <- names
|
||||
|
||||
View(spektren.df)
|
||||
|
||||
#write.csv(spektren.df,"/cloud/project/20220721_dataframe.csv")
|
||||
|
||||
###############################################
|
||||
# Messungen mit Korrektur der Referenzmessung #
|
||||
###############################################
|
||||
|
||||
# Die Ueberpruefung der Plausibiltaet der Messungen ist ein wichtiger Schritt
|
||||
# Wir ueberpruefen hier die Referenzmessung und bekommen einen Eindruck
|
||||
# vom mittleren Reflexionsverhalten der gemessenen Blaetter
|
||||
|
||||
|
||||
### Angaben zur Messung des Baumes
|
||||
prov = "xyz"
|
||||
baum.id = "abc"
|
||||
|
||||
# Spalte der Referenzmessung
|
||||
spalte.ref = 1
|
||||
|
||||
# Vektor mit Blattmessungen
|
||||
spalten.messungen = seq(2,16,1)
|
||||
|
||||
# alternativ (falls es mal Fehlmessungen etc. gibt)
|
||||
#spalten.messungen = c(2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)
|
||||
|
||||
# Spalte der weisen Referenz
|
||||
white=as.character(spalte.ref)
|
||||
|
||||
# Spalten der dazugeh?rigen Messungen
|
||||
mean <- rowMeans(spektren.df[, as.character(spalten.messungen)])
|
||||
|
||||
# Farbe Linie fuer das mittlere Spektrum
|
||||
col1 =" forest green"
|
||||
# Farbe fuer die Referenzmessung
|
||||
col2 = "gray"
|
||||
|
||||
# Plot mean
|
||||
plot(spektren.df$wavelength,
|
||||
#mean.ratio,
|
||||
xlab="Wellenlaenge (nm)", ylab="Reflexion (%)",
|
||||
type="l", col=col1, lwd=3,
|
||||
ylim= c(0,1), xlim=c(400,1050),
|
||||
main=paste("Baum ", baum.id, ", Provenienz ", prov, sep=""))
|
||||
lines(spektren.df$wavelength, unlist(spektren.df[white]), type="l", col=col2, lwd=3)
|
||||
|
||||
legend("bottomright",legend=c(paste("Baum ", baum.id, ", Provenienz ", prov, sep=""), "Referenz"),
|
||||
text.col=c(col1, col2),pch=c("-"),col=c(col1, col2), lwd=3)
|
||||
|
||||
|
||||
# Folgende Korrekture ist normalerweise nicht notwendig, wir muessen aber teilweise die Spektren
|
||||
# korrigieren, da die gemessene wei?e Referenz start von der "Einserlinie" abweicht.
|
||||
|
||||
# Bei den Messungen, wo die Referenz um 1 liegt, sieht man natuerlich keinen
|
||||
# gro?en Effekt,
|
||||
|
||||
# Es is aber fraglich, ob die Korrektur immer ausreichend ist.
|
||||
mean.ratio <- mean*1/unlist(spektren.df[white])
|
||||
|
||||
|
||||
|
||||
# Plot mean.ratio
|
||||
jpeg("mean_ratio.jpeg", quality = 100)
|
||||
plot(spektren.df$wavelength,
|
||||
mean.ratio,
|
||||
xlab="Wellenl?nge (nm)", ylab="Reflexion (%)",
|
||||
type="l", col=col1, lwd=3,
|
||||
ylim= c(0,1), xlim=c(400,1050),
|
||||
main=paste("Korrigiert - Baum ", baum.id, ", Provenienz ", prov, sep=""))
|
||||
lines(spektren.df$wavelength, unlist(spektren.df[white]), type="l", col=col2, lwd=3)
|
||||
|
||||
legend("bottomright",
|
||||
legend=c(paste("Baum ", baum.id, ", Provenienz ", prov, sep=""), "Referenz"),
|
||||
text.col=c(col1, col2), pch=c("-"),col=c(col1, col2), lwd=3)
|
||||
|
||||
|
||||
dev.off()
|
||||
|
||||
################################################
|
||||
# Plotten der Einzelmessungen fuer eine Messreihe #
|
||||
################################################
|
||||
|
||||
# Einzelmessungen einer Messreihe
|
||||
|
||||
# Hier koennen wir uns anschauen, ob alles mit den einzelnen Spektren passt un
|
||||
# wie variabel die Messungen sind. Ggf. k?nnen noch Fehlmessungen ausgeschlossen werden.
|
||||
|
||||
# Hier der Plot ohne Korrektur der Referenz, ist aber natürlich ohne Weiteres umsetzbar
|
||||
|
||||
jpeg("messreihe.jpeg", quality = 100)
|
||||
|
||||
plot(spektren.df$wavelength,
|
||||
spektren.df[, as.character(spalten.messungen)[1]],
|
||||
xlab="Wellenl?nge (nm)",
|
||||
ylab="Reflexion (%)",
|
||||
type="l", col=col2, lwd=1,
|
||||
ylim= c(0,0.6), xlim=c(400,1050),
|
||||
main=paste("Baum ", baum.id, ", Provenienz ", prov, sep=""))
|
||||
for (i in 2:length(spalten.messungen)){
|
||||
lines(spektren.df$wavelength,
|
||||
spektren.df[, as.character(spalten.messungen [i])],
|
||||
col=col2, lwd=1)
|
||||
}
|
||||
|
||||
dev.off()
|
||||
Reference in New Issue
Block a user