The purpose of our project was to find two feasible locations for new campsites at the Macleish Field Station. To do so, we closely adhered to the given requirements and only chose locations that fit those requirements. The data we used were all from the macleish package. This package provided us with useful information about the locations of the natural and man-made features of the field station, so that we could make as fully informed a decision as possible about the new campsite locations. The collaboration for this project was completed using GitHub1.
The first map we made was to visually determine the forest types of the current campsites, knowing that the new locations should not be in the same forest types. These forests were determined to be Old Field White Pine Forest and Sugar Maple Forest.
# Loading libraries
library(tidyverse)
library(leaflet)
library(macleish)
library(sf)
library(mapview)
# Downloading contour data, not needed after it was added to GitHub.
# url <- "http://download.massgis.digital.mass.gov/shapefiles/state/contours250k.zip"
# local_file <- basename(url)
# download.file(url, destfile = local_file)
# unzip(local_file, exdir = "contours250k")
# dsn <- path.expand("contours250k")
# dsn
# list.files(dsn)
# contours <- read_sf(dsn)
# Limiting contour data to within Macleish area
# contours_4326 <- contours %>%
# st_transform(4326)
# contours_inside <- macleish_layers[["boundary"]] %>%
# st_intersection(contours_4326)
# AEA projection scheme for buffers
proj4_aea <- "+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=37.5 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs"
# Create current campsite points
campsites_pt <- tribble(
~point, ~lat, ~lon,
"Group Campsite", -72.678154, 42.450976,
"Remote Campsite", -72.679581, 42.458549
)
# Convert campsite points to shapefile
campsites_sf <- campsites_pt %>%
st_as_sf(coords = c("lat", "lon"))
forests <- macleish_layers[["forests"]] %>%
rename(forest_type = Sheet1__Na)
# Visually figuring out the forests that the campsites are in
leaflet() %>%
addTiles() %>%
addPolylines(data = macleish_layers[["boundary"]], weight = 1, color = "black") %>%
addPolygons(data = forests, weight = 1, color = "green", popup = ~forest_type) %>%
addMarkers(data = campsites_sf, popup = ~point)
# Create dataset that will only have those types of forests
pine_maple <- forests %>%
filter(forest_type == "Old Field White Pine Forest" | forest_type == "Sugar Maple Forest")
# Some desirable forests to put campsites near (according to Reid)
oak <- forests %>%
filter(forest_type == "Red Oak Forest" | forest_type == "Red Oak-Hemlock Forest" | forest_type == "Abandoned Pasture")
We made the second map to select potential campsite points by visually plotting all of the given requirements. We plotted the relevant features and buffers, generally assigning red to restricted areas and green to required areas. We used green circles around the rivers and wetlands to denote zones that fit the water requirement, a single green circle for the parking lot zone, and green polygons for forests that we thought were good to build a campsite on (based on suggestions from a conversation with Reid). To denote areas that we should avoid, we used light red circles for the area around research areas and challenge courses, and red polygons for the forest types that we already had campsites in. For the proposed campsites, the markers are orange with tent icons to differentiate them from the other points we had. The current campsite markers are denoted with a blue tent icon, and the parking lot has a road icon.
When deciding to where to place our new campsites, we first made sure that they fit all of the specified requirements. For the contour data, we used the 3m data in the macleish package. These contour data were collected every 3 meters. Knowing that with contour lines, the farther apart they are the flatter the slope of the area, we could determine a “relatively flat” campsite by placing our campsites in areas with relatively far apart contour lines. We also talked to Bertone-Johnson about the forest types that he would prefer. He informed us that sugar maple, oak forests, and abandoned pastures were all good potential campsites, but to avoid wetlands, vernal pools, or “old field” forests. He also gave us leeway on the parking lot requirement, as he said that the new sites only had to be within 0.5 miles of the parking lot, rather than approximately 0.5 miles away. For an immersive and secluded camping experience, we also decided that our new campsites should not be right next to roadways.
# Create parking point
parking_pt <- tribble(
~point, ~lat, ~lon,
"Parking Lot", -72.680663, 42.448013
)
# Convert parking point to shapefile and set coordinate system
parking_sf <- parking_pt %>%
st_as_sf(coords = c("lat", "lon")) %>%
st_set_crs(4326)
# Create .5 mile buffer zone around parking lot (requirement)
parking_bf <- parking_sf %>%
st_transform(proj4_aea) %>%
st_buffer(dist = 804.672) %>%
st_transform(crs = 4326)
# create streams buffer zones, 200 feet = 60.96 m (requirement)
streams_bf <- macleish_layers[["streams"]] %>%
st_transform(proj4_aea) %>%
st_buffer(dist = 60.96) %>%
st_transform(4326)
# create wetlands buffer zones (requirement)
wetlands_bf <- macleish_layers[["wetlands"]] %>%
st_transform(proj4_aea) %>%
st_buffer(dist = 60.96) %>%
st_transform(4326)
# create research buffer zones, 500 feet = 152.4 m (restriction)
research_bf <- macleish_layers[["research"]] %>%
st_transform(proj4_aea) %>%
st_buffer(dist = 152.4) %>%
st_transform(4326)
# create challenge course buffer zones (restriction)
challenge_bf <- macleish_layers[["challenge_courses"]] %>%
st_transform(proj4_aea) %>%
st_buffer(dist = 152.4) %>%
st_transform(4326)
# Our proposed campsites
our_camps_pt <- tribble(
~point, ~lat, ~lon,
"Campsite A", -72.68207, 42.44893,
"Campsite B", -72.67990, 42.44741
)
# Create campsite shapefile
our_camps_sf <- our_camps_pt %>%
st_as_sf(coords = c("lat", "lon")) %>%
st_set_crs(4326)
# Create buffer zones to show approx. campsite area (according to Reid)
our_camps_bf <- our_camps_sf %>%
st_transform(proj4_aea) %>%
st_buffer(dist = 3) %>%
st_transform(4326)
#creating icons for proposed campsite, current campsite, and parking lot markers
icons <- awesomeIcons(icon = 'glyphicon glyphicon-tent', markerColor = 'orange')
ccicons <- awesomeIcons(icon = 'glyphicon glyphicon-tent', markerColor = 'blue')
caricon <- awesomeIcons(icon = "glyphicon glyphicon-road", markerColor = 'green')
# Make a leaflet map with green zones being our required areas and pink/red zones are our restricted areas
map <- leaflet() %>%
addTiles() %>%
# macleish boundary lines
addPolylines(data = macleish_layers[["boundary"]], weight = 1, group = "Boundary") %>%
# macleish streams
addPolylines(data = macleish_layers[["streams"]], weight = 1, color = "blue", group = "Streams") %>%
# contour lines
addPolylines(data = macleish_layers[["contours_3m"]], weight = 1, color = "black", group = "Contours") %>%
# macleish wetlands
addPolygons(data = macleish_layers[["wetlands"]], color = "blue", opacity = 0.5, group = "Wetlands") %>%
# draw stream buffer zones
addPolygons(data = streams_bf, color = "lightgreen", fillColor = "transparent", group = "Streams") %>%
# draw wetlands buffer zones
addPolygons(data = wetlands_bf, color = "lightgreen", fillColor = "transparent", group = "Wetlands") %>%
# draw research buffer zones
addPolygons(data = research_bf, color = "pink", fillColor = "transparent", group = "Research Area") %>%
# draw challenge course buffer zones
addPolygons(data = challenge_bf, color = "pink", fillColor = "transparent", group = "Challenge Course") %>%
# current campsite markers
addAwesomeMarkers(data = campsites_sf, popup = ~point, icon = ccicons, group = "Campsites") %>%
# current campsite forests
addPolygons(data = pine_maple, weight = 1, color = "red", group = "Forests", popup = ~forest_type) %>%
# good forests to be in (according to Reid)
addPolygons(data = oak, weight = 1, color = "green", group = "Forests", popup = ~forest_type) %>%
# macleish forests
addPolygons(data = forests, weight = 1, color = "green", fillColor = "transparent", popup = ~forest_type, group = "Forests") %>%
addPolylines(data = macleish_layers[["trails"]], weight = 2, color = ~color, label = ~name) %>%
# parking lot marker
addAwesomeMarkers(data = parking_sf, icon = caricon, popup = ~point, group = "Parking") %>%
# draw parking lot buffer zone (0.5 mile radius)
addPolygons(data = parking_bf, color = "green", fillColor = "transparent", group = "Parking") %>%
# proposed campsite markers
addAwesomeMarkers(data = our_camps_sf, popup = ~point, icon=icons, group = "Campsites") %>%
# draw approximate size of campsite (according to Reid)
addPolygons(data = our_camps_bf, color = "orange", group = "Campsites") %>%
# add map tool that will display coordinates of point that mouse is over
addMouseCoordinates() %>%
#adding layer controls
addLayersControl(overlayGroups = c("Boundary", "Streams", "Contours", "Wetlands", "Research Area", "Challenge Course", "Forests", "Parking", "Campsites"), options = layersControlOptions(collapsed = FALSE)) %>%
addScaleBar()
map
The third map is an “aesthetic” map intended for Macleish visitors to consult when choosing their campsite and planning their visit. We used the given colors in the dataset for the trails and kept the campsite markers as is, while adding in markers for Macleish’s landmarks so visitors could view potential points of interest while on their visit.
# Map of attractions around the campsites - for visitors
map2 <- leaflet() %>%
addTiles() %>%
# macleish boundary
addPolylines(data = macleish_layers[["boundary"]], color = "black", weight = 1, opacity = 0.5, group = "Boundary") %>%
# macleish streams
addPolylines(data = macleish_layers[["streams"]], color = "blue", weight = 2, group = "Streams and Wetlands") %>%
# macleish wetlands
addPolygons(data = macleish_layers[["wetlands"]], weight = 2, group = "Streams and Wetlands") %>%
# macleish forests
addPolygons(data = forests, weight = 1, color = "transparent", fillColor = "transparent", popup = ~forest_type) %>%
# macleish trails
addPolylines(data = macleish_layers[["trails"]], weight = 2, color = ~color, label = ~name, group = "Trails") %>%
# macleish landmarks - points of interest
addMarkers(data = macleish_layers[["landmarks"]], popup = ~Label, group = "Landmarks") %>%
# parking lot marker
addAwesomeMarkers(data = parking_sf, popup = ~point, icon = caricon, group = "Parking Lot") %>%
addScaleBar()%>%
# proposed campsite markers
addAwesomeMarkers(data = our_camps_sf, popup = ~point, icon=icons, group = "Campsites") %>%
# draw approximate size of campsite
addPolygons(data = our_camps_bf, color = "orange", group = "Campsites")%>%
#current campsite markers
addAwesomeMarkers(data = campsites_sf, popup = ~point, icon = ccicons, group = "Campsites") %>%
#adding layer controls
addLayersControl(overlayGroups = c("Boundary", "Streams and Wetlands", "Trails", "Landmarks", "Parking Lot", "Campsites"), options = layersControlOptions(collapsed = FALSE))
map2
After reviewing all of the project requirements, our first campsite A is right on the West Loop trail in a red oak forest near a river within the Macleish boundary. The second campsite B we propose is next to the East Loop trail in abandoned pasture near the same river as site A. We also included buffer zones with 3m radii as the average campsite size, as suggested by Reid.
If Smith decides to build one of our suggested campsites to further develop the field station, it will have to clear trees and plants in the area and perhaps slightly level the ground so tents can be set up. Then they will have to pay logging and landscaping contractors for several weeks at most given the small size of the campsites. Building new sites will cause a small but immediate loss in plants and habitat for wildlife. People using the campsites may also disturb areas around the sites with litter and soil compaction. Some roadblocks that might come up are transportation of building materials from roadways, or making the sites accessible by integrating them with the trails.
Link to GitHub repository: https://github.com/emilyliu47/sds192-mp3.git↩