| get_beaches_osm | R Documentation |
Download and process OpenStreetMap (OSM) beach polygons within a specified geographical 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_beaches_osm(
place,
date = NULL,
mutually_exclusive_with = list(),
snap_tolerance = 5,
min_area = units::set_units(0, "m^2"),
aggregate_polygons = 15,
dir_raw = osmextract::oe_download_directory(),
filename = NULL,
...
)
place |
|
date |
Date of OSM data snapshot to download. Object of class "Date" in format |
mutually_exclusive_with |
list of |
snap_tolerance |
numeric. Argument for |
min_area |
numeric. Specify minimum area of each polygon to be retained in the output,
passed to argument |
aggregate_polygons |
numeric. Argument for |
dir_raw |
character. Directory to download the raw unprocessed OSM data. Passed to
argument |
filename |
character (optional). File path to export output data (GeoJSON format). |
... |
Other arguments passed to |
OSM polygons are filtered by key-value attributes, where natural:beach, and access: is not no or private.
If mutually_exclusive_with is provided, intersections between
the output and these polygon(s) will be excluded using polygons_mutually_exclude().
Polygons are then cleaned up using polygons_clean().
The processed beach polygons (sf object).
## Not run:
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()
data(parks_sgp) # to exclude beaches within/intersecting these polygons
parks_sgp <- sf::st_transform(parks_sgp, sf::st_crs(32648)) # transform to projected crs
# run function
get_beaches_osm(place = city_boundaries,
date = as.Date('2021-01-01'),
mutually_exclusive_with = list(parks_sgp),
snap_tolerance = 5,
aggregate_polygons = 15,
filename = 'public-beaches_osm-polygons_2021-01-01.geojson')
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.