Introduction

The LandUseQuantifieR is an R package that calculates the required area of land for a given number of people, mainly based on their diet and the environmental conditions. There are different approaches that are available, depending on the input data’s level of detail.

At first you need a data frame containing information about the proportion of each product consumed. You can also define the proportion of plants needed for planting and storage as well as the amount that gets lost or is wasted. At this moment, it is not possible for animal products,so you have to fill these rows with 0. If you just define a proportion, the LandUseQuantifieR uses the “built in” values based on Hughes et al. (2018).

First step

  • Create a data.frame with the variables “Product” and “Proportion” (both capitalized)
  • The data input in this Vignette therefore means that they ate 45 % Emmer, 45 % Millet, 5 % apples and 5 % beef. The sum of proportion has to equal 100 %.
  • If have the data, you can also add the variables “Storage”, “Planting” and “Waste_loss” (also capitalized) to the data.frame.
food <- data.frame(
  Product = c("emmer","millet", "apple", "cattle"),
  Proportion = c(.45, .45, .08, .02))

food_detailed <- data.frame(
  Product = c("emmer","millet", "apple", "cattle"),
  Proportion = c(.45,  .45, .08, .02),
  Storage = c(.2, .2, .05, 0),
  Planting = c(.2, .2, .05, 0),
  Waste_loss = c(.2, .2, .05, 0))

Calculate basic area requirements

If this is done, you can start calculating the area requirements. There are two functions, using either the kcal (summarize_areas_kcal) or the protein (summarize_areas_protein) requirements of the population. The LandUsequantifieR calculates the average requirement per person, based on WHO data.

library(LandUseQuantifieR)

areas_kcal <- summarize_areas_kcal(population = 1000,
                                   kcal_requirement = 2400,
                                   household_people = 5,
                                   food_df = food)

areas_protein <- summarize_areas_protein(population = 1000,
                                         protein_requirement = 56.13, 
                                         household_people = 5,
                                         food_df = food)

The total area for the village can be calculated by the sum of the required hectares for the categories settlement, plants, pasture and wood. To get a relation of the proportions of each category, the areas are also calculated in %.

So let’s have a look at the area requirements based on the kcal requirements

## Warning: package 'kableExtra' was built under R version 3.5.3
Category Area_ha Area_prop
Settlement 5.000 0.003
Crops 638.033 0.393
Arboriculture/Gathered 43.670 0.027
Pasture 884.407 0.545
Wood 52.205 0.032

and on the ones based on the protein requirements.

Category Area_ha Area_prop
Settlement 5.000 0.004
Crops 638.860 0.497
Arboriculture/Gathered 204.265 0.159
Pasture 384.118 0.299
Wood 52.205 0.041

You can see that the area requirements change due to the different coloric/protein density of the consumed food.

Let’s also have a look, if the user given values for planting and storage as well as wate and loss have an effect on the requirements.

library(LandUseQuantifieR)

areas_kcal_detailed <- summarize_areas_kcal(population = 1000,
                                            kcal_requirement = 2400, 
                                            household_people = 5,
                                            food_df = food_detailed)


areas_protein_detailed <- summarize_areas_protein(population = 1000,
                                                  protein_requirement = 56.13, 
                                                  household_people = 5,
                                                  food_df = food_detailed)

So let’s have a look at the area requirements based on the kcal requirements

Category Area_ha Area_prop
Settlement 5.000 0.003
Crops 877.296 0.454
Arboriculture/Gathered 30.826 0.016
Pasture 968.563 0.501
Wood 52.205 0.027

and on the ones based on the protein requirements again.

Category Area_ha Area_prop
Settlement 5.000 0.003
Crops 878.432 0.567
Arboriculture/Gathered 144.187 0.093
Pasture 468.274 0.302
Wood 52.205 0.034

You can see, that the user given values change the area requirements. The area required for pasture changes due to the number of auxiliary animals needed for the cultivation of the area required for crops.

More detailed area requirements

You also have the possibility to add the following parameters to the functions used above to define the

  • forest type (“oak_mixed_forest” or “olive_mixed_forest”)
  • Use of iron (TRUE or FALSE)
  • Use of ceramics (TRUE or FALSE)
  • Use of bronze (TRUE or FALSE)
  • Use of olive oil for bathing and lighting (TRUE or FALSE)
  • Use of flax (TRUE or FALSE).

In future Versions, you will also have the possibillity to define the type of auxilliary animals (at this point only oxen are implemented).

So if the population lived in an oak-mixed forest and produced iron and bronze, the function would look like this

library(LandUseQuantifieR)

areas_protein_metal <- summarize_areas_protein(population = 1000,
                                               protein_requirement = 56.13, 
                                               household_people = 5,
                                               food_df = food,
                                               forest_type = "oak_mixed_forest",
                                               iron = TRUE,
                                               bronze = TRUE)

So let’s have a look at the area requirements of this settlement

Category Area_ha Area_prop
Settlement 5.000 0.004
Crops 638.860 0.471
Arboriculture/Gathered 204.265 0.151
Pasture 384.118 0.283
Wood 124.028 0.091

And you can see that the area requirements for wood are enlarged due to the production of bronze and iron.

More detailed information about the population

Kcal requirements

You also have the possibility to use more detailed informations about the population as input. If the data is available, you can create a data.frame containing the number of people and the corresponding age, sex and activity level (lower case), for example like this:

age_distribution_kcal <- data.frame("age" = c(as.character(seq(3:60)),
                                              as.character(seq(3:60))),
                                    "number" = c(floor(abs(rnorm(n = 58) * 10)),
                                                 floor(abs(rnorm(n = 58) * 10))),
                                    "sex" =  c("male",
                                               "female"),
                                    "activity" =  c("moderately_active",
                                                    "moderately_active"))

The data.frame should look like this:

age number sex activity
1 3 male moderately_active
2 10 female moderately_active
3 9 male moderately_active
4 0 female moderately_active
5 4 male moderately_active
6 1 female moderately_active

So in our case the population is

sum(age_distribution_kcal$number)
## [1] 935

And now you can use this data.frame to calculate the area requirements without defining the kcal requirements in the function, because they are calculated based on the input data.frame

library(LandUseQuantifieR)

areas_kcal_metal <- summarize_areas_kcal(population = age_distribution_kcal,
                                         household_people = 5,
                                         food_df = food,
                                         forest_type = "oak_mixed_forest",
                                         iron = TRUE,
                                         bronze = TRUE)

which look like this:

Category Area_ha Area_prop
Settlement 4.675 0.003
Crops 541.159 0.376
Arboriculture/Gathered 37.039 0.026
Pasture 738.979 0.514
Wood 115.966 0.081

Protein requirements

You can also calculate the area requiremements based on protein requirements using more detailed demographic informations. Due to the fact, that the activity level does not per se increase the protein requirements (Paul 1989; Keller 1997), you can only define the number of people and the corresponding age and sex (lower case), for example like this:

age_distribution_protein <- data.frame("age" = c(as.character(seq(3:60)),
                                                 as.character(seq(3:60))),
                                       "number" = c(floor(abs(rnorm(n = 58) * 10)),
                                                    floor(abs(rnorm(n = 58) * 10))),
                                       "sex" =  c("male",
                                                  "female"))

The data.frame should look like this:

age number sex
1 7 male
2 10 female
3 6 male
4 3 female
5 9 male
6 0 female

So in our case the population is

sum(age_distribution_protein$number)
## [1] 819

And now you can use this data.frame to calculate the area requirements without defining the protein requirements in the function, because they are calculated based on the input data.frame

library(LandUseQuantifieR)

areas_protein_metal <- summarize_areas_protein(population = age_distribution_protein,
                                               household_people = 5,
                                               food_df = food,
                                               forest_type = "oak_mixed_forest",
                                               iron = TRUE,
                                               bronze = TRUE)

which look like this:

Category Area_ha Area_prop
Settlement 4.095 0.004
Crops 419.521 0.451
Arboriculture/Gathered 134.135 0.144
Pasture 270.941 0.291
Wood 101.579 0.109

For a visual representation of the data, let’s create some barplots using ggplot2

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.5.3
ggplot(areas_kcal_metal$"Area Requirements", aes(Category, Area_ha)) +
  geom_bar(stat = "identity", 
           fill = "white", 
           color = "black") +
  xlab("Category") +
  ylab("Area [ha]") + 
  theme_classic()

References

Hughes, Ryan E, Erika Weiberg, Anton Bonnier, Martin Finné, and Jed O Kaplan. 2018. “Quantifying Land Use in Past Societies from Cultural Practice and Archaeological Data.” Land 7 (1): 9.

Keller, J. S. 1997. “Physical Activity and Protein Requirement.” Zeitschrift Für Ernährungswissenschaft 36 (4): 356–56. https://doi.org/10.1007/BF01617825.

Paul, Gregory L. 1989. “Dietary Protein Requirements of Physically Active Individuals.” Sports Medicine 8 (3): 154–76. https://doi.org/10.2165/00007256-198908030-00003.