Ning Dong’s data

The data used here is this leaf photosynthetic traits and N dataset:

Data reference

Dong, Ning, Prentice, Iain Colin, Wright, Ian, Wang, Han, Atkin,Owen, Bloomfield, Keith, Domingues, Tomas, Gleason, Sean, Maire, Vincent, Onoda, Yusuke, Poorter, Hendrik, & Smith, Nicholas. (2022). dataset for paper “Leaf nitrogen from the perspective of optimal plant function” (Version v1) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.6831903

Paper reference

Dong, N., Prentice, I. C., Wright, I. J., Wang, H., Atkin, O. K., Bloomfield, K. J., Domingues, T. F., Gleason, S. M., Maire, V., Onoda, Y., Poorter, H., & Smith, N. G. (2022). Leaf nitrogen from the perspective of optimal plant function. Journal of Ecology, 00, 1– 18. https://doi.org/10.1111/1365-2745.13967

df <- read_csv("~/data/leafn_vcmax_ning_dong/data_leafn_vcmax_ning_dong.csv")
## Rows: 3107 Columns: 33
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (8): Genus Species, Family, woody, DE, Legume, Dataset, Contributor, Re...
## dbl (25): sample_ID, site_id, Latitude, longitude, elv, CO2, fapar, LMA, Nar...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Quick overview of data.

skim(df)
Data summary
Name df
Number of rows 3107
Number of columns 33
_______________________
Column type frequency:
character 8
numeric 25
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
Genus Species 0 1.00 4 44 0 2078 0
Family 0 1.00 1 18 0 196 0
woody 0 1.00 5 15 0 3 0
DE 46 0.99 1 19 0 4 0
Legume 0 1.00 2 3 0 2 0
Dataset 0 1.00 2 14 0 15 0
Contributor 0 1.00 3 28 0 55 0
Reference 0 1.00 11 34 0 22 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
sample_ID 0 1.00 1554.00 897.06 1.00 777.50 1554.00 2330.50 3107.00 ▇▇▇▇▇
site_id 0 1.00 162.52 85.99 1.00 74.00 169.00 234.00 315.00 ▅▇▇▇▆
Latitude 0 1.00 5.81 27.07 -65.60 -14.99 5.16 26.25 67.50 ▁▇▅▆▂
longitude 0 1.00 13.90 96.02 -159.58 -71.56 -5.88 108.53 172.30 ▁▇▂▂▅
elv 0 1.00 606.94 682.62 1.00 150.00 319.00 818.00 3379.00 ▇▂▁▁▁
CO2 0 1.00 383.14 13.02 338.99 377.44 386.95 392.00 402.30 ▁▂▃▇▇
fapar 0 1.00 0.63 0.22 0.08 0.46 0.63 0.86 0.93 ▂▂▆▃▇
LMA 6 1.00 121.76 83.48 14.24 69.04 102.46 149.43 914.86 ▇▁▁▁▁
Narea 6 1.00 2.03 1.18 0.29 1.34 1.83 2.41 18.48 ▇▁▁▁▁
Nmass 6 1.00 0.02 0.01 0.00 0.01 0.02 0.02 0.08 ▇▅▁▁▁
vcmax25_obs 3 1.00 45.72 24.99 1.06 27.62 41.13 58.80 231.77 ▇▅▁▁▁
vcmax_obs 3 1.00 36.13 25.12 0.74 17.45 31.04 48.89 205.50 ▇▃▁▁▁
lnD 0 1.00 -0.68 0.66 -3.62 -0.99 -0.59 -0.28 1.10 ▁▁▃▇▁
mgdd0 13 1.00 21.57 5.87 0.26 16.10 22.96 26.82 33.85 ▁▂▆▇▅
lnppfd 0 1.00 6.66 0.15 6.08 6.53 6.67 6.75 7.01 ▁▁▆▇▂
lnppfm 0 1.00 2.30 0.34 1.69 2.02 2.32 2.56 3.09 ▆▅▇▆▂
alpha 2 1.00 0.91 0.24 0.27 0.82 0.93 1.10 1.25 ▂▂▃▇▇
gdday 0 1.00 347.13 46.43 0.00 365.00 365.00 365.00 365.00 ▁▁▁▁▇
soil_clay 2 1.00 24.87 8.59 5.00 19.00 23.00 31.00 43.00 ▁▇▅▅▃
soil_ph 2 1.00 5.78 0.88 4.30 5.10 5.40 6.30 8.20 ▆▇▆▂▂
soil_cn 2 1.00 12.29 1.99 9.00 11.00 12.00 13.00 24.00 ▇▂▁▁▁
vcmax_predicted 0 1.00 36.90 16.92 10.14 26.54 32.34 41.40 151.00 ▇▃▁▁▁
vcmax25_predicted 0 1.00 49.42 21.09 20.85 29.35 45.79 63.17 144.83 ▇▆▂▁▁
lnLMA_predicted 703 0.77 4.68 0.33 3.79 4.47 4.69 4.89 5.48 ▁▃▇▅▂
Na_predicted 703 0.77 1.98 0.47 1.36 1.62 1.90 2.23 3.69 ▇▅▂▁▁

