Download and process OpenStreetMap (OSM) accessible trail (lines) within place,
from the Geofabrik database. It is a wrapper around
functions in the package osmextract, and
processes the downloaded files for subsequent analyses. Refer to package osmextract for
more details and options for input arguments when downloading the data.
get_trails_osm(
place,
date = NULL,
dir_raw = osmextract::oe_download_directory(),
filename = NULL,
...
)sf object (with projected coordinate reference system). Geographical area to match with the (.osm.pbf) file in the data archive.
Argument passed to osmextract::oe_match().
Date of OSM data snapshot to download. Object of class "Date" in format %Y-%m-%d. Refer to https://download.geofabrik.de
for the specific dates available. Defaults to NULL (download the latest available data).
character. Directory to download the raw unprocessed OSM data. Passed to
argument download_directory in osmextract::oe_read().
character (optional). File path to export output data (GeoJSON format).
Other arguments passed to osmextract::oe_read().
The processed trail lines (sf object).
OSM lines filtered by key-value attributes, where highway: is track, path, footway or cycleway, and access: is not no or private.
if (FALSE) {
data(pop_sgp)
pop_sgp <- sf::st_transform(pop_sgp, sf::st_crs(32648)) # transform to projected crs
# merge all census blocks for chosen year (2020) into single multi-polygon
# function requires that polygons are merged
city_boundaries <- pop_sgp %>%
dplyr::filter(year == 2020) %>%
sf::st_union() %>%
sf::st_as_sf() %>%
smoothr::fill_holes(threshold = units::set_units(1, 'km^2')) %>% # clean up
smoothr::drop_crumbs(threshold = units::set_units(1, 'km^2')) %>%
sf::st_make_valid()
# run function
get_trails_osm(place = city_boundaries,
date = as.Date('2021-01-01'),
filename = 'accessible-trails_osm-lines_2021-01-01.geojson')
}