Changes in version 0.4.3 (2025-09-01) Major changes - All graphs are now constructed with distances calculated using the "cheap" measure of geodist::geodist() is maximal graph distances are < 100km, otherwise with "haversine". Distances (and therefore times) in graphs may differ from values calculated with previous versions. See #284; thanks to @leoniedu - New function added, dodgr_streetnet_geodesic(), to force edge distances in weight_streetnet() to use geodesic distances (more accurate, but slower calculations). See #284; thanks to @leoniedu - Documentation for all main distance, time, flows, and iso functions updated and extended to much better explain what functions actually do. Minor changes - Fix bug in add_nodes_to_graph() to properly match all remaining graph columns; #293 thanks to @leoniedu - "geodist" package is now a hard dependency ("Imports" not "Suggests"). - Add @leoniedu as package contributor (#282). - Fix updating of edge times in insert_one_edge; #278 thanks to @leoniedu - Fix add_nodes_to_graph() when graph has duplicated edges; #285 thanks to @leoniedu - dodgr_to_igraph() now retains "highway" column if present; #300 thanks to @RegularnaMatrica - Improve interpreting 'oneway' flags from #299 - Fix bug in interpreting OSM turn restrictions (#365) Changes in version 0.4.3.00 Minor changes - Fix a few minor bugs with compound junction construction (#305, #316) - Add pairwise parameter to dodgr_times(); thanks to @leoniedu (#314) - Fix bug with categorical distances that neglected edges through compound junctions (#305) - Fix bug in duplicating bi-directional edges in weighted sc-class graphs - Finally add 'quietly = TRUE' to all requireNamespace calls. Changes in version 0.4.2 (2025-03-06) Minor changes - Added Andrea Gilardi (@agila5) as contributor - weight_streetnet now raises a warning (instead of an error) in case the input sf object has mixed geometry types instead of only LINESTRING. The function filters only the geometries having LINESTRING type (#246, thanks to @agila5). - Pre-pend class structure of dodgr_streetnet objects to data.frame, rather than append; thanks to @agila5 (#244). - Fix bug in graph contraction that left duplicated edges (#236, thanks to @Robinlovelace). - Fix minor bug in de-duplication discovered via #236. - Update documentation for weight_streetnet; #245 thanks to @agila5 - Update documentation for "from" and "to" parameters of dists and other fns; #254 thanks to @luukvdmeer - Fix bug in 'change_col_names'; #262 thanks to @leoniedu - Fix bug in 'match_pts_to_graph'; #266 thanks to @leoniedu Changes in version 0.4.1 (2024-07-07) Minor changes - dodgr_flows_aggregate() now has a pairwise parameter, to enable flows to be aggregated only along paths connecting each pair of from and to points. Thanks to @chinhqho via #229 - Update igraph::get.edgelist -> as_edgelist (#229) to suppress warnings from igraph conversion functions. - Minor tweak to bundled src/concaveman to remove CRAN warning from new gcc 14.x (#235) Changes in version 0.4.0 (2024-05-25) Major changes: - Transfer repository from 'atfutures/dodgr' -> 'urbananalyst/dodgr' - Added new vignette on isodists and isochrone functions (#255) - Implemented new 'concavity' parameter for isodistance, isochrone fns (#223, thanks to @pasipasi123). Minor changes: - Fix bug in add_nodes_to_graph with "sc" networks (#217, thanks to @diegoteca) - Fix bug in Tobler cost function for effect of slopes on walking times (#219, thanks to @xtimbeau). Changes in version 0.2.21 (2023-06-02) Major changes: - New pairwise parameter added to dodgr_dists_categorical (#201) - New function: dodgr_dists_nearest() (#203) - Updated weight_streetnet() function for wt_profile="bicycle" to return many more bicycle-relevant columns (#207). - Fix major bug in categorical dists routines that gave wrong values (#201; thanks to @xiaofanliang) - Fix bug in add_nodes_to_graph, #103 - Add 2 new parameters to add_nodes_to_graph, "dist_tol" and "intersections_only" (#103) Minor changes: - Fix bugs that issued warnings in weight_streetnet.sc if no "lanes" or "junction" columns present. Changes in version 0.2.20 Major changes: - Fixed GitHub updates of package website (does not affect CRAN release). Minor changes: - General documentation updates. - Minor change to weight_streetnet.sc to suppress dplyr left_join warnings - Minor fixes to tests. - Update citation file to match new CRAN requirements (#204). Changes in version 0.2.19 (2023-01-13) Minor changes: - Changes to align with new dplyr version (#198; thanks to @DavisVaughan) - Update broken URL in times vignette. Changes in version 0.2.18 (2022-12-07) Minor changes: - Minor bug fix in matching to/from points for routing. - Minor bug fix with caching contracted graphs - Minor bug fix matching OSM max speed values for motorcar routing. - Minor bug fix implements additional check in dodgr_vertices to re-calculate if cached vertices don't match current graph. - Allow contra-flow when weighting bicycle networks; otherwise networks can end up unroutable. - Bug fix in remove_duplicated_edges() for SC-class networks. Changes in version 0.2.17 (2022-11-04) Minor changes: - Added nocache parameter to dodgr_contract_graph, to enable forced re-calculation of contracted graphs (#194) - Fix bug in graph contraction which prevented in picking up additional data columns (#194; thanks to @sriramab) - Fix bug in caching mechanism which stopped graph conversion routines (like dodgr_to_sf) from carrying across extra columns (#194; thanks to @sriramab) - Fix bug in distances when from or to default to all vertices - Fix weighting networks for motorcars to adhere to OSM "maxspeed" values where those are given, rather than profile values (#193) Changes in version 0.2.16 (2022-09-19) Major changes: - Additional "distances" parameter added to match_pts_to_graph() to return geodesic distance to point of edge intersection. - Fixed major bug in centrality calculations on graphs with duplicated edges (#186). - Added new vignette with instructions on parallel thread control - New function, dodgr_deduplicate_graph() to reduce duplicated edges and insert minimal distances/times (#187) - weight_streetnet function now returns standard graphs even when turn_penalty = TRUE; compound junctions are calculated within each function (#190). Minor changes: - Walking cost function in networks with elevation improved (#124) - Fixed weight_streetnet.sc to respect "bicycle" and "foot" tags for those weighting profiles (#189) Changes in version 0.2.15 (2022-08-18) Breaking changes: - match_pts_to_graph() renamed to match_pts_to_verts() - New match_pts_to_graph() function matches to graph edges, using nearest perpendicular intersection (issue #103) Major changes: - dodgr_paths pairwise calculation shifted to C++, thanks to @dcooley Minor changes: - Fix dodgr_flowmap to work on both sf and sc streetnets. - Reformat code using https://github.com/ropensci-review-tools/spaceout - Minor bug fix matching from/to args of dodgr_flows_aggregate() - Bug fix when submitting contracted graphs to flow fns - Change default value in all dodgr_flows_ functions from contract = FALSE to contract = TRUE Changes in version 0.2.14 (2022-06-08) Minor changes: - Main parameter of weight_railway function renamed sf_lines -> x (for consistency with all other weight_ functions). - Default distances for all functions changed to geodesic distances calculated via geodist. Changes in version 0.2.13 (2022-04-01) Major changes: - New save_dodgr_streetnet and load_dodgr_streetnet functions; thanks to idea from @FlxPo - Edge maps used to uncontract graphs now store edges in original order, enabling complex edge sequences such as polygons to be reconstructed (#173). - Add "Imports: fs" to ensure cache paths work on all (ie windows) machines (#163) - Implement directional travel in roundabouts on weight_streetnet.sc, thanks to @deanmarchiori (#175). Minor changes: - Add example code for dodgr_dists_categorical - Slightly extend categorical routing vignette - fix caching bug in dodgr_centrality (#138), thanks to @mem48 - Fix bug with bbox in dodgr_streetnet, thanks to @LeshunXu (#174) - Fix bug in src/graph-contract.cpp that led to CRAN warning (| -> ||) Changes in version 0.2.12 (2021-10-18) Minor changes: - Bug fix for dists_categorical(proportions_only = TRUE) to ensure all edge types are aggregated (final type was previously not aggregated). Changes in version 0.2.11 (2021-10-07) Major changes: - New dodgr_dists_categorical function + accompanying vignette Changes in version 0.2.9 (2021-08-07) Major changes: - weight_streetnet now includes turn restrictions when input data are extracted with dodgr_streetnet_sc (#136 thanks to @edzer) - Turn restrictions also added as additional column of weighting_profiles$penalties - dodgr_streetnet_sc() now extracts many additional features useful for controlling access restrictions (see #159) - dodgr_centrality has new vert_wts parameter to weight centrality by user-specified weights (#162) Minor changes: - Bug fix when submitting contracted graphs to dodgr_to_sf (#155 thanks to @agila5) - Fix (internal) process_bbox function for vector inputs (#156 thanks to @agila5@) Changes in version 0.2.8 (2021-01-30) Minor changes: - Bug fix (#142) in dodgr_flows_disperse() thanks for @romainFr - Fix keep_cols param in weight_streetnet(); #140 thanks to @agila5 - Return component vector as integer not numeric Changes in version 0.2.7 (2020-05-05) Minor changes: - UBSAN Bug fix Changes in version 0.2.6 (2020-04-17) Major changes: - Added new dodgr_centrality function, and associated helper functions. - Added new dodgr_flows_si function - Added new parameter norm_sums to dodgr_flows_aggregate - merge_directed_flows renamed to merge_directed_graph, with added option of specifying columns to merge. - Added new pairwise parameter to dodgr_distances; see issue #127 - Added new function dodgr_insert_vertex to add new vertices to graph; see #40 - Removed "radix" heap option Minor changes: - switch off examples that caused previous CRAN failures - fix bug in dodgr_dists when number of from points >> number of to points - fix bug in weight_streetnet.sc that prevented keep_cols from working Changes in version 0.2.5 (2019-10-10) - bug fixes from previous versions Changes in version 0.2.4 (2019-10-02) Major changes: - Remove benchmark vignette Minor changes: - bug fixes in dodgr_paths, thanks to @agila5 Changes in version 0.2.1 (2019-09-16) Major changes: - Add dodgr_isochrones, dodgr_isodistances, and dodgr_isoverts functions - Considerable speed-ups for dodgr_flows_aggregate and dodgr_flows_disperse Minor changes: - dodgr_flows_disperse allows k to be a vector, with different coefficients for each from point. - Add "highway:pedestrian" to weighting profiles - weight_streetnet for sc objects automatically adds component column - bug fix in weight_streetnet.sc(..., wt_profile = 1) - bug fix in dodgr_full_cycles for SC class objects Changes in version 0.2.0 (2019-06-05) Major changes: - Lots of intermediate processes now executed and cached as background processes (via callr package). - new dodgr_cache_off function added to suppress primary caching, for cases where immediate usage is critical. - dodgr_contract_graph returns the contracted graph only, instead of former version which return list of graph and edge_map (the edge_map is cached and re-loaded when needed for graph uncontraction). Minor changes: - 'turn_angle' parameter of weight_streetnet renamed to turn_penalty - Test coverage now complete (100%) - Update internal hampi data to remove factor columns - Fix some bugs in max speed calculations for weight_streetnet - Fix bug with polygonal bbox in dodgr_streetnet() Changes in version 0.1.4 (2019-05-11) Major changes: - New vignette on street networks and time-based routing - weight_streetnet function now returns edge times for all Open Street Map networks extracted with the osmdata package. - weight_streetnet now accepts SC format data from osmdata::osmdata_sc() - New dodgr_times function to calculate journey times, including differential speeds and penalties for intersections and traffic lights. - dodgr::weighting_profiles data changed from single data.frame to list with additional parameters determining speeds and time penalties for dodgr_times function; former data.frame is now dodgr::weighting_profiles$weighting_profiles. - New function write_dodgr_wt_profile writes full profile to local .json file for editing and subsequent use via weight_streetnet(wt_profile_file=). - dodgr_dists(), dodgr_paths(), and dodgr_flows() can no longer be used to automatically download street networks, thus former parameters wt_profile and expand have been removed; networks must be explicitly downloaded with dodgr_streetnet(). Minor changes: - Bug fix with dodgr_to_igraph to create proper weighted igraph - Add "footway" to weighting_profiles Changes in version 0.1.3 (2019-03-20) Major changes: - New functions dodgr_fundamental_cycles and dodgr_full_cycles - New function dodgr_sflines_to_poly to convert sf collections of LINESTRING object into corresponding enclosed POLYGON objects. - New function dodgr_to_sf creates full sf objects, extending dodgr_to_sfc - New function igraph_to_dodgr converts igraph objects into dodgr format - New function dodgr_uncontract_graph to convert from contracted back into original, uncontracted from, including any additional data appended on to contracted graph. Minor changes: - Bug fix with vignette caused by updates to tinytex rendering of svg - Bug fix for dodgr_dists (heap = "set") with integer distances Changes in version 0.1.2 (2019-01-09) Major changes: - New function dodgr_to_igraph - weight_streetnet is now a method, with implementations for objects of classes .sf and .sc. - New function weight_railway to weight a network for railway routing. - dodgr_dists implements Dijkstra paths with std::set sorting through new option dodgr_dists(..., heap = "set") (It's slower than others, but good for sake of completeness). Minor changes: - Various modifications that should result in notable speed gains - dodgr_streetnet now accepts polygonal bbox argument, and uses osmdata::trim_osmdata to trim resultant network to within that polygon (issue #50). - Extended examples for weight_streetnet and dodgr_flows_aggregateto include a non-OSM example fromstplanr::routes_fast` (issue #45). Changes in version 0.1.1 (2018-10-24) Major changes: - Crucial fix of previous typo that made all dodgr_dist calculations wrong (Earth's radius is 6371, not 3671!) - thanks to @chrijo - weight_streetnet function now accepts data.frame objects defining wt_profile, enabling modification and direct re-submission of dodgr::weighting_profiles - weighting_profiles$value modified to 0-1 scores rather than previous percentage values. - weight_streetnet flags any highway types not present in nominated or submitted weighting profile. - dodgr_paths now has additional pairwise parameter to enable paths only between matched pairs of from and to points (so returning n paths rather than n^2), thanks to @mem48. - dodgr_to_sf deprecated to dodgr_to_sfc (#43) Minor changes: - Added Malcolm Morgan (@mem48; bug-finder extraordinare) as contributor - Bug fix with dodgr_paths and simple data.frames, thanks to James Smith. - Bug fix of former improper handling of one-way edges, thanks to @chrijo. - match_pts_to_graph has additional connected parameter to allow points to be matched only to largest connected component. Changes in version 0.1.0 Major changes: - New function dodgr_flowmap plots maps of flows. Currently only writes .png files, because large networks can not be effectively plotted on graphic devices. - dodgr_flows has option to routes flows from a set of source origins to all points in a network, attenuated by distance from those origins. - dodgr_to_sf converts a spatially-explicit dodgr graph into Simple Features (sf) format. Minor changes: - match_pts_to_graph now accepts Simple Features (sf) collections of sfc_POINT objects to be matched. Changes in version 0.0.3 (2017-10-30) Tidy C++ code that flagged errors on CRAN solaris machine. Nothing else. Changes in version 0.0.2 (2017-10-27) Major changes: - New function, dodgr_paths, for returning explicit shortest path routes. - New function, dodgr_flows, for aggregting flows across a network from multiple origin and destination points. - New function, merge_directed_flows, to reduce aggregated directional flows to non-directional equivalent values useful for visualisation. Minor changes: - weight_streetnet now accepts arbitrary sf-formatted networks via specification of custom weighting profiles, along with highway type and ID columns in data.frame. - Distance matrices from dodgr_dists inherit the names of routing points (from and to parameters). Changes in version 0.0.1 (2017-09-28) Initial CRAN release.