Distribution of data

gg1 <- df %>% 
  ggplot(aes(vcmax25_obs)) +
  geom_density() +
  labs(title = "Nmass")

gg2 <- df %>% 
  ggplot(aes(Narea)) +
  geom_density() +
  labs(title = "Narea")

gg3 <- df %>% 
  ggplot(aes(Nmass)) +
  geom_density() +
  labs(title = "Nmass")

gg4 <- df %>% 
  ggplot(aes(LMA)) +
  geom_density() +
  labs(title = "LMA")

(gg1 + gg2) /
  (gg3 + gg4)

Log-transform all variables to make them closer to normally distributed.

df <- df %>% 
  mutate(log_vcmax25_obs = log(vcmax25_obs),
         log_Narea = log(Narea),
         log_Nmass = log(Nmass),
         log_LMA = log(LMA),
         )
gg1 <- df %>% 
  ggplot(aes(log_vcmax25_obs)) +
  geom_density() +
  labs(title = "Nmass")

gg2 <- df %>% 
  ggplot(aes(log_Narea)) +
  geom_density() +
  labs(title = "Narea")

gg3 <- df %>% 
  ggplot(aes(log_Nmass)) +
  geom_density() +
  labs(title = "Nmass")

gg4 <- df %>% 
  ggplot(aes(log_LMA)) +
  geom_density() +
  labs(title = "LMA")

(gg1 + gg2) /
  (gg3 + gg4)

Analysis vs soil C:N

gg1 <- df %>% 
  ggplot(aes(soil_cn, log_vcmax25_obs)) +
  geom_point() +
  geom_smooth(color = "red", method = "lm") +
  theme_classic()

gg2 <- df %>% 
  ggplot(aes(soil_cn, log_Narea)) +
  geom_point() +
  geom_smooth(color = "red", method = "lm") +
  theme_classic()

gg3 <- df %>% 
  ggplot(aes(soil_cn, log_Nmass)) +
  geom_point() +
  geom_smooth(color = "red", method = "lm") +
  theme_classic()

gg4 <- df %>% 
  ggplot(aes(soil_cn, log_LMA)) +
  geom_point() +
  geom_smooth(color = "red", method = "lm") +
  theme_classic()

gg1 + gg2 + gg3 + gg4
## `geom_smooth()` using formula 'y ~ x'
## `geom_smooth()` using formula 'y ~ x'
## `geom_smooth()` using formula 'y ~ x'
## `geom_smooth()` using formula 'y ~ x'

Issues

  • Why soil C:N in discrete values? Where is it extracted from?

Analysis by PFT

# -> Ning, please add your analysis as R code here

Ellsworth data

The data used here is this leaf photosynthetic traits and N dataset:

Data reference

Ellsworth, David; Wright, Ian; Crous, Kristine Y.; Goll, Daniel S; Zaehle, Sönke; Cernusak, Lucas A.; et al. (2022): Convergence in phosphorus constraints to photosynthesis dataset. figshare. Dataset. https://doi.org/10.6084/m9.figshare.20010485.v1

Paper reference

