Learn R Programming

gtfstools (version 1.4.0)

filter_by_sf: Filter a GTFS object using a simple features object (deprecated)

Description

This function has been deprecated as of the current package version and will be completely removed from version 2.0.0 onward. Please use filter_by_spatial_extent() instead.

Filters a GTFS object using the geometry of an sf object, keeping (or dropping) entries related to shapes and trips selected through a spatial operation.

Usage

filter_by_sf(gtfs, geom, spatial_operation = sf::st_intersects, keep = TRUE)

Value

The GTFS object passed to the gtfs parameter, after the filtering process.

Arguments

gtfs

A GTFS object, as created by read_gtfs().

geom

An sf object. Describes the geometry used to filter the data.

spatial_operation

A spatial operation function from the set of options listed in geos_binary_pred (check the DE-I9M Wikipedia entry for the definition of each function). Defaults to sf::st_intersects, which tests if the shapes and trips have ANY intersection with the object specified in geom. Please note that geom is passed as the x argument of these functions.

keep

A logical. Whether the entries related to the shapes and trips that cross through the given geometry should be kept or dropped (defaults to TRUE, which keeps the entries).

See Also

Other filtering functions: filter_by_agency_id(), filter_by_route_id(), filter_by_route_type(), filter_by_service_id(), filter_by_shape_id(), filter_by_spatial_extent(), filter_by_stop_id(), filter_by_time_of_day(), filter_by_trip_id(), filter_by_weekday()

Examples

Run this code
# \dontshow{
  old_dt_threads <- data.table::setDTthreads(1)
  on.exit(data.table::setDTthreads(old_dt_threads), add = TRUE)
# }
data_path <- system.file("extdata/spo_gtfs.zip", package = "gtfstools")
gtfs <- read_gtfs(data_path)

shape_id <- "68962"
shape_sf <- convert_shapes_to_sf(gtfs, shape_id)
bbox <- sf::st_bbox(shape_sf)
object.size(gtfs)

# keeps entries that intersect with the specified polygon
smaller_gtfs <- filter_by_sf(gtfs, bbox)
object.size(smaller_gtfs)

# drops entries that intersect with the specified polygon
smaller_gtfs <- filter_by_sf(gtfs, bbox, keep = FALSE)
object.size(smaller_gtfs)

# uses a different function to filter the gtfs
smaller_gtfs <- filter_by_sf(gtfs, bbox, spatial_operation = sf::st_contains)
object.size(smaller_gtfs)

Run the code above in your browser using DataLab