Spatial Analysis of Invasive Species in Vermont: Clustering Patterns and Environmental Hotspots”
This study investigates the potential distribution of invasive species, specifically the emerald ash borer and the hemlock woolly adelgid, within Vermont’s Niquette Bay State Park, focusing on the impact of environmental variables such as temperature and precipitation on their spread. By analyzing spatial patterns and the interaction between these invasive species and key native flora, the research aims to identify high-risk areas for invasion and assess the ecological effects on the park’s biodiversity. Utilizing data from various sources, including iNaturalist Vermont and environmental databases, and employing tools like GIS and RStudio, the study seeks to create visual aids that facilitate a deeper understanding of the ecological dynamics at play. These efforts are directed towards developing targeted conservation strategies to enhance the ecological resilience of Niquette Bay State Park and the broader Lake Champlain Basin. The study acknowledges potential limitations such as data quality and model accuracy, emphasizing the need for adaptability in conservation efforts.
In Vermont, invasive species pose a significant threat to the state’s ecological balance and biodiversity. Nearly a third of plant species in Vermont were classified as invasive by Vermont Emergency Management in 2018. Niquette Bay State Park in the Lake Champlain watershed faces particular challenges from invaders such as the emerald ash borer (Agrilus planipennis Fairmaire) and the hemlock woolly adelgid (Adelges tsugae), which threaten the park’s diverse flora. These species not only disrupt the native ecosystem by altering habitat conditions, but also underscore the urgent need for targeted research and action. This study addresses the primary research question: “What is the potential distribution of key invasive species in Niquette Bay State Park under current environmental conditions?” It seeks to interpret the complex spatial dynamics of climate variables on the distribution of these species and identify high-risk areas. It will also examine how these invasive species interact with and impact native plants such as bloodroot (Sanguinaria canadensis) and round-leaved liverwort (Hepatica americana) to assess their impact on the park’s ecological network. The main goal is to create visual tools that not only fulfill academic requirements but also provide deeper insights into the park’s ecological interactions. These tools are critical to better understanding the spread and impact of invasive species on Vermont’s ecological resilience. Through detailed spatial and environmental analyzes, the study will provide targeted conservation strategies tailored to the park’s unique ecological features. This approach aims not only to mitigate the immediate threat posed by these species, but also to ensure the long-term conservation of the park’s biodiversity and provide valuable insight for future conservation efforts.
This research aims to accurately map and analyze the invasion of the emerald ash borer (Agrilus planipennis Fairmaire) and the hemlock woolly adelgid (Adelges tsugae) in Niquette Bay State Park, Vermont, with a focus on how environmental variables such as temperature and precipitation influence their spread and establishment. The study is organized around three key data categories:
The study integrates a wide range of complementary resources and academic literature to deepen the analysis and validate the results, providing a comprehensive investigation of the spatial dynamics and environmental preferences of the targeted invasive species. The goal is to identify both the natural and anthropogenic factors contributing to their spread in Niquette Bay State Park and derive insights for effective conservation and management strategies in the Lake Champlain watershed. The selection of tools and resources is strategically aligned with the goals of the study to understand and effectively mitigate the impact of these invasive pests on the environment.
The primary objective of this study is to model the potential distribution of key invasive species, specifically emerald ash borer (Agrilus planipennis Fairmaire) and hemlock woolly adelgid (Adelges tsugae), in Niquette Bay State Park, VT, under prevailing environmental conditions, focusing on the effects of temperature and precipitation. A secondary objective is to examine the spatial interaction between these invasive species and vital native plants such as bloodroot (Sanguinaria canadensis) and round-leaved liverwort (Hepatica americana) to understand the broader ecological implications of invasive species spread.
The methodology uses RStudio and GIS for data collection and analysis, and uses spatial analysis and species distribution modeling (SDM) to examine the ecological factors driving the spread of invasive species.
This approach was developed to explore the spatial dynamics of invasive species under the influence of environmental factors, with the aim of developing effective management and conservation strategies.
# 1. **Data Acquisition and Preparation**
## Load necessary libraries
library(tidyverse) # For data manipulation and visualization
library(sf) # For handling spatial data
library(readr) # For reading data files
library(dbscan) # For clustering spatial data
library(ggplot2) # For data visualization
library(raster) # For handling raster data
library(terra) # For raster data operations
library(dismo) # For Species Distribution Modeling
library(predicts) # Check if this library name is correct, as it appears to be incomplete
library(maps) # For maps
# For Species Distribution Modeling
## Ensure the data directory exists and create it if not
if (!dir.exists("data")) dir.create("data")
## Reading in species and observation data
species_data <- read_csv("data/clean_invasive_species.csv", show_col_types = FALSE)
observation_data <- read_csv("data/Observation_VT.csv", show_col_types = FALSE)
## Convert data to spatial objects while preserving original longitude and latitude
species_data_sf <- st_as_sf(species_data, coords = c("longitude", "latitude"), crs = 4326, remove = FALSE)
observation_data_sf <- st_as_sf(observation_data, coords = c("longitude", "latitude"), crs = 4326, remove = FALSE)
## Spatial join of datasets using nearest feature
master_observation_list_sf <- st_join(observation_data_sf, species_data_sf, join = st_nearest_feature, left = TRUE)
## Convert spatial object back to dataframe ensuring longitude, latitude, and geometry are retained
master_observation_list <- as.data.frame(master_observation_list_sf)
master_observation_list$longitude <- master_observation_list_sf$geometry$coords.x1
master_observation_list$latitude <- master_observation_list_sf$geometry$coords.x2
## Save the combined data with geometry as GeoPackage
write_sf(master_observation_list_sf, "output/Master_Observation_List_with_NA.gpkg", layer = "observations", driver = "GPKG")
## Additionally save as CSV without geometry for non-spatial uses
master_observation_list_no_geom <- dplyr::select(master_observation_list, -geometry)
write_csv(master_observation_list_no_geom, "output/Master_Observation_List_with_NA.csv")
## Display head of data to confirm correct handling
head(master_observation_list)
# Step 2: Exploratory Data Analysis (EDA) -----------------------------------------------------------------------------------------
# Setup for figures directory
if (!dir.exists("figures")) {
dir.create("figures", recursive = TRUE)
}
# Load data
master_observation_list <- read_csv("output/Master_Observation_List_with_NA.csv")
species_data <- read_csv("data/clean_invasive_species.csv")
# Convert species data to an sf object
species_data_sf <- st_as_sf(species_data, coords = c("longitude", "latitude"), crs = 4326)
# Acquire Vermont Boundary Data------------------------------------------------
vermont_map <- map("state", regions = "vermont", plot = FALSE, fill = TRUE)
vermont_df <- map_data(vermont_map)
vermont_sf <- st_as_sf(vermont_df, coords = c("long", "lat"), crs = 4326) %>%
st_combine() %>%
st_sfc() %>%
st_cast("POLYGON") %>%
st_cast("MULTIPOLYGON")
vermont_sf <- st_sf(geometry = vermont_sf)
# Visualize Vermont boundary
vermont_plot <- ggplot(vermont_sf) +
geom_sf(fill = "lightblue", color = "darkblue") +
ggtitle("Boundary of Vermont")
print(vermont_plot)
# Plotting the distribution of all invasive species
if ("invasive_name" %in% colnames(species_data)) {
species_map <- ggplot(data = species_data_sf) +
geom_sf(aes(color = invasive_name)) +
geom_sf(data = vermont_sf, fill = NA, color = "black") +
labs(title = "Distribution of Invasive Species",
subtitle = "Spatial Distribution of Invasive Species Occurrences",
x = "Longitude", y = "Latitude") +
theme_minimal()
print(species_map)
} else {
cat("Column 'invasive_name' does not exist in the dataset. Check column names with colnames(species_data_sf).\n")
}
# Print all column names to check what's available
print(colnames(master_observation_list))
#-----------------------------------------------------------------------------------------------------------------------------
# Perform the exploratory analysis on place guess count
place_guess_count <- master_observation_list %>%
group_by(place_guess) %>%
summarise(count = n(), .groups = 'drop') %>%
arrange(desc(count))
print(place_guess_count)
# Define the coordinates and buffer for Niquette Bay State Park
park_lat <- 44.5919
park_lon <- -73.1900
buffer_deg_lat <- 0.0078 # about 0.5 km buffer
buffer_deg_lon <- 0.0109 # about 0.5 km buffer
# Create a polygon representing the park boundary
park_polygon_coords <- matrix(
c(park_lon - buffer_deg_lon, park_lat - buffer_deg_lat,
park_lon + buffer_deg_lon, park_lat - buffer_deg_lat,
park_lon + buffer_deg_lon, park_lat + buffer_deg_lat,
park_lon - buffer_deg_lon, park_lat + buffer_deg_lat,
park_lon - buffer_deg_lon, park_lat - buffer_deg_lat),
ncol = 2, byrow = TRUE)
park_polygon <- st_polygon(list(park_polygon_coords))
study_area_sf <- st_sf(geometry = st_sfc(park_polygon, crs = st_crs(4326)))
# Filter the species data to include only points within the study area
filtered_species_in_park <- st_intersection(species_data_sf, study_area_sf)
# Plot the filtered data
if (nrow(filtered_species_in_park) > 0) {
park_species_map <- ggplot(data = filtered_species_in_park) +
geom_sf(aes(color = invasive_name)) +
labs(title = "Invasive Species within Niquette Bay State Park",
subtitle = "Filtered to park boundaries",
x = "Longitude", y = "Latitude") +
theme_minimal()
print(park_species_map)
} else {
message("No invasive species data found within the park boundaries.")
}
# Filter and plot for specified invasive species
target_species <- c("Emerald Ash Borer", "Hemlock Woolly Adelgid")
filtered_species_data_sf <- species_data_sf %>%
filter(invasive_name %in% target_species)
if (nrow(filtered_species_data_sf) > 0) {
species_map_filtered <- ggplot(data = filtered_species_data_sf) +
geom_sf(aes(color = invasive_name)) +
geom_sf(data = vermont_sf, fill = NA, color = "black") +
labs(title = "Target Invasive Species Distribution",
subtitle = "Emerald Ash Borer and Hemlock Woolly Adelgid",
x = "Longitude", y = "Latitude") +
scale_color_manual(values = c("Emerald Ash Borer" = "darkgreen", "Hemlock Woolly Adelgid" = "darkmagenta")) +
theme_minimal()
print(species_map_filtered)
} else {
cat("No data found for the specified invasive species.\n")
}
# Specific location ------------------------
# Define the coordinates for Niquette Bay State Park
park_lat <- 44.5919
park_lon <- -73.1900
# Buffers calculated to approximate an area of 584 acres (2.36 km^2)
buffer_deg_lat <- 0.0078
buffer_deg_lon <- 0.0109
# Create a polygon representing the park boundary
park_polygon_coords <- matrix(
c(park_lon - buffer_deg_lon, park_lat - buffer_deg_lat,
park_lon + buffer_deg_lon, park_lat - buffer_deg_lat,
park_lon + buffer_deg_lon, park_lat + buffer_deg_lat,
park_lon - buffer_deg_lon, park_lat + buffer_deg_lat,
park_lon - buffer_deg_lon, park_lat - buffer_deg_lat), # Closing the polygon by repeating the first point
ncol = 2, byrow = TRUE)
# Create an sf object representing the study area (park boundary)
study_area_sf <- st_sf(geometry = st_sfc(st_polygon(list(park_polygon_coords)), crs = st_crs(4326)))
# Filter the species data to include only points within the study area
filtered_species_in_park <- st_intersection(species_data_sf, study_area_sf)
# Plot the filtered data
if (nrow(filtered_species_in_park) > 0) {
# If there are invasive species data within the park boundaries, create a plot
park_species_map <- ggplot(data = filtered_species_in_park) +
geom_sf(aes(color = invasive_name)) +
labs(title = "Invasive Species within Niquette Bay State Park",
subtitle = "Filtered to park boundaries",
x = "Longitude", y = "Latitude") +
theme_minimal()
print(park_species_map)
} else {
# If no invasive species data are found within the park boundaries, print a message
message("No invasive species data found within the park boundaries.")
}
# ---------------------------------------------------------------------------------------------------
# Observations of invasive species within the park
park_area_sf <- st_sf(geometry = st_sfc(st_polygon(list(park_polygon_coords)), crs = st_crs(4326)))
species_data_sf <- st_transform(species_data_sf, st_crs(vermont_sf))
park_area_sf <- st_transform(park_area_sf, st_crs(vermont_sf))
species_map <- ggplot() +
geom_sf(data = vermont_sf, fill = NA, color = "black", size = 0.5) +
geom_sf(data = park_area_sf, fill = NA, color = "red", size = 0.5) +
geom_sf(data = species_data_sf, color = "blue", size = 1.5, alpha = 0.6) +
labs(title = "Invasive Species within Niquette Bay State Park",
subtitle = "Mapped with Vermont and park boundary overlay",
x = "Longitude", y = "Latitude") +
theme_minimal() +
theme(legend.position = "bottom")
print(species_map)
# ------------------------------------------------------------------------------------------
# Define the park boundaries as a polygon
park_bounds <- matrix(c(
park_lon - buffer_deg_lon, park_lat - buffer_deg_lat,
park_lon - buffer_deg_lon, park_lat + buffer_deg_lat,
park_lon + buffer_deg_lon, park_lat + buffer_deg_lat,
park_lon + buffer_deg_lon, park_lat - buffer_deg_lat,
park_lon - buffer_deg_lon, park_lat - buffer_deg_lat
), ncol = 2, byrow = TRUE)
# Create an sf object representing the park area
park_area_sf <- st_sf(geometry = st_sfc(st_polygon(list(park_bounds)), crs = st_crs(4326)))
# Filter the species data to only include points within the park
filtered_species_in_park <- st_intersection(species_data_sf, park_area_sf)
# Check and plot the results
if (nrow(filtered_species_in_park) > 0) {
park_species_map <- ggplot(data = filtered_species_in_park) +
geom_sf(aes(color = invasive_name)) +
labs(title = "Invasive Species within Niquette Bay State Park",
subtitle = "Filtered to park boundaries",
x = "Longitude", y = "Latitude") +
theme_minimal()
print(park_species_map)
} else {
message("No invasive species data found within the park boundaries.")
}
# Assess Density and Spread
species_in_park <- st_intersection(species_data_sf, park_area_sf)
if (nrow(species_in_park) > 0) {
species_in_park$longitude <- st_coordinates(species_in_park)[, 1]
species_in_park$latitude <- st_coordinates(species_in_park)[, 2]
density_map <- ggplot(data = species_in_park) +
geom_density_2d(aes(x = longitude, y = latitude, color = invasive_name)) +
geom_point(aes(x = longitude, y = latitude, color = invasive_name), size = 1, alpha = 0.6) +
labs(title = "Density and Spread of Invasive Species within Niquette Bay State Park") +
theme_minimal()
print(density_map)
} else {
message_text <- "No invasive species found within Niquette Bay State Park."
ggplot() +
annotate("text", x = 0.5, y = 0.5, label = message_text, size = 6, color = "red", hjust = 0.5, vjust = 0.5) +
labs(title = "No Invasive Species Found") +
theme_void()
}
# Distribution of Invasive Species in Vermont
species_in_vermont <- st_intersection(species_data_sf, vermont_sf)
if (nrow(species_in_vermont) > 0) {
species_map_vermont <- ggplot(species_in_vermont) +
geom_sf(aes(color = invasive_name)) +
geom_sf(data = vermont_sf, fill = NA, color = "black") +
labs(title = "Distribution of Invasive Species in Vermont",
subtitle = "Spatial distribution of invasive species occurrences",
x = "Longitude", y = "Latitude") +
theme_minimal()
print(species_map_vermont)
} else {
message("No invasive species data found within Vermont boundaries.")
}
# Print all species in Vermont
all_species_vermont_map <- ggplot(data = species_data_sf) +
geom_sf(aes(color = invasive_name)) +
geom_sf(data = vermont_sf, fill = NA, color = "black") +
labs(title = "Distribution of Invasive Species Across Vermont",
subtitle = "All Recorded Species Observations",
x = "Longitude", y = "Latitude") +
theme_minimal()
print(all_species_vermont_map)
# Plot the top two species in Vermont
filtered_species_vermont <- species_data_sf %>%
filter(invasive_name %in% c("Emerald Ash Borer", "Hemlock Woolly Adelgid"))
top_species_map <- ggplot(filtered_species_vermont) +
geom_sf(aes(color = invasive_name)) +
geom_sf(data = vermont_sf, fill = NA, color = "black") +
labs(title = "Distribution of the Top Two Most Common Invasive Species in Vermont",
subtitle = "Observations of the two most prevalent species",
x = "Longitude", y = "Latitude") +
scale_color_manual(values = c("Emerald Ash Borer" = "darkgreen", "Hemlock Woolly Adelgid" = "darkmagenta")) +
theme_minimal()
print(top_species_map)
# Step 3: Spatial Clustering Analysis ---------------------------------------
# Install the sf package if it's not already installed
if (!requireNamespace("sf", quietly = TRUE)) {
install.packages("sf")
}
# If you have a spatial object, try using st_coordinates
# Assuming 'master_observation_list_sf' is a loaded spatial object of class sf or sfc
example_coords <- st_coordinates(master_observation_list_sf)
print(example_coords)
# Ensure your spatial data frame is correctly formatted and loaded
# This is your spatial data frame:
# master_observation_list_sf <- st_as_sf(your_data_frame, coords = c("longitude", "latitude"), crs = 4326)
# Extract coordinates
coords <- st_coordinates(master_observation_list_sf)
# DBSCAN CLUSTERING ------------------------------------------------------------------------
# Apply DBSCAN clustering using the appropriate parameters
db_clusters <- dbscan(coords, eps = 0.01, MinPts = 5) # Adjust these parameters based on your data
# Add clustering results back to the spatial dataframe
master_observation_list_sf$cluster <- as.factor(db_clusters$cluster)
# Visualize the clusters
cluster_map <- ggplot(master_observation_list_sf) +
geom_sf(aes(color = cluster), show.legend = TRUE) +
labs(title = "DBSCAN Clustering of Observations",
subtitle = "Clusters based on geographical coordinates",
x = "Longitude", y = "Latitude") +
theme_minimal()
# Print the cluster map
print(cluster_map)
# K- MEANS CLUSTERING ------------------------------------------------------------
# Adding K-Means Clustering to the R Script
# Assuming 'master_observation_list_sf' is already loaded and is an sf object
coords <- st_coordinates(master_observation_list_sf)
# Run k-means clustering
set.seed(123) # Set seed for reproducibility
k_means_result <- kmeans(coords, centers = 5) # Change the number of centers as needed
# Add cluster results to the data
master_observation_list_sf$cluster <- as.factor(k_means_result$cluster)
# Plotting the results
cluster_map <- ggplot(data = master_observation_list_sf) +
geom_sf(aes(color = cluster)) +
labs(title = "K-Means Clustering of Species Observations",
subtitle = "Spatial Distribution of Clusters",
x = "Longitude", y = "Latitude") +
scale_color_manual(values = RColorBrewer::brewer.pal(5, "Set1")) +
theme_minimal()
# Display the map
print(cluster_map)
# Elbow Method ----------------------------------------
# Determine the optimal number of clusters using the elbow method
wss <- map_dbl(1:10, function(k) {
kmeans(coords, centers = k, nstart = 10)$tot.withinss
})
# Plot the within-sum-of-squares to find the elbow
elbow_plot <- data.frame(k = 1:10, wss = wss) %>%
ggplot(aes(x = k, y = wss)) +
geom_line() +
geom_point() +
labs(title = "Elbow Method for Choosing k",
x = "Number of Clusters k",
y = "Total Within-Cluster Sum of Squares")
print(elbow_plot)
# -----------------------------------------------------------
# Analysis of Most Invasive Species Detected in EDA Stage
# Step 3a: Spatial Clustering Analysis for Top Invasive Species ----------------
# Create sample data for 'top_species_data'
# Check if 'master_observation_list_n0_geom' exists in the current R session
if (!exists("master_observation_list")) {
stop("Dataframe 'master_observation_list' not found in the environment. Please load it before running this script.")
}
# Use 'master_observation_list' dataframe instead of creating sample data
top_species_data <- master_observation_list_no_geom
# Output to check the dataframe
print(top_species_data)
# Preparing spatial data for top invasive species observed
# Check if required columns are present
required_columns <- c("longitude.x", "latitude.x")
if (!all(required_columns %in% names(top_species_data))) {
stop("Dataframe 'master_observation_list_no_geom' must include the columns: 'longitude.x' and 'latitude,x'.")
}
# Convert dataframe to a spatial dataframe
top_species_data_sf <- st_as_sf(top_species_data, coords = c("longitude.x", "latitude.x"), crs = 4326)
# Output to check the conversion
print("Spatial dataframe created successfully.")
print(head(top_species_data_sf))
# Extract coordinates from spatial data for clustering analysis
top_species_coords <- st_coordinates(top_species_data_sf)
# DBSCAN Clustering for Top Invasive Species
# Apply DBSCAN with specified parameters for spatial density of data points
top_species_clusters <- dbscan(top_species_coords, eps = 0.1, MinPts = 10)
# Incorporate DBSCAN clustering results into spatial dataframe
top_species_data_sf$cluster <- as.factor(top_species_clusters$cluster)
# Visualize clustering of top invasive species
top_species_cluster_map <- ggplot(top_species_data_sf) +
geom_sf(aes(color = cluster), show.legend = TRUE) +
labs(title = "DBSCAN Clustering of Top Invasive Species",
subtitle = "Clusters based on geographical coordinates of key species",
x = "Longitude", y = "Latitude") +
theme_minimal()
# Display the DBSCAN cluster map
print(top_species_cluster_map)
# K-Means Clustering for Enhanced Spatial Analysis --------------------------------------
# Perform K-Means clustering on the same set of species data
set.seed(123) # Ensure reproducibility
k_means_result <- kmeans(top_species_coords, centers = 5) # Optimal number of centers determined by analysis
# Assign K-Means clustering results to spatial data
top_species_data_sf$k_cluster <- as.factor(k_means_result$cluster)
# Plot K-Means clustering results for top invasive species
k_means_cluster_map <- ggplot(top_species_data_sf) +
geom_sf(aes(color = k_cluster)) +
labs(title = "K-Means Clustering of Top Invasive Species",
subtitle = "Spatial distribution across identified clusters",
x = "Longitude", y = "Latitude") +
scale_color_manual(values = RColorBrewer::brewer.pal(5, "Set1")) +
theme_minimal()
# Display the K-Means cluster map
print(k_means_cluster_map)
# Elbow Method for Optimal Cluster Number Determination ------------------------------------
# Apply the elbow method to determine the optimal number of clusters for K-Means
wss <- map_dbl(1:10, ~kmeans(top_species_coords, centers = .x, nstart = 10)$tot.withinss)
# Plot the results from the elbow method to identify the optimal cluster number
elbow_plot <- tibble(k = 1:10, wss = wss) %>%
ggplot(aes(x = k, y = wss)) +
geom_line() +
geom_point() +
labs(title = "Elbow Method for Optimal k in K-Means",
x = "Number of Clusters k",
y = "Within-Cluster Sum of Squares") +
theme_minimal()
# Display the elbow plot to assist in cluster number selection
print(elbow_plot)
- Why this step: Uncover areas where invasive species
concentrate and examine their interactions with essential native plants.
- Tools: R packages (sp, sf, terra) for advanced
spatial analysis. - Tasks: - Spatial Clustering
Implementation: Apply DBSCAN for density-based clustering to
pinpoint high-activity areas of invasive species. Use k-means clustering
to segment the park based on species presence data, indicating potential
high-risk zones. - Environmental Correlation Analysis:
Investigate how identified species clusters correlate with temperature
and precipitation patterns, aiming to reveal environmental conditions
that favor invasive species proliferation. - Expected
Outcome: Spatially defined clusters of invasive species with an
analysis of how environmental variables influence these patterns.
# Step 4: Species Distribution Modeling (SDM) ------------------------ NO GDAl ON MY COMPUTER SO RASTER AND TERRA WILL NOT WORK - WILL GET THIS FIXED
# Define the direct path to the environmental raster data file
# Define the full path to the raster file
# Verify the existence of the raster file prior to loading
# Load the GeoTIFF raster data using the raster package
# Display the loaded raster data structure
# Visualize the raster data with geographic annotations
# Re-read the raster file using the 'terra' package for enhanced processing
# Custom color palette for visualization of different land cover classes
# Plotting the raster data with defined colors for clarity using the terra package
# --------------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------------------------------------------------------------
# **STILL WORKING ON THIS !!!!!!!**
# Define the base directory path correctly
# Define the paths for environmental and species occurrence data
# Verify the existence of the raster and species occurrence data files
# Load environmental raster data
# Read species occurrence data
# Convert species occurrence data to an sf object with correct coordinate system matching the
# Check for missing values in the environmental data and species occurrence data
# Fit the Maxent model using the environmental and occurrence data
# Save the model to disk
# Ensure the model is loaded for use
# Prediction of species distribution using the fitted Maxent model
# Visualize the predicted species distribution
# temperature and precipitation --------------------------------------
# STILL WORKING ON THIS
This study, “A Spatial Analysis of Invasive Species Distribution and Climate Influence in Niquette Bay State Park, VT” is expected to provide several important findings:
Identification of high-risk areas: Using spatial analysis and species distribution modeling, the study will locate zones in Niquette Bay State Park where there is an increased risk of emerald ash borer and hemlock wooly adelgid invasion due to optimal environmental conditions such as temperature and precipitation.
Insights into the spread of invasive species: Climatic factors driving the spread of invasive species are expected to be studied in detail to elucidate their seasonal and spatial behavior and the resulting ecological impacts on the park’s ecosystem.
Impacts on native flora: The research will identify the ecological impact of invasive species on native plants such as bloodroot and round-leaved liverwort, and potentially identify impacts such as displacement or habitat modification.
Comprehensive documentation: A detailed document will summarize the methods, analyzes, results and conclusions and serve as a basis for subsequent research and management strategies in comparable ecosystems.
The study acknowledges several inherent challenges that might affect its results:
Availability and quality of data: Reliance on existing datasets for species occurrence and environmental variables might limit the analysis. Data gaps, inaccuracies or outdated data could affect the predictive power of the models.
Model accuracy: The effectiveness of species distribution models, including MaxEnt and GLMs, depends on the accuracy of the input data and the correct choice of model parameters. Misconfigurations can lead to incorrect predictions.
Dynamic ecosystems: The static approach to research may not fully capture the fluctuating nature of ecosystems, where shifts in invasive species distribution and environmental conditions often occur. Continuous data collection and model revisions are therefore essential.
Generalization of results: The study’s concentrated focus on Niquette Bay State Park limits the direct transferability of results to other regions without accounting for local ecological variation.
Adaptability to conservation: Flexibility is required to develop implementable management strategies from the results of the study, as invasive species management is an evolving field influenced by new knowledge, technological advances and ecological changes.