Ellsworth, D.S., Crous, K.Y., De Kauwe, M.G. et al. Convergence in phosphorus constraints to photosynthesis in forests around the world. Nat Commun 13, 5005 (2022). https://doi.org/10.1038/s41467-022-32545-0

df <- read_csv("~/data/leafnp_vcmax_ellsworth/Ellsworth_NCOMMS_Figure1and2_fulldata.csv")
## Rows: 447 Columns: 29
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (5): Species, Family, Sitename, Continent, Plim_status
## dbl (24): Site_No, Cont_No, Species_No, Vcmax, Jmax, Rd, Vcmax_SE, Jmax_SE, ...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
skim(df)
Data summary
Name df
Number of rows 447
Number of columns 29
_______________________
Column type frequency:
character 5
numeric 24
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
Species 0 1.00 4 44 0 402 0
Family 7 0.98 7 17 0 80 0
Sitename 0 1.00 4 22 0 52 0
Continent 0 1.00 4 9 0 4 0
Plim_status 0 1.00 5 6 0 2 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
Site_No 0 1.00 34.37 19.12 1.00 15.00 39.00 51.00 64.00 ▇▂▅▇▆
Cont_No 0 1.00 235.55 138.52 1.00 119.50 230.00 354.50 474.00 ▇▇▇▆▇
Species_No 7 0.98 44.85 22.46 1.00 27.75 45.00 59.00 87.00 ▅▆▇▇▆
Vcmax 0 1.00 47.55 18.31 10.50 34.90 44.80 58.40 112.30 ▃▇▅▂▁
Jmax 0 1.00 95.33 34.82 29.30 71.70 90.10 112.70 243.40 ▃▇▃▁▁
Rd 0 1.00 0.56 0.70 -1.55 0.18 0.53 0.92 3.29 ▁▆▇▂▁
Vcmax_SE 0 1.00 3.08 2.54 0.30 1.40 2.30 3.90 17.90 ▇▂▁▁▁
Jmax_SE 8 0.98 3.17 2.33 0.30 1.80 2.60 3.90 27.80 ▇▁▁▁▁
Rd_SE 0 1.00 0.47 0.26 0.04 0.29 0.40 0.59 1.64 ▇▇▂▁▁
Photo 0 1.00 11.02 4.19 2.40 7.90 10.60 13.45 25.00 ▃▇▅▂▁
Tleaf 0 1.00 29.67 3.00 18.70 28.10 29.90 31.15 36.80 ▁▁▇▇▂
CO2S 0 1.00 384.52 8.88 350.00 381.00 386.00 390.00 404.00 ▁▁▃▇▂
PARi 0 1.00 1747.93 297.97 998.00 1702.00 1800.00 2000.00 2001.00 ▂▁▂▆▇
LMA 0 1.00 126.05 44.58 27.45 95.81 120.70 150.93 316.77 ▂▇▃▁▁
Perc_N 0 1.00 1.83 0.65 0.54 1.38 1.76 2.17 4.28 ▃▇▃▁▁
Perc_P 0 1.00 0.10 0.06 0.01 0.06 0.09 0.13 0.44 ▇▆▁▁▁
Narea 0 1.00 2.12 0.61 0.68 1.71 2.05 2.48 5.30 ▂▇▂▁▁
Parea 0 1.00 0.12 0.06 0.01 0.08 0.11 0.14 0.43 ▇▇▂▁▁
Photomass 0 1.00 98.54 55.57 16.90 62.45 86.50 122.15 435.20 ▇▃▁▁▁
Jmaxmass 0 1.00 843.02 435.97 189.70 565.00 754.40 992.75 3389.10 ▇▅▁▁▁
Vcmaxmass 0 1.00 419.06 217.20 72.70 273.70 376.30 519.10 1643.10 ▇▆▁▁▁
Nmass 0 1.00 18.34 6.47 5.39 13.84 17.59 21.69 42.83 ▃▇▃▁▁
Pmass 0 1.00 1.02 0.57 0.08 0.60 0.94 1.28 4.40 ▇▆▁▁▁
NPratio 0 1.00 21.49 11.13 2.60 14.85 19.00 24.65 119.60 ▇▂▁▁▁

Issues

  • No longitude and latitude information in this data.

TROBIT data

-> Yunke, please add your analysis code here