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).
data.frame
with the variables “Product” and “Proportion” (both capitalized)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))
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.
You also have the possibility to add the following parameters to the functions used above to define the
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.
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 |
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 |
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()
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.