SFM: SFM

Description Usage Arguments Value Author(s) Examples

View source: R/Spectral_fitting_methods.R

Description

Compute spectral fitting methods on measured data. It returns fluorescence and true reflectance

Usage

1
SFM(wl, L, E, fluoFG, O2band, output)

Arguments

wl

numeric vector: wavelength vector

L

numeric vector: measued reflected radiance

E

numeric vector: measured solar radiance

fluoFG

numeric value: fluorescence estimate derived from iFLD method

O2band

character value: A or B referring to the oxygen absorption band where to compute the fluorescence estimation

output

character value: FULL or VALUE referring to output expected. If FULL a data.fame of the spectrum in the considered range of fluorescence and true reflectance is returned. If VALUE the fluorescence and the true reflectance at the selected oxygen band is returned.

Value

List containing:

Author(s)

Tommaso Julitta, Mirco Migliavacca, Thomas Wutzler

Examples

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
  





data("FloX_data")


data("up_coeff")


data("dw_coeff")


data("wl_FloX")





#Get Target Radiance 


L<-GetRadiance(DNSignal=FloX_data$L-FloX_data$dcL,IntegrationTime=FloX_data$IT_L/1000,RadCalCoeff=dw_coeff)


#Get Solar Radiance 


E<-GetRadiance(DNSignal=FloX_data$E-FloX_data$dcE,IntegrationTime=FloX_data$IT_E/1000,RadCalCoeff=up_coeff)


#Estimate fluorescence using iFLD method, used as first guess for Spectral Fitting Methods


iFLD_O2A<-iFLD(wl=wl_FloX,E,L,fwhm =0.3,O2band="A")


iFLD_O2B<-iFLD(wl=wl_FloX,E,L,fwhm =0.4,O2band="B")


#Estimate fluorescence at O2A band using SFM method, used as first guess for Spectral Fitting Methods


res<-SFM(wl = wl_FloX, L = L[,1],E= E[,1],fluoFG = iFLD_O2A$Fluo[1], O2band ="A", output = "FULL")


sfm_FLD_O2A<-res$Results





#Plot results


x11()


range<-which(wl_FloX>=750& wl_FloX<=780)


WL<-wl_FloX[range]


par(mfcol=c(1,2))


plot(wl_FloX,(L[,1]/E[,1]),pch=20,ylim=c(0.5,1.2),xlim=c(755,770),type="l",lwd=3,col="green",xlab="Wavelength [nm]",ylab="Reflectance [-]",cex.lab=1.5,cex.axis=1.5,main = "Reflectance")


lines(WL,sfm_FLD_O2A[,2],pch=20,col="red",lwd=2)


grid()


legend("topleft",col=c("green","red"),lty=1,legend=c("Apparent","Retrieved"),box.col="white",lwd=2,cex=1.5)


box()


plot(WL,sfm_FLD_O2A[,1],ylim=c(0,5),type="l",lwd=3,xlim=c(755,770),col="red",xlab="Wavelength [nm]",ylab="Fluorescence [mW m-2 sr-1 nm-1]",cex.lab=1.5,cex.axis=1.5,main = "Fluorescence")


abline(h=iFLD_O2A$Fluo[1]*1000,lty=2,col="green",lwd=3)


grid()


legend("topleft",col=c("green","red"),lty=c(3,1),legend=c("iFLD","SFM"),box.col="white",lwd=2,cex=1.5)


box()





#Estimate fluorescence at O2B band using SFM method, used as first guess for Spectral Fitting Methods


res<-SFM(wl = wl_FloX, L = L[,1],E= E[,1],fluoFG = iFLD_O2A$Fluo[1], O2band ="B", output = "FULL")


sfm_FLD_O2B<-res$Results


#Plot results


x11()


range<-which(wl_FloX>=684& wl_FloX<=700)


WL<-wl_FloX[range]


par(mfcol=c(1,2))


plot(wl_FloX,(L[,1]/E[,1]),pch=20,ylim=c(0,0.2),xlim=c(686,698),type="l",lwd=3,col="green",xlab="WL [nm]",ylab=expression("Radiance [W m"^-2* "sr"^-1* "nm"^-1*"]"),cex.lab=1.5,cex.axis=1.5,main = "Reflectance")


lines(WL,sfm_FLD_O2B[,2],pch=20,col="red",lwd=2)


grid()


legend("topleft",col=c("green","red"),lty=1,legend=c("Apparent","Retrieved"),box.col="white",lwd=2,cex=1.5)


box()


plot(WL,sfm_FLD_O2B[,1],ylim=c(0,5),type="l",lwd=3,xlim=c(686,698),col="red",xlab="WL [nm]",ylab=expression("Radiance [W m"^-2* "sr"^-1* "nm"^-1*"]"),cex.lab=1.5,cex.axis=1.5,main = "Fluorescence")


abline(h=iFLD_O2B$Fluo[1]*1000,lty=2,col="green",lwd=3)


grid()


legend("topleft",col=c("green","red"),lty=c(3,1),legend=c("iFLD","SFM"),box.col="white",lwd=2,cex=1.5)


box()

tommasojulitta/FieldSpectroscopyDP documentation built on March 12, 2020, 1:42 p.m.