- Fix a few minor bugs with compound junction construction (#305, #316)
- Add
pairwiseparameter tododgr_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
- 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 inweight_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.
- 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)
- Added Andrea Gilardi (@agila5) as contributor
weight_streetnetnow raises a warning (instead of an error) in case the inputsfobject has mixed geometry types instead of onlyLINESTRING. The function filters only the geometries havingLINESTRINGtype (#246, thanks to @agila5).- Pre-pend class structure of
dodgr_streetnetobjects todata.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
dodgr_flows_aggregate()now has apairwiseparameter, to enable flows to be aggregated only along paths connecting each pair offromandtopoints. 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)
- 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).
- Fix bug in
add_nodes_to_graphwith "sc" networks (#217, thanks to @diegoteca) - Fix bug in Tobler cost function for effect of slopes on walking times (#219, thanks to @xtimbeau).
- New
pairwiseparameter added tododgr_dists_categorical(#201) - New function:
dodgr_dists_nearest()(#203) - Updated
weight_streetnet()function forwt_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)
- Fix bugs that issued warnings in weight_streetnet.sc if no "lanes" or "junction" columns present.
- Fixed GitHub updates of package website (does not affect CRAN release).
- 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 to align with new dplyr version (#198; thanks to @DavisVaughan)
- Update broken URL in times vignette.
- 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_verticesto 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.
- Added
nocacheparameter tododgr_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)
- 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_streetnetfunction now returns standard graphs even whenturn_penalty = TRUE; compound junctions are calculated within each function (#190).
- Walking cost function in networks with elevation improved (#124)
- Fixed
weight_streetnet.scto respect "bicycle" and "foot" tags for those weighting profiles (#189)
match_pts_to_graph()renamed tomatch_pts_to_verts()- New
match_pts_to_graph()function matches to graph edges, using nearest perpendicular intersection (issue #103)
dodgr_pathspairwise calculation shifted to C++, thanks to @dcooley
- Fix
dodgr_flowmapto work on bothsfandscstreetnets. - 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 fromcontract = FALSEtocontract = TRUE
- Main parameter of
weight_railwayfunction renamedsf_lines->x(for consistency with all otherweight_functions). - Default distances for all functions changed to geodesic distances calculated via geodist.
- New
save_dodgr_streetnetandload_dodgr_streetnetfunctions; 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).
- 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 (
|->||)
- Bug fix for
dists_categorical(proportions_only = TRUE)to ensure all edge types are aggregated (final type was previously not aggregated).
- New
dodgr_dists_categoricalfunction + accompanying vignette
weight_streetnetnow includes turn restrictions when input data are extracted withdodgr_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_centralityhas newvert_wtsparameter to weight centrality by user-specified weights (#162)
- 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@)
- Bug fix (#142) in
dodgr_flows_disperse()thanks for @romainFr - Fix
keep_colsparam inweight_streetnet(); #140 thanks to @agila5 - Return component vector as
integernotnumeric
- UBSAN Bug fix
- Added new
dodgr_centralityfunction, and associated helper functions. - Added new
dodgr_flows_sifunction - Added new parameter
norm_sumstododgr_flows_aggregate merge_directed_flowsrenamed tomerge_directed_graph, with added option of specifying columns to merge.- Added new
pairwiseparameter tododgr_distances; see issue #127 - Added new function
dodgr_insert_vertexto add new vertices to graph; see #40 - Removed "radix" heap option
- switch off examples that caused previous CRAN failures
- fix bug in
dodgr_distswhen number of from points >> number of to points - fix bug in
weight_streetnet.scthat preventedkeep_colsfrom working
- bug fixes from previous versions
- Remove benchmark vignette
- bug fixes in
dodgr_paths, thanks to @agila5
- Add
dodgr_isochrones,dodgr_isodistances, anddodgr_isovertsfunctions - Considerable speed-ups for
dodgr_flows_aggregateanddodgr_flows_disperse
dodgr_flows_disperseallowskto be a vector, with different coefficients for eachfrompoint.- Add "highway:pedestrian" to weighting profiles
weight_streetnetforscobjects automatically adds component column- bug fix in
weight_streetnet.sc(..., wt_profile = 1) - bug fix in
dodgr_full_cyclesforSCclass objects
- Lots of intermediate processes now executed and cached as background
processes (via
callrpackage). - new
dodgr_cache_offfunction added to suppress primary caching, for cases where immediate usage is critical. dodgr_contract_graphreturns the contracted graph only, instead of former version which return list ofgraphandedge_map(theedge_mapis cached and re-loaded when needed for graph uncontraction).
- 'turn_angle' parameter of
weight_streetnetrenamed toturn_penalty - Test coverage now complete (100%)
- Update internal
hampidata to remove factor columns
- Fix some bugs in max speed calculations for weight_streetnet
- Fix bug with polygonal bbox in dodgr_streetnet()
- New vignette on street networks and time-based routing
weight_streetnetfunction now returns edge times for all Open Street Map networks extracted with theosmdatapackage.- weight_streetnet now accepts
SCformat data fromosmdata::osmdata_sc() - New
dodgr_timesfunction to calculate journey times, including differential speeds and penalties for intersections and traffic lights. dodgr::weighting_profilesdata changed from singledata.frameto list with additional parameters determining speeds and time penalties fordodgr_timesfunction; formerdata.frameis nowdodgr::weighting_profiles$weighting_profiles.- New function
write_dodgr_wt_profilewrites full profile to local.jsonfile for editing and subsequent use viaweight_streetnet(wt_profile_file=<local_file_name.json>). dodgr_dists(),dodgr_paths(), anddodgr_flows()can no longer be used to automatically download street networks, thus former parameterswt_profileandexpandhave been removed; networks must be explicitly downloaded withdodgr_streetnet().
- Bug fix with dodgr_to_igraph to create proper weighted igraph
- Add "footway" to weighting_profiles
- New functions
dodgr_fundamental_cyclesanddodgr_full_cycles - New function
dodgr_sflines_to_polyto convertsfcollections ofLINESTRINGobject into corresponding enclosedPOLYGONobjects. - New function
dodgr_to_sfcreates fullsfobjects, extendingdodgr_to_sfc - New function
igraph_to_dodgrconvertsigraphobjects intododgrformat - New function
dodgr_uncontract_graphto convert from contracted back into original, uncontracted from, including any additional data appended on to contracted graph.
- Bug fix with vignette caused by updates to
tinytexrendering ofsvg - Bug fix for
dodgr_dists (heap = "set")with integer distances
- New function
dodgr_to_igraph weight_streetnetis now a method, with implementations for objects of classes.sfand.sc.- New function
weight_railwayto weight a network for railway routing. dodgr_distsimplements Dijkstra paths with std::set sorting through new optiondodgr_dists(..., heap = "set")(It's slower than others, but good for sake of completeness).
- Various modifications that should result in notable speed gains
dodgr_streetnetnow accepts polygonalbboxargument, and usesosmdata::trim_osmdatato trim resultant network to within that polygon (issue #50).- Extended examples for
weight_streetnetand dodgr_flows_aggregateto include a non-OSM example fromstplanr::routes_fast` (issue #45).
- Crucial fix of previous typo that made all
dodgr_distcalculations wrong (Earth's radius is 6371, not 3671!) - thanks to @chrijo weight_streetnetfunction now acceptsdata.frameobjects definingwt_profile, enabling modification and direct re-submission ofdodgr::weighting_profilesweighting_profiles$valuemodified to 0-1 scores rather than previous percentage values.weight_streetnetflags any highway types not present in nominated or submitted weighting profile.dodgr_pathsnow has additionalpairwiseparameter to enable paths only between matched pairs offromandtopoints (so returningnpaths rather thann^2), thanks to @mem48.dodgr_to_sfdeprecated tododgr_to_sfc(#43)
- Added Malcolm Morgan (@mem48; bug-finder extraordinare) as contributor
- Bug fix with
dodgr_pathsand simpledata.frames, thanks to James Smith. - Bug fix of former improper handling of one-way edges, thanks to @chrijo.
match_pts_to_graphhas additionalconnectedparameter to allow points to be matched only to largest connected component.
- New function
dodgr_flowmapplots maps of flows. Currently only writes .png files, because large networks can not be effectively plotted on graphic devices. dodgr_flowshas option to routes flows from a set of source origins to all points in a network, attenuated by distance from those origins.dodgr_to_sfconverts a spatially-explicitdodgrgraph into Simple Features (sf) format.
match_pts_to_graphnow accepts Simple Features (sf) collections ofsfc_POINTobjects to be matched.
Tidy C++ code that flagged errors on CRAN solaris machine. Nothing else.
- 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.
weight_streetnetnow accepts arbitrarysf-formatted networks via specification of custom weighting profiles, along with highway type and ID columns in data.frame.- Distance matrices from
dodgr_distsinherit the names of routing points (fromandtoparameters).
Initial CRAN release.