add functioning map and fix naming

This commit is contained in:
aaron
2024-03-12 12:49:44 +01:00
parent db421da5c3
commit 4cc76b055e
2 changed files with 32 additions and 17 deletions

Binary file not shown.

View File

@@ -8,14 +8,18 @@ library(dplyr)
library(leaflet) library(leaflet)
## ##
# parse the input data # parse the input data and declare global values
## ##
# read a data frame from the ods document # read a data frame from the ods document
df <- read_ods("ironwood_data_cleaned.ods", sheet = 1) df <- read_ods("ironwood_data_cleaned.ods", sheet = 1)
# site base location
# Output the results site_lat <- "-33.943917"
print(df) site_lon <- "23.507389"
# vector of condition names corresponding to the health index numbers
condition_names <- c("healthy", "light damage", "medium damage", "severe damage", "at point of death")
# colors for each condition
condition_colors <- c("green", "yellow", "orange", "red", "black")
## ##
@@ -23,16 +27,12 @@ print(df)
# - create an overview of the populations health # - create an overview of the populations health
## ##
# First, let's create a vector of condition names corresponding to the health index numbers
condition_names <- c("Healthy", "Light damage", "Medium damage", "Severe damage", "At point of death")
# Define colors for each condition
condition_colors <- c("green", "yellow", "orange", "red", "black")
# Calculate the percentage of trees in each health condition # Calculate the percentage of trees in each health condition
percentage <- prop.table(table(df$Tree_Health_Index)) * 100 percentage <- prop.table(table(df$tree_health_index)) * 100
# Now, let's create the bar plot # Now, let's create the bar plot
barplot(percentage, barplot(percentage,
names.arg = condition_names, names.arg = condition_names,
main = "Distribution of Tree Health Index", main = "Overview of Tree Health Index",
xlab = "Health Index", xlab = "Health Index",
ylab = "Percentage of Trees", ylab = "Percentage of Trees",
ylim = c(0, max(percentage) + 10), ylim = c(0, max(percentage) + 10),
@@ -43,7 +43,7 @@ legend("topright", legend = condition_names, fill = condition_colors)
# Adding a grid # Adding a grid
#grid(nx = NULL, ny = NULL, col = "lightgray", lty = "dotted") #grid(nx = NULL, ny = NULL, col = "lightgray", lty = "dotted")
# Adding a box around the plot # Adding a box around the plot
box() #box()
# Add labels with the percentage of trees in each bar # Add labels with the percentage of trees in each bar
text(x = barplot(percentage, plot = FALSE), y = percentage, labels = paste0(round(percentage, 1), "%"), pos = 3) text(x = barplot(percentage, plot = FALSE), y = percentage, labels = paste0(round(percentage, 1), "%"), pos = 3)
@@ -53,7 +53,7 @@ text(x = barplot(percentage, plot = FALSE), y = percentage, labels = paste0(roun
## ##
# Perform Shapiro-Wilk test # Perform Shapiro-Wilk test
shapiro_test <- shapiro.test(df$Tree_Health_Index) shapiro_test <- shapiro.test(df$tree_health_index)
# Print the test results # Print the test results
print(shapiro_test) print(shapiro_test)
# Check the p-value # Check the p-value
@@ -65,16 +65,31 @@ if (p_value < 0.05) {
print("The data is normally distributed (fail to reject the null hypothesis)") print("The data is normally distributed (fail to reject the null hypothesis)")
} }
## ##
# 3. try to fit health and location data in one plot # 3. try to fit health and location data in one plot
## ##
sites <- data.frame( # create a map from our base location
id = 1:20, map <- leaflet() %>%
lat = setView(lng = site_lon,
lat = site_lat,
zoom = 16) %>%
addProviderTiles("CartoDB.Positron")
# Add markers with varying color and size based on population health and number of trees
map <- map %>%
addCircleMarkers(
data = df,
lng = ~tree_lon,
lat = ~tree_lat,
radius = 5,
color = ~condition_colors[tree_health_index+1],
fillOpacity = 0.7
) )
# show map
map
## ##
# ToDo Tasks: # ToDo Tasks:
## ##