1 Loading Libraries

library(dplyr)
library(soilP)
library(ggplot2)

2 Loading stored data from previous workflow steps

data(soilclass)
data(ISRIC2011)
data_dir <- system.file("data", package = "soilP", mustWork = TRUE)
extdata_dir <- system.file("extdata", package = "soilP", mustWork = TRUE)

3 Importing maize accession collection coordinates

grin_file <- file.path(extdata_dir, "GRIN.csv")
grin <- read.csv(grin_file) %>%
        select(accenumb,longdec, latdec, elevation)

4 Importing Burton 2013 maize accession root phenotypes

burton_file <- file.path(extdata_dir,"burton2013.csv")
burton2013 <- read.csv(burton_file)

5 Merging georefence data and phenotype data

georef <- burton2013 %>%
          left_join(grin, by = c("Accession" = "accenumb"))
Column `Accession`/`accenumb` joining factors with different levels, coercing to character vector
# minor correction for an Argentinian Accession in GRIN
georef[georef$Accession == "PI 516074",
       c("longdec","latdec")] <- c(-68.064167, -38.9525)
georef$elevation.class <- classify_elevation(georef$elevation)

6 Obtainning P retention classes form coordinates

ISRIC_P <- extract_P_ISRIC(ISRIC2011, georef, soilclass,
                           lon = "longdec", lat = "latdec")
Joining, by = "ascending"

7 Plotting Phosphorus Retention Potential Maps

data(mountain)
bg_map("longdec", "latdec", data = ISRIC_P$georef, bg = mountain) +
  geom_point(aes(x = longdec, y = latdec,
                 shape = elevation.class,
                 colour = main), 
             data = ISRIC_P$georef) +
  facet_wrap( ~ domestication, ncol = 2) +
  scale_color_manual(values = ISRIC_P$pal,
                     name = "Phosphorus\nRetention\nPotential",
                     breaks = ISRIC_P$breaks ) +
  scale_shape_manual(values = c(16,15, 17, 18))

LS0tCnRpdGxlOiAiRXh0cmFjdCBzb2lsIFAgUmV0ZW50aW9uIENsYXNzZXMgZm9yIEFjY2Vzc2lvbnMgaW4gUm9vdCBQaGVub3R5cGUgU3R1ZHkiCm91dHB1dDoKICBodG1sX25vdGVib29rOgogICAgaGlnaGxpZ2h0OiB0YW5nbwogICAgbnVtYmVyX3NlY3Rpb25zOiB0cnVlCiAgICB0aGVtZTogc3BhY2VsYWIKICAgIHRvYzogdHJ1ZQogICAgdG9jX2Zsb2F0OiB0cnVlCi0tLQoKIyBMb2FkaW5nIExpYnJhcmllcwoKYGBge3IsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsIHJlc3VsdHM9ImhpZGUifQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KHNvaWxQKQpsaWJyYXJ5KGdncGxvdDIpCmBgYAoKIyBMb2FkaW5nIHN0b3JlZCBkYXRhIGZyb20gcHJldmlvdXMgd29ya2Zsb3cgc3RlcHMKCmBgYHtyfQpkYXRhKHNvaWxjbGFzcykKZGF0YShJU1JJQzIwMTEpCmRhdGFfZGlyIDwtIHN5c3RlbS5maWxlKCJkYXRhIiwgcGFja2FnZSA9ICJzb2lsUCIsIG11c3RXb3JrID0gVFJVRSkKZXh0ZGF0YV9kaXIgPC0gc3lzdGVtLmZpbGUoImV4dGRhdGEiLCBwYWNrYWdlID0gInNvaWxQIiwgbXVzdFdvcmsgPSBUUlVFKQpgYGAKCiMgSW1wb3J0aW5nICBtYWl6ZSBhY2Nlc3Npb24gY29sbGVjdGlvbiBjb29yZGluYXRlcwoKYGBge3J9CmdyaW5fZmlsZSA8LSBmaWxlLnBhdGgoZXh0ZGF0YV9kaXIsICJHUklOLmNzdiIpCmdyaW4gPC0gcmVhZC5jc3YoZ3Jpbl9maWxlKSAlPiUKICAgICAgICBzZWxlY3QoYWNjZW51bWIsbG9uZ2RlYywgbGF0ZGVjLCBlbGV2YXRpb24pCmBgYAoKIyBJbXBvcnRpbmcgQnVydG9uIDIwMTMgbWFpemUgYWNjZXNzaW9uIHJvb3QgcGhlbm90eXBlcwpgYGB7cn0KYnVydG9uX2ZpbGUgPC0gZmlsZS5wYXRoKGV4dGRhdGFfZGlyLCJidXJ0b24yMDEzLmNzdiIpCmJ1cnRvbjIwMTMgPC0gcmVhZC5jc3YoYnVydG9uX2ZpbGUpCmBgYAoKIyBNZXJnaW5nIGdlb3JlZmVuY2UgZGF0YSBhbmQgcGhlbm90eXBlIGRhdGEKYGBge3J9Cmdlb3JlZiA8LSBidXJ0b24yMDEzICU+JQogICAgICAgICAgbGVmdF9qb2luKGdyaW4sIGJ5ID0gYygiQWNjZXNzaW9uIiA9ICJhY2NlbnVtYiIpKQoKIyBtaW5vciBjb3JyZWN0aW9uIGZvciBhbiBBcmdlbnRpbmlhbiBBY2Nlc3Npb24gaW4gR1JJTgpnZW9yZWZbZ2VvcmVmJEFjY2Vzc2lvbiA9PSAiUEkgNTE2MDc0IiwKICAgICAgIGMoImxvbmdkZWMiLCJsYXRkZWMiKV0gPC0gYygtNjguMDY0MTY3LCAtMzguOTUyNSkKCmdlb3JlZiRlbGV2YXRpb24uY2xhc3MgPC0gY2xhc3NpZnlfZWxldmF0aW9uKGdlb3JlZiRlbGV2YXRpb24pCmBgYAoKCiMgT2J0YWlubmluZyBQIHJldGVudGlvbiBjbGFzc2VzIGZvcm0gY29vcmRpbmF0ZXMKCmBgYHtyfQpJU1JJQ19QIDwtIGV4dHJhY3RfUF9JU1JJQyhJU1JJQzIwMTEsIGdlb3JlZiwgc29pbGNsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICBsb24gPSAibG9uZ2RlYyIsIGxhdCA9ICJsYXRkZWMiKQpgYGAKCiMgUGxvdHRpbmcgUGhvc3Bob3J1cyBSZXRlbnRpb24gUG90ZW50aWFsIE1hcHMKYGBge3J9CmRhdGEobW91bnRhaW4pCmJnX21hcCgibG9uZ2RlYyIsICJsYXRkZWMiLCBkYXRhID0gSVNSSUNfUCRnZW9yZWYsIGJnID0gbW91bnRhaW4pICsKICBnZW9tX3BvaW50KGFlcyh4ID0gbG9uZ2RlYywgeSA9IGxhdGRlYywKICAgICAgICAgICAgICAgICBzaGFwZSA9IGVsZXZhdGlvbi5jbGFzcywKICAgICAgICAgICAgICAgICBjb2xvdXIgPSBtYWluKSwgCiAgICAgICAgICAgICBkYXRhID0gSVNSSUNfUCRnZW9yZWYpICsKICBmYWNldF93cmFwKCB+IGRvbWVzdGljYXRpb24sIG5jb2wgPSAyKSArCiAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcyA9IElTUklDX1AkcGFsLAogICAgICAgICAgICAgICAgICAgICBuYW1lID0gIlBob3NwaG9ydXNcblJldGVudGlvblxuUG90ZW50aWFsIiwKICAgICAgICAgICAgICAgICAgICAgYnJlYWtzID0gSVNSSUNfUCRicmVha3MgKSArCiAgc2NhbGVfc2hhcGVfbWFudWFsKHZhbHVlcyA9IGMoMTYsMTUsIDE3LCAxOCkpCmBgYAo=