2019-02-05 08:43:36 +00:00
|
|
|
require(RCurl) # used for fetching reproducible datasets
|
|
|
|
require(sf) # new simplefeature data class, supercedes sp in many ways
|
|
|
|
# using GEOS 3.6.1, GDAL 2.1.3, PROJ 4.9.3
|
|
|
|
require(sp) # needed for proj4string, deprecated by sf()
|
|
|
|
require(rgdal) # version version: 1.3-6
|
2019-02-08 17:41:47 +00:00
|
|
|
require(rgeos) # used for buffering below
|
2019-02-08 09:44:08 +00:00
|
|
|
require(devtools)
|
2019-02-08 21:58:18 +00:00
|
|
|
require(ggplot2)
|
2019-02-05 08:43:36 +00:00
|
|
|
|
2019-02-08 21:58:18 +00:00
|
|
|
# setwd("~/Downloads/test")
|
2019-02-08 17:41:47 +00:00
|
|
|
# load data
|
2019-02-08 09:44:08 +00:00
|
|
|
|
|
|
|
transition_wgs <- read.csv(text=getURL("https://zenodo.org/record/165519/files/SCCAN_1.4.csv"))
|
|
|
|
coordinates(transition_wgs) <- c("X", "Y")
|
|
|
|
proj4string(transition_wgs) <- CRS(wgs84)
|
|
|
|
transition_sp <- spTransform(transition_wgs, bng)
|
|
|
|
transition_sf <- st_as_sf(transition, coords = c("X", "Y"), crs=27700)
|
2019-02-05 08:43:36 +00:00
|
|
|
|
2019-02-08 17:41:47 +00:00
|
|
|
# Download data as ESRI Shapefile from page at: https://gateway.snh.gov.uk/natural-spaces/dataset.jsp?dsid=SSSI
|
2019-02-05 08:43:36 +00:00
|
|
|
|
2019-02-08 17:41:47 +00:00
|
|
|
unzip("SSSI_SCOTLAND_ESRI.zip")
|
2019-02-08 09:44:08 +00:00
|
|
|
|
2019-02-08 17:41:47 +00:00
|
|
|
# # Download data as ESRI Shapefile from page at: http://data-forestry.opendata.arcgis.com/datasets/3cb1abc185a247a48b9d53e4c4a8be87_0
|
2019-02-08 09:44:08 +00:00
|
|
|
|
2019-02-08 17:41:47 +00:00
|
|
|
unzip("National_Forest_Inventory_Woodland_Scotland_2017.zip")
|
2019-02-05 08:43:36 +00:00
|
|
|
|
2019-02-08 21:58:18 +00:00
|
|
|
sssi_sf <- st_read("./data/SSSI_SCOTLAND.shp")
|
|
|
|
sssi_sp <- readOGR("./data", "SSSI_SCOTLAND")
|
2019-02-05 08:43:36 +00:00
|
|
|
|
2019-02-08 21:58:18 +00:00
|
|
|
forest_inventory_sf <- st_read("./data/National_Forest_Inventory_Woodland_Scotland_2017.shp")
|
|
|
|
forest_inventory_sp <- readOGR("./data", "National_Forest_Inventory_Woodland_Scotland_2017")
|
|
|
|
|
|
|
|
# Test validity of geometry
|
|
|
|
|
|
|
|
rgeos::gIsValid(sssi_sp)
|
|
|
|
valid <- st_is_valid(sssi_sf)
|
|
|
|
valid[valid == FALSE]
|
|
|
|
|
|
|
|
# Alternative approach from stackexchange using simplified geometry
|
|
|
|
|
|
|
|
sssi_sp2 <- rgeos::gSimplify(sssi_sp, tol=3)
|
|
|
|
par(mfrow=c(1,2))
|
|
|
|
plot(sssi_sp[1,])
|
|
|
|
plot(sssi_sp2[1,])
|
|
|
|
|
|
|
|
system.time(
|
|
|
|
sssi_b1000 <- rgeos::gBuffer(sssi_sp2, width = 20, quadsegs = 30)
|
|
|
|
)
|
|
|
|
|
|
|
|
sssi_sf2 <- sf::st_simplify(sssi_sf)
|
|
|
|
system.time(
|
|
|
|
sssi_b1000 <- sf::st_buffer(sssi_sf2, dist = 20)
|
|
|
|
)
|
|
|
|
|
|
|
|
# Render ggplot2 plot on simplified geometry
|
|
|
|
|
|
|
|
ggplot(sssi_sf2) + geom_sf(aes(fill = PA_CODE))
|
|
|
|
plot(sssi_sf2)
|
2019-02-08 17:41:47 +00:00
|
|
|
|
|
|
|
# First test out plots using spatialfeatures and spdf with core R
|
2019-02-08 09:44:08 +00:00
|
|
|
|
2019-02-05 19:49:29 +00:00
|
|
|
system.time(
|
2019-02-08 21:58:18 +00:00
|
|
|
plot(sssi_sf2)
|
|
|
|
)
|
|
|
|
|
|
|
|
system.time(
|
|
|
|
plot()
|
2019-02-05 19:49:29 +00:00
|
|
|
)
|
2019-02-05 08:43:36 +00:00
|
|
|
|
2019-02-05 19:49:29 +00:00
|
|
|
system.time(
|
2019-02-08 17:41:47 +00:00
|
|
|
plot(sssi_sp)
|
2019-02-08 09:44:08 +00:00
|
|
|
)
|
|
|
|
|
2019-02-08 17:41:47 +00:00
|
|
|
# First test out plots using spatialfeatures and spdf with ggplot2
|
|
|
|
|
|
|
|
system.time(
|
|
|
|
ggplot() +
|
|
|
|
geom_sf(data = sssi_sf)
|
|
|
|
)
|
|
|
|
|
|
|
|
system.time(
|
|
|
|
ggplot() +
|
|
|
|
geom_polygon(data = sssi_sp)
|
|
|
|
)
|
|
|
|
# Now try to run a count within a buffer:
|
|
|
|
|
|
|
|
st_crs(sssi_sf) <- 27700
|
|
|
|
st_crs(transition_sf) <- 27700
|
|
|
|
|
|
|
|
# CRS uses meters for units, so buffer here should be a modest 50m:
|
|
|
|
|
|
|
|
count_data_sf <- sum(apply(st_within(points_sf, st_buffer(sssi, dist = 50), sparse=FALSE), 1, any))
|
|
|
|
|
|
|
|
# count_data_sf <- sum(apply(gWithin(points_sf, gBuffer(sssi,width=50)
|
2019-02-08 09:44:08 +00:00
|
|
|
|
|
|
|
sessioninfo::session_info()
|