New features

Bug fixes

  • Fixed a bug in convert_to_standard() in which the date fields from feed_info would not be converted back to an integer in their standard format (YYYYMMDD).
  • Filtering functions now also filter the transfers table based on trip_id and route_id. Previously they would filter it based only on stop_id. Thanks Daniel Langbein (@langbein-daniel).
  • Fixed a bug in filter_by_route_id() in which feeds with only one agency that omitted agency_id in routes and fare_attributes would end up with an empty agency table.
  • filter_by_sf() now correctly throws an error when an unsupported function is passed to spatial_operation.

Feature deprecation

  • The filter_by_stop_id() behavior of filtering by trips that contain the specified stops has been deprecated. For backwards compatibility reasons, this behavior is still the default as of the current version and is controlled by the parameter full_trips. To actually filter by stop ids (the behavior that we now believe is the most appropriate), please use full_trips = FALSE. This behavior will be the default from version 2.0.0 onward. To achieve the old behavior, manually subset the stop_times table by stop_id and specify the trip_ids included in the output in filter_by_trip_id().
  • filter_by_sf() has been deprecated in favor of filter_by_spatial_extent(). For backwards compatibility reasons, usage of filter_by_sf() is still allowed as of the curent version, but the function will be removed from the package in version 2.0.0.

Notes

  • validate_gtfs() now defaults to run sequentially. Previously it would default to run parallelly using all available cores. Heavily inspired by Henrik Bengtsson post “Please Avoid detectCores() in your R packages” (https://www.jottr.org/2022/12/05/avoid-detectcores/).
  • Improved performance of seconds_to_string() and, consequently, any other functions that use it.
  • Improved performance and improved readability of most filtering functions.

New features

  • New validate_gtfs() behavior. Now used to run MobilityData Canonical GTFS validator with a feed. The old behavior was marked as deprecated since v1.0.0.
  • New function download_validator().
  • New vignette demonstrating how to validate feeds.

Bug fixes

  • Fixed a bug in write_gtfs() that prevented as_dir = TRUE to be used.
  • Fixed a bug in set_trip_speed() that resulted in invalid stop_times tables when max(stop_sequence) was higher than the number of stops of a given trip. Thanks Alena Stern (@alenastern).
  • Fixed a bug in set_trip_speed() that resulted in the speed of wrong trip_ids being updated because of the order that these ids would appear in the trips and stop_times tables. Thanks Alena Stern (@alenastern).

New features

Bug fixes

  • Fixed a bug in which get_trip_segment_duration() would list wrong segment numbers, not necessarily starting from 1. Now segment numbers always range from 1 to N, where N is the total number of segments that compose each trip.
  • Fixed a bug in filter_by_{route,service,shape,trip}_id() that resulted in the agency table not getting filtered when the specified id was character(0).

Notes

New features

Bug fixes

  • get_trip_speed() and set_trip_speed() examples and tests now only run if lwgeom is installed. lwgeom is an sf “soft” dependency required by these functions, and is listed in Suggests. However, package checks would fail not so gracefully if it wasn’t installed, which is now fixed.
  • Fixed a bug in which the crs passed to get_trip_geometry() would be assigned to the result without actually reprojecting it.
  • Changed the behaviour of get_trip_geometry() to not raise an error when the ‘file’ parameter is left untouched and the GTFS object doesn’t contain either the shapes or the stop_times table. Closes #29.
  • Fixed a bug that would cause merge_gtfs() to create objects that inherited only from dt_gtfs (ignoring gtfs and list).
  • Fixed a bug in which get_trip_speed() returned NA speeds if the specified trip_id was listed in trips, but not in stop_times.
  • Adjusted set_trip_speed() to stop raising a max()-related warning when none of the specified trip_ids exists.

Notes

Potentially breaking changes

  • Functions no longer validate GTFS objects on usage. validate_gtfs() will be flagged as deprecated as well, since I plan to heavily change its usability and outputs in future versions.
  • write_gtfs() parameters went through major changes - the optional and extra params were flagged as deprecated and substituted by the more general files and standard_only.
  • Initial CRAN release.