setwd("J:/Documents/Arbete/Fortlöpande miljöanalys/Fenologi/Skoglig fenologi vid SLU") library(dplyr) xpre<-91:250 ypre<-rep(0,160) minxpre<-min(xpre) maxxpre<-max(xpre) xtspre<-seq(0,2000,by=5) PEP.table<-data.frame(koder=0,doy=0,year=0,station=0,species=0)[FALSE, ] Interpol.table<-data.frame(DOY=0,ShootDev=0,ShootProc=0,Year=0,Station=0,Species=0)[FALSE, ] Interpol.tsum<-data.frame(Station=0,Species=0,Year=0,Tempsum=0,ShootDevProc=0)[FALSE, ] tree0<- read.csv("Tree_data.csv", header=TRUE, sep=",", dec=".") tempsum<- read.csv("Tempsum.csv", header=TRUE, sep=",", dec = ".") treedata<-arrange(tree0,Species,Station,Year,doy) specieslist<-unique(treedata$Species) for (l in 1:length(specieslist)) { testspecies<-subset(treedata,treedata$Species==specieslist[l]) stationlist<-unique(testspecies$Station) # plot.new() par(mfrow = c(2,1)) for (k in 1:length(stationlist)) { teststation<-subset(testspecies,testspecies$Station==stationlist[k]) yearlist<-unique(teststation$Year) plot(xpre,ypre, xlab="", ylab = paste("Station ", stationlist[k], ", species " ,specieslist[l]),ylim=c(0,100),col="white") for (j in 1:length(yearlist)) { testyear<-subset(teststation,teststation$Year==yearlist[j]) tempsumyear<-subset(tempsum,tempsum$Station==stationlist[k] & tempsum$Year==yearlist[j] & tempsum$doy>=minxpre & tempsum$doy<=maxxpre) shootdev0<-as.data.frame(approx(testyear$doy,testyear$ShootDev,xout=xpre,yleft = -1, yright = -2), col.names = c("doy","ShootDev")) shootdev<-subset(shootdev0,shootdev0$ShootDev>-1) minshoot<-min(shootdev$ShootDev) maxshoot<-max(shootdev$ShootDev) for (i in 1:length(xpre)) { if (shootdev0$ShootDev[i]==-1) shootdev0$ShootDev[i]=minshoot else shootdev0$ShootDev[i] if (shootdev0$ShootDev[i]==-2) shootdev0$ShootDev[i]=maxshoot else shootdev0$ShootDev[i] } shootdev0$ShootProc<-(shootdev0$ShootDev-minshoot)/(maxshoot-minshoot)*100 if (nrow(tempsumyear)>0) { colnames(shootdev0)[1]<-"doy" colnames(tempsumyear)[3]<-"doy" shootdev1<-merge(shootdev0, tempsumyear, by = "doy") shootdev2<-as.data.frame(approx(shootdev1$Tempsum,shootdev1$ShootProc,xout=xtspre, yleft = 0, yright = 100, ties = mean), col.names = c("Tempsum","ShootDevProc")) shootdev2$Year <-yearlist[j] shootdev2$Station<-stationlist[k] shootdev2$Species<-specieslist[l] shootdev2<-shootdev2 %>% relocate(Station,Species,Year) Interpol.tsum<-rbind(Interpol.tsum,shootdev2) } shootdev0$Year <-yearlist[j] shootdev0$Station<-stationlist[k] shootdev0$Species<-specieslist[l] koder<-c(31,32,33,34,35,36,37,38,39) doy<-c(0,0,0,0,0,0,0,0,0) for (m in 1:(length(koder)-1)) { for (i in 1:length(xpre)) { if (shootdev0$ShootProc[i]>=10*m & doy[m]==0) doy[m]=shootdev0$doy[i] else doy[m] } } for (i in 1:length(xpre)) { if (shootdev0$ShootProc[i]==100 & doy[9]==0) doy[9]=shootdev0$doy[i] else doy[9] } #points(doy[1],shootdev$ShootProc[doy[1]-90], col = 6, pch = 1, cex = 0.7) lines(shootdev0$doy,shootdev0$ShootProc, col = 6) Interpol.table<-rbind(Interpol.table,shootdev0) koddoy<-as.data.frame(koder) koddoy<-merge(koddoy,as.data.frame(doy),0) koddoy$Row.names=NULL koddoy$Year <-yearlist[j] koddoy$Station<-stationlist[k] koddoy$Species<-specieslist[l] PEP.table<-rbind(PEP.table,koddoy) } } } Intpoltab<-Interpol.table %>% relocate(Species,Station,Year) PEPtab<-PEP.table %>% relocate(Station,Species,koder,Year) colnames(PEPtab)[3]<-"phase_id" Intpoltab<-arrange(Intpoltab,Species,Station,Year,doy) PEPtab<-arrange(PEPtab,Species,Station,Year,phase_id) write.csv(Intpoltab, "InterpolTreeData.csv", row.names = FALSE) write.csv(PEPtab, "PEP-TreeData.csv", row.names = FALSE) write.csv(Interpol.tsum, "InterpolTsumTreeData.csv", row.names = FALSE)