TITLE: Spoon carving trees in the SEOSAW network
DATE: 2018-08-20
AUTHOR: John L. Godlee
====================================================================


For a project I’ve been helping out with, I had to find information
on the human uses of tree species in African savannas. I used the
book “[Field Guide to Trees of Southern Africa]” by Wyk and Wyk
(2013), which has lots of information in the text descriptions of
each species. Of the 645 species in our plots, 346 had information
on human uses in the book. While we were looking specifically at
edible fruits and timber uses, there was information on a load of
other things, such as religious and magical uses, medicinal uses
etc. Included in this was information about which species were
useful for making household utensils and spoons. I like to carve
spoons so I thought I’d have a go at mapping out the locations of
trees in the SEOSAW network that can be used for making spoons, this
is the R code:

  [Field Guide to Trees of Southern Africa]: https://www.amazon.com/Field-Southern-Africa-Struik-Publishers-ebook/dp/B00EDLEUDA

    # Packages
    library(ggplot2)
    library(dplyr)
    library(tibble)
    library(maps)
    library(viridis)

    # Load data ----
    species <- read.csv("data/seosaw_species_wyk_wyk.csv")
    load("data/community_matrices.Rdata")  # comm
    load("data/seosaw_plot_summary6Jul_v3.Rdata")  # ssaw6

    # Filter data  ----

    # Remove rows with no entry in wyk & wyk, and no entry in notes
    species_fil <- species %>%
        filter(in_wyk_wyk == TRUE) %>%
        filter(!is.na(notes_transcript))

    # Extract longitude and latitude of plots
    plot_loc <- data.frame(ssaw6$plotInfoFull$longitude_of_centre,
                                                 ssaw6$plotInfoFull$latitude_of_centre,
                                                 as.character(ssaw6$plotInfoFull$plotcode))

    names(plot_loc) <- c("lon", "lat", "plotcode")

    # Extract species abundance matrix ----
    sp_mat <- comm$sp

    # Find species with mention of key phrases ----
    matches <- c("household utensils",
        "kitchen utensils",
        "implement handles",
        "agricultural implements",
        "walking sticks",
        "household items",
        "axe handles",
        "spoons")

    match_regex <- paste(matches,collapse="|")

    species_spoons <- species[grep(match_regex,
        species$notes_transcript),]

    species_spoons$species

    length(species_spoons$species)

    # Find out which plots contain those species ----
    plot_spoons <- sp_mat %>%
        select(one_of(as.character(species_spoons$species))) %>%
        rowSums() %>%
        as.data.frame() %>%
        tibble::rownames_to_column() %>%
        rename(plotcode = rowname) %>%
        filter(. > 0)

    # Match plot locations in `plot_loc` to plots with spoony trees `plot_spoons$plot` ----

    plot_spoon_loc <- right_join(plot_loc, plot_spoons, by = "plotcode")

    names(plot_spoon_loc) <- c("lon", "lat", "plotcode", "stems")

    # Map the plots ----

        # Create vector of southern Africa ISO codes - find a way to mine the data for this
    s_af <- iso.expand(c("ZAF", "COD", "NAM", "ZMB", "BWA", "ZWE", "MOZ", "MWI", "AGO", "TZA", "KEN", "COG"))

    # Create map of country outlines
    map_africa <- borders(database = "world", regions = s_af, fill = "grey90", colour = "black")

    ggplot(plot_spoon_loc, aes(x = lon, y = lat)) +
        map_africa +
        stat_density2d(aes(fill = ..level..), geom = "polygon", alpha = 0.5) +
        scale_fill_viridis() +
        # geom_point(size = 0.2) +
        theme_classic() +
        coord_map() +
        ylim(-40,10) +
        theme(legend.position = "none") +
        labs(x = "Latitude",
                 y = "Longitude")

  {IMAGE}