plantphys / gsti

A project focused on the development of generalized spectra-trait models for the prediction of leaf photosynthetic capacity. This includes models focused on the prediction of leaf nitrogen, leaf mass per area (LMA), leaf water content (LWC), Vcmax, Jmax and dark respiration.
GNU General Public License v3.0
6 stars 1 forks source link

Serbin_et_al_2019 #18

Open JulienLamour opened 2 years ago

JulienLamour commented 2 years ago

@serbinsh DO you have the raw data for this one? https://ecosis.org/package/uw-bnl-nasa-hyspiri-airborne-campaign-leaf-and-canopy-spectra-and-trait-data

serbinsh commented 1 year ago

Yes - I will place into the git repo.

Not all of the gasex data has had the area corrects to fit the data properly and thats a level of work that I dont think we will be able to get done

serbinsh commented 1 year ago

@JulienLamour OK, initial stab at starting the process of including the HyspIRI datasets here: https://github.com/TESTgroup-BNL/Global_Vcmax/tree/main/Datasets/Serbin_et_al_2019

However I have some questions about the steps and how I am expected to curate the data? I did check and it seems the new fitted data is close to the estimates I generated before

Also just to confirm the "Ref" fitted data are at 25C?

serbinsh commented 1 year ago

@JulienLamour working on initial fitting of california gasex data and am running into this error that isnt very informative

Error in FUN(X[[i]], ...) : 
  trying to get slot "coef" from an object of a basic class ("NULL") with no slots
In addition: There were 50 or more warnings (use warnings() to see the first 50)
> traceback()
6: FUN(X[[i]], ...)
5: lapply(X = X, FUN = FUN, ...)
4: sapply(result_Ac_Aj, FUN = function(x) c(x[[2]]@coef, BIC = BIC(x[[2]]), 
       Tleaf = x[[3]]["Tleaf"]))
3: t(sapply(result_Ac_Aj, FUN = function(x) c(x[[2]]@coef, BIC = BIC(x[[2]]), 
       Tleaf = x[[3]]["Tleaf"])))
2: as.data.frame(t(sapply(result_Ac_Aj, FUN = function(x) c(x[[2]]@coef, 
       BIC = BIC(x[[2]]), Tleaf = x[[3]]["Tleaf"])))) at fit_Aci.R#47
1: f.fit_Aci(measures = curated_data, param = f.make.param(RdHd = 0, 
       RdS = 0))

It looks like its happening after fitting when looking at best fits. Suggests perhaps a curve doesnt provide any results and thus is missing coef values?

serbinsh commented 1 year ago

Also seeing warnings like this sometimes

Error in optim(par = c(sigma = 4.6183914593709e-05, JmaxRef = 368.253811164414,  : 
  non-finite finite-difference value [1]
In addition: Warning messages:
1: In mean.default(measures$Tair, na.rm = TRUE) :
  argument is not numeric or logical: returning NA
2: In mean.default(measures$VPDleaf, na.rm = TRUE) :
  argument is not numeric or logical: returning NA
3: In mean.default(measures$Tair, na.rm = TRUE) :
  argument is not numeric or logical: returning NA
4: In mean.default(measures$VPDleaf, na.rm = TRUE) :
  argument is not numeric or logical: returning NA
5: In mean.default(measures$Tair, na.rm = TRUE) :
  argument is not numeric or logical: returning NA
6: In mean.default(measures$VPDleaf, na.rm = TRUE) :
  argument is not numeric or logical: returning NA
7: In mean.default(measures$Tair, na.rm = TRUE) :
  argument is not numeric or logical: returning NA
8: In mean.default(measures$VPDleaf, na.rm = TRUE) :
  argument is not numeric or logical: returning NA
9: In dnorm(x = data$A, mean = A_pred$A, sd = (sigma), log = TRUE) :
  NaNs produced
$par
JulienLamour commented 1 year ago

The warning: "In mean.default(measures$Tair, na.rm = TRUE) : argument is not numeric or logical: returning NA" comes from the LeafGasExchange package. When I fit the data I also summarise the info to comply with the ESS standard when we publish the data. So I produce a table with the mean Tair, VPDleaf, Tleaf, etc.. If the Tair is not present in the datafile "measures" you have this warning.

serbinsh commented 2 weeks ago

@JulienLamour OK so I have a partial start to the HyspIRI data - at least the ag data in the latest push to main in #58

What is left to do is figure out how to keep what I need in the datasets to merge the spectra and traits in the full multi-dataset merge step. I did explore quickly vcmax fits after outlier removal and it looks promising. I wont be able to work on this again for another week but can come back and try to wrap up this first set of data for paper 1 in early july