geodist::geodist() is maximal graphdistances are < 100km, otherwise with “haversine”. Distances (andtherefore times) in graphs may differ from values calculated withprevious versions. See #284; thanks tododgr_streetnet_geodesic(), toforce edge distances inweight_streetnet() to use geodesicdistances (more accurate, but slower calculations). See #284; thanks to@leonieduadd_nodes_to_graph() to properly match allremaining graph columns; #293 thanks toinsert_one_edge; #278thanks toadd_nodes_to_graph() when graph has duplicatededges; #285 thanks tododgr_to_igraph() now retains “highway” column ifpresent; #300 thanks toweight_streetnet now raises a warning (instead of anerror) in case the inputsf object has mixed geometry typesinstead of onlyLINESTRING. The function filters only thegeometries havingLINESTRING type (#246, thanks tododgr_streetnet objects todata.frame, rather than append; thanks toweight_streetnet; #245 thanksto@agila5dodgr_flows_aggregate() now has apairwiseparameter, to enable flows to be aggregated only along paths connectingeach pair offrom andto points. Thanks to@chinhqho via#229igraph::get.edgelist ->as_edgelist (#229) to suppress warnings from igraphconversion functions.add_nodes_to_graph with “sc” networks (#217,thanks topairwise parameter added tododgr_dists_categorical (#201)dodgr_dists_nearest() (#203)weight_streetnet() function forwt_profile="bicycle" to return many more bicycle-relevantcolumns (#207).add_nodes_to_graph, #103add_nodes_to_graph, “dist_tol”and “intersections_only” (#103)dodgr_vertices to re-calculate if cached vertices don’tmatch current graph.remove_duplicated_edges() for SC-classnetworks.nocache parameter tododgr_contract_graph, to enable forced re-calculation ofcontracted graphs (#194)dodgr_to_sf) from carrying across extra columns(#194; thanks tomatch_pts_to_graph() to return geodesic distance to pointof edge intersection.dodgr_deduplicate_graph() to reduceduplicated edges and insert minimal distances/times (#187)weight_streetnet function now returns standard graphseven whenturn_penalty = TRUE; compound junctions arecalculated within each function (#190).weight_streetnet.sc to respect “bicycle” and“foot” tags for those weighting profiles (#189)match_pts_to_graph() renamed tomatch_pts_to_verts()match_pts_to_graph() function matches to graphedges, using nearest perpendicular intersection (issue #103)dodgr_paths pairwise calculation shifted to C++, thanksto@dcooleydodgr_flowmap to work on bothsf andsc streetnets.dodgr_flows_aggregate()dodgr_flows_ functions fromcontract = FALSE tocontract = TRUEweight_railway function renamedsf_lines ->x (for consistency with allotherweight_ functions).save_dodgr_streetnet andload_dodgr_streetnet functions; thanks to idea fromdodgr_dists_categoricaldodgr_streetnet, thanks to| ->||)dists_categorical(proportions_only = TRUE)to ensure all edge types are aggregated (final type was previously notaggregated).dodgr_dists_categorical function + accompanyingvignetteweight_streetnet now includes turn restrictions wheninput data are extracted withdodgr_streetnet_sc (#136thanks to@edzer)weighting_profiles$penaltiesdodgr_streetnet_sc() now extracts many additionalfeatures useful for controlling access restrictions (see #159)dodgr_centrality has newvert_wtsparameter to weight centrality by user-specified weights (#162)dodgr_flows_disperse() thanks for@romainFrkeep_cols param inweight_streetnet();#140 thanks tointeger notnumericdodgr_centrality function, and associatedhelper functions.dodgr_flows_si functionnorm_sums tododgr_flows_aggregatemerge_directed_flows renamed tomerge_directed_graph, with added option of specifyingcolumns to merge.pairwise parameter tododgr_distances; see issue #127dodgr_insert_vertex to add newvertices to graph; see #40dodgr_dists when number of from points>> number of to pointsweight_streetnet.sc that preventedkeep_cols from workingdodgr_paths, thanks tododgr_isochrones,dodgr_isodistances,anddodgr_isoverts functionsdodgr_flows_aggregate anddodgr_flows_dispersedodgr_flows_disperse allowsk to be avector, with different coefficients for eachfrompoint.weight_streetnet forsc objectsautomatically adds component columnweight_streetnet.sc(..., wt_profile = 1)dodgr_full_cycles forSC classobjectscallr package).dodgr_cache_off function added to suppress primarycaching, for cases where immediate usage is critical.dodgr_contract_graph returns the contracted graph only,instead of former version which return list ofgraph andedge_map (theedge_map is cached and re-loadedwhen needed for graph uncontraction).weight_streetnet renamed toturn_penaltyhampi data to remove factorcolumnsweight_streetnet function now returns edge times forall Open Street Map networks extracted with theosmdatapackage.SC format data fromosmdata::osmdata_sc()dodgr_times function to calculate journey times,including differential speeds and penalties for intersections andtraffic lights.dodgr::weighting_profiles data changed from singledata.frame to list with additional parameters determiningspeeds and time penalties fordodgr_times function; formerdata.frame is nowdodgr::weighting_profiles$weighting_profiles.write_dodgr_wt_profile writes full profileto local.json file 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 automaticallydownload street networks, thus former parameterswt_profileandexpand have been removed; networks must be explicitlydownloaded withdodgr_streetnet().dodgr_fundamental_cycles anddodgr_full_cyclesdodgr_sflines_to_poly to convertsf collections ofLINESTRING object intocorresponding enclosedPOLYGON objects.dodgr_to_sf creates fullsfobjects, extendingdodgr_to_sfcigraph_to_dodgr convertsigraph objects intododgr formatdodgr_uncontract_graph to convert fromcontracted back into original, uncontracted from, including anyadditional data appended on to contracted graph.tinytexrendering ofsvgdodgr_dists (heap = "set") with integerdistancesdodgr_to_igraphweight_streetnet is now a method, with implementationsfor objects of classes.sf and.sc.weight_railway to weight a network forrailway routing.dodgr_dists implements Dijkstra paths with std::setsorting through new optiondodgr_dists(..., heap = "set")(It’s slower than others, but good for sake of completeness).dodgr_streetnet now accepts polygonalbboxargument, and usesosmdata::trim_osmdata to trim resultantnetwork to within that polygon (issue #50).weight_streetnet anddodgr_flows_aggregateto include a non-OSM example fromstplanr::routes_fast`(issue #45).dodgr_distcalculations wrong (Earth’s radius is 6371, not 3671!) - thanks toweight_streetnet function now acceptsdata.frame objects definingwt_profile,enabling modification and direct re-submission ofdodgr::weighting_profilesweighting_profiles$value modified to 0-1 scores ratherthan previous percentage values.weight_streetnet flags any highway types not present innominated or submitted weighting profile.dodgr_paths now has additionalpairwiseparameter to enable paths only between matched pairs offrom andto points (so returningn paths rather thann^2), thanks tododgr_to_sf deprecated tododgr_to_sfc(#43)dodgr_paths and simpledata.frames, thanks to James Smith.match_pts_to_graph has additionalconnected parameter to allow points to be matched only tolargest connected component.dodgr_flowmap plots maps of flows.Currently only writes .png files, because large networks can not beeffectively plotted on graphic devices.dodgr_flows has option to routes flows from a set ofsource origins to all points in a network, attenuated by distance fromthose origins.dodgr_to_sf converts a spatially-explicitdodgr graph into Simple Features (sf)format.match_pts_to_graph now accepts Simple Features (sf)collections ofsfc_POINT objects to be matched.Tidy C++ code that flagged errors on CRAN solaris machine. Nothingelse.
dodgr_paths, for returning explicitshortest path routes.dodgr_flows, for aggregting flows acrossa network from multiple origin and destination points.merge_directed_flows, to reduceaggregated directional flows to non-directional equivalent values usefulfor visualisation.weight_streetnet now accepts arbitrarysf-formatted networks via specification of custom weightingprofiles, along with highway type and ID columns in data.frame.dodgr_dists inherit the names ofrouting points (from andto parameters).Initial CRAN release.