UrbanAnalyst / dodgr

Distances on Directed Graphs in R
https://urbananalyst.github.io/dodgr/
127 stars 16 forks source link

Not able to run `dodgr_dists` multiple times in a row #150

Closed sigmafelix closed 3 years ago

sigmafelix commented 3 years ago

Hello, I am running dodgr_dists multiple times for different datasets with the same data structure in a session. However, the function returns zeros for all elements of pairwise distance matrices after one successful run. When I end the session and try computing the distance for the next dataset without running the first try, it runs successfully. For example:

# in session 1
# networks: graph1, graph2, graph3 , ...
# points: pnt1, pnt2, ...

# run successfully
dodgr_dists(graph = graph1, from = pnt1, to = pnt1)
#    1  2  3
# 1 0 0.5 0.5
# 2 0.5 0 0.5
# 3 0.5 0.5 0
# returns all zeros
dodgr_dists(graph = graph2, from = pnt2, to = pnt2)
#    1  2  3
# 1 0 0 0
# 2 0 0 0
# 3 0 0 0
# in the new session
# run successfully
dodgr_dists(graph = graph2, from = pnt2, to = pnt2)
#    1  2  3
# 1 0 0.75 0.2
# 2 0.75 0 0.1
# 3 0.2 0.1 0
# returns all zeros
dodgr_dists(graph = graph3, from = pnt3, to = pnt3)
#    1  2  3
# 1 0 0 0
# 2 0 0 0
# 3 0 0 0

I guess there is a low-level problem for computing the distance. (cache removal or a memory problem?) Does anyone have an idea?

Thank you.

mpadge commented 3 years ago

Thanks for asking. It's impossible to know what the problem might be with a full reproducible example, especially including your actual data contained in graph1 and graph2. Could you please provide that, and make sure the whole code is generated as a reprex? My guess is that it will be a caching issue which you'll likely be able to resolve by first running dodgr_cache_off(). But even if that fixes it, please provide reproducible code for the original problem anyway, because the problem you observe should not arise, and a reprex will help to solve it. Thanks!

sigmafelix commented 3 years ago

Thank you for letting me know the reprex. Although I tried dodgr_cache_off(), the problem persists. Results are as below:

library(pacman)
p_load(sf, tidyverse, dodgr, reprex, lwgeom)

setwd('C:/Users/sigma/OneDrive/DHK_Project/MLSAC-Soil/Data/GDB/')

gr_import <- function(dn,
                      line_lyr = 'DrainageLine',
                      point_lyr = 'SubwatershedPoint'
){

  lin <- st_read(dn, layer = line_lyr) %>% 
    st_transform(2163) %>% 
    mutate(distance = st_length(Shape))
  pnt <- st_read(dn, layer = point_lyr) %>% 
    st_transform(2163)

  lin_null <- lin %>% st_set_geometry(NULL)
  g1 <- lin %>% st_startpoint %>% st_as_sf(.) %>% bind_cols(lin_null) %>% 
    bind_cols(st_coordinates(.) %>% data.frame %>% rename(from_lon = X, from_lat = Y)) %>% 
    st_set_geometry(NULL)
  g2 <- lin %>% st_endpoint %>% st_as_sf(.) %>% bind_cols(lin_null) %>% 
    bind_cols(st_coordinates(.) %>% data.frame %>% rename(to_lon = X, to_lat = Y)) %>% 
    st_set_geometry(NULL) %>% 
    dplyr::select(to_lon, to_lat)
  g0 <- bind_cols(g1, g2) %>% 
    rename(time = distance, from_id = from_node, to_id = to_node) %>% 
    mutate(d = time, d_weighted = time)
  res <- list(network = g0,
              lin = lin,
              pnt = pnt)
  return(res)
}

st_netdist <- function(origin, destination = origin, network){
  ddist <- dodgr_dists(graph = network,
                       from = origin %>% st_coordinates %>% data.frame,
                       to = destination %>% st_coordinates %>% data.frame)
  return(ddist)
}

dodgr_cache_off()

# data import
id.dat <- gr_import('ID.gdb')

## Reading layer `DrainageLine' from data source `C:\Users\sigma\OneDrive\DHK_Project\MLSAC-Soil\Data\GDB\ID.gdb' using driver `OpenFileGDB'
## Simple feature collection with 4028 features and 7 fields
## geometry type:  MULTILINESTRING
## dimension:      XY
## bbox:           xmin: -116.2571 ymin: 47.41572 xmax: -115.922 ymax: 47.60054
## geographic CRS: NAD83
## Reading layer `SubwatershedPoint' from data source `C:\Users\sigma\OneDrive\DHK_Project\MLSAC-Soil\Data\GDB\ID.gdb' using driver `OpenFileGDB'
## Simple feature collection with 32 features and 4 fields
## geometry type:  POINT
## dimension:      XY
## bbox:           xmin: -116.2215 ymin: 47.52429 xmax: -116.0498 ymax: 47.54966
## geographic CRS: NAD83

ca.dat <- gr_import('CA.gdb')

## Reading layer `DrainageLine' from data source `C:\Users\sigma\OneDrive\DHK_Project\MLSAC-Soil\Data\GDB\CA.gdb' using driver `OpenFileGDB'
## Simple feature collection with 5670 features and 7 fields
## geometry type:  MULTILINESTRING
## dimension:      XY
## bbox:           xmin: -119.5411 ymin: 37.74389 xmax: -119.2043 ymax: 38.08977
## geographic CRS: NAD83
## Reading layer `SubwatershedPoint' from data source `C:\Users\sigma\OneDrive\DHK_Project\MLSAC-Soil\Data\GDB\CA.gdb' using driver `OpenFileGDB'
## Simple feature collection with 31 features and 4 fields
## geometry type:  POINT
## dimension:      XY
## bbox:           xmin: -119.4675 ymin: 37.77245 xmax: -119.2342 ymax: 38.00829
## geographic CRS: NAD83

va.dat <- gr_import('VA.gdb')

## Reading layer `DrainageLine' from data source `C:\Users\sigma\OneDrive\DHK_Project\MLSAC-Soil\Data\GDB\VA.gdb' using driver `OpenFileGDB'
## Simple feature collection with 4846 features and 7 fields
## geometry type:  MULTILINESTRING
## dimension:      XY
## bbox:           xmin: -77.38253 ymin: 38.84454 xmax: -77.22258 ymax: 39.00704
## geographic CRS: NAD83
## Reading layer `SubwatershedPoint' from data source `C:\Users\sigma\OneDrive\DHK_Project\MLSAC-Soil\Data\GDB\VA.gdb' using driver `OpenFileGDB'
## Simple feature collection with 33 features and 4 fields
## geometry type:  POINT
## dimension:      XY
## bbox:           xmin: -77.33827 ymin: 38.90023 xmax: -77.24587 ymax: 38.99616
## geographic CRS: NAD83
# data head

head(id.dat$pnt)
## Simple feature collection with 6 features and 4 fields
## geometry type:  POINT
## dimension:      XY
## bbox:           xmin: -1207193 ymin: 404139.7 xmax: -1201420 ymax: 406335
## projected CRS:  US National Atlas Equal Area
##   HydroID DrainID Name Descript                     Shape
## 1    4093    4125    0        0 POINT (-1203423 405038.3)
## 2    4094    4126    0        0 POINT (-1203942 405663.2)
## 3    4095    4127    0        0   POINT (-1207193 406335)
## 4    4096    4128    0        0 POINT (-1203804 404398.6)
## 5    4097    4129    0        0 POINT (-1201420 404139.7)
## 6    4098    4130    0        0 POINT (-1201427 404141.1)

head(id.dat$network)
##   arcid from_id to_id Shape_Length HydroID GridID NextDownID          time
## 1     1       4     6 0.0007744408       1      4         11  76.73819 [m]
## 2     2       2     6 0.0024767349       2      2         11 238.65079 [m]
## 3     3       5     8 0.0007169110       3      5         17  73.57465 [m]
## 4     4       1     8 0.0032591188       4      1         17 318.45306 [m]
## 5     5       9    11 0.0004933731       5      9          9  42.18315 [m]
## 6     6      10    11 0.0011957606       6     10          9  91.91246 [m]
##   from_lon from_lat   to_lon   to_lat             d    d_weighted
## 1 -1200405 410685.6 -1200449 410626.0  76.73819 [m]  76.73819 [m]
## 2 -1200290 410799.1 -1200449 410626.0 238.65079 [m] 238.65079 [m]
## 3 -1201053 410808.6 -1201087 410746.9  73.57465 [m]  73.57465 [m]
## 4 -1200889 410986.0 -1201087 410746.9 318.45306 [m] 318.45306 [m]
## 5 -1200380 410601.2 -1200415 410587.3  42.18315 [m]  42.18315 [m]
## 6 -1200328 410580.0 -1200415 410587.3  91.91246 [m]  91.91246 [m]

head(ca.dat$pnt)
## Simple feature collection with 6 features and 4 fields
## geometry type:  POINT
## dimension:      XY
## bbox:           xmin: -1678056 ymin: -608137.9 xmax: -1677218 ymax: -602959.4
## projected CRS:  US National Atlas Equal Area
##   HydroID DrainID Name Descript                      Shape
## 1    5671    5702    0        0 POINT (-1678056 -608137.9)
## 2    5672    5703    0        0 POINT (-1677711 -607582.4)
## 3    5673    5704    0        0 POINT (-1677294 -605747.7)
## 4    5674    5705    0        0 POINT (-1677218 -604756.3)
## 5    5675    5706    0        0 POINT (-1677360 -604074.6)
## 6    5676    5707    0        0 POINT (-1677671 -602959.4)

head(ca.dat$network)
##   arcid from_id to_id Shape_Length HydroID GridID NextDownID          time
## 1     1       3     5  0.001691061       1      3          5 172.80512 [m]
## 2     2       4     5  0.001298222       2      4          5 128.35229 [m]
## 3     3       6     7  0.001113038       3      6          9 110.54310 [m]
## 4     4       8     7  0.000138889       4      8          9  12.10322 [m]
## 5     5       5     9  0.004263114       5      5         16 402.38963 [m]
## 6     6       1     9  0.004616235       6      1         16 472.47489 [m]
##   from_lon  from_lat   to_lon    to_lat             d    d_weighted
## 1 -1680057 -571297.5 -1679997 -571455.4 172.80512 [m] 172.80512 [m]
## 2 -1680065 -571370.0 -1679997 -571455.4 128.35229 [m] 128.35229 [m]
## 3 -1681028 -571278.0 -1681114 -571347.9 110.54310 [m] 110.54310 [m]
## 4 -1681102 -571350.7 -1681114 -571347.9  12.10322 [m]  12.10322 [m]
## 5 -1679997 -571455.4 -1679729 -571700.2 402.38963 [m] 402.38963 [m]
## 6 -1679857 -571287.0 -1679729 -571700.2 472.47489 [m] 472.47489 [m]

head(va.dat$pnt)
## Simple feature collection with 6 features and 4 fields
## geometry type:  POINT
## dimension:      XY
## bbox:           xmin: 1935140 ymin: -410790.4 xmax: 1935510 ymax: -410482
## projected CRS:  US National Atlas Equal Area
##   HydroID DrainID Name Descript                     Shape
## 1    4847    4880    0        0 POINT (1935468 -410756.8)
## 2    4848    4881    0        0 POINT (1935510 -410788.2)
## 3    4849    4882    0        0 POINT (1935502 -410790.4)
## 4    4850    4883    0        0 POINT (1935473 -410744.6)
## 5    4851    4884    0        0   POINT (1935297 -410482)
## 6    4852    4885    0        0   POINT (1935140 -410570)

head(va.dat$network)
##   arcid from_id to_id Shape_Length HydroID GridID NextDownID          time
## 1     1       1     2 0.0023934480       1      1          3 223.25636 [m]
## 2     2       3     2 0.0002314810       2      2          3  23.50023 [m]
## 3     3       2     6 0.0022129167       3      3         13 201.80276 [m]
## 4     4       4     9 0.0016269503       4      4         11 174.08503 [m]
## 5     5       5    10 0.0012182280       5      5          9 129.53787 [m]
## 6     6       8    10 0.0007552647       6      9          9  72.61085 [m]
##   from_lon  from_lat  to_lon    to_lat             d    d_weighted
## 1  1930429 -399798.6 1930621 -399857.2 223.25636 [m] 223.25636 [m]
## 2  1930618 -399874.5 1930621 -399857.2  23.50023 [m]  23.50023 [m]
## 3  1930621 -399857.2 1930800 -399881.9 201.80276 [m] 201.80276 [m]
## 4  1933649 -399001.8 1933697 -399155.1 174.08503 [m] 174.08503 [m]
## 5  1933341 -399143.3 1933402 -399249.9 129.53787 [m] 129.53787 [m]
## 6  1933441 -399195.7 1933402 -399249.9  72.61085 [m]  72.61085 [m]

# compute distances
st_netdist(id.dat$pnt, network = id.dat$network)
##          1          2          3  4  5  6  7  8  9 10 11 12        13 14
## 1     0.00  1060.6836  5385.5910 NA NA NA NA NA NA NA NA NA        NA NA
## 2       NA     0.0000  4324.9074 NA NA NA NA NA NA NA NA NA        NA NA
## 3       NA         NA     0.0000 NA NA NA NA NA NA NA NA NA        NA NA
## 4  1006.84  2067.5236  6392.4310  0 NA NA NA NA NA NA NA NA        NA NA
## 5       NA  3632.4777  7957.3851 NA  0  0 NA NA NA NA NA NA 2068.2532 NA
## 6       NA  3632.4777  7957.3851 NA  0  0 NA NA NA NA NA NA 2068.2532 NA
## 7       NA         NA  2344.9380 NA NA NA  0 NA NA NA NA NA        NA NA
## 8       NA  3058.5985  7383.5060 NA NA NA NA  0 NA NA NA NA 1494.3741 NA
## 9       NA  2669.0519  6993.9593 NA NA NA NA NA  0 NA NA NA 1104.8274 NA
## 10      NA         NA  4852.9151 NA NA NA NA NA NA  0 NA NA        NA NA
## 11      NA  2115.3937  6440.3011 NA NA NA NA NA NA NA  0 NA  551.1693 NA
## 12      NA  1565.2783  5890.1857 NA NA NA NA NA NA NA NA  0        NA NA
## 13      NA  1564.2245  5889.1319 NA NA NA NA NA NA NA NA NA    0.0000 NA
## 14      NA         NA  2554.2045 NA NA NA NA NA NA NA NA NA        NA  0
## 15      NA         NA     0.0000 NA NA NA NA NA NA NA NA NA        NA NA
## 16      NA   463.1479  4788.0553 NA NA NA NA NA NA NA NA NA        NA NA
## 17      NA   903.0076  5227.9150 NA NA NA NA NA NA NA NA NA        NA NA
## 18      NA  2062.1210  6387.0284 NA NA NA NA NA NA NA NA NA        NA NA
## 19      NA 12014.9596 16339.8670 NA NA NA NA NA NA NA NA NA        NA NA
## 20      NA 11778.9456 16103.8530 NA NA NA NA NA NA NA NA NA        NA NA
## 21      NA         NA  2671.3881 NA NA NA NA NA NA NA NA NA        NA NA
## 22      NA         NA  4852.9151 NA NA NA NA NA NA  0 NA NA        NA NA
## 23      NA         NA  2344.9380 NA NA NA  0 NA NA NA NA NA        NA NA
## 24      NA         NA   333.2878 NA NA NA NA NA NA NA NA NA        NA NA
## 25      NA         NA  1701.2233 NA NA NA NA NA NA NA NA NA        NA NA
## 26      NA         NA  1453.6979 NA NA NA NA NA NA NA NA NA        NA NA
## 27      NA         NA     0.0000 NA NA NA NA NA NA NA NA NA        NA NA
## 28      NA 12014.9596 16339.8670 NA NA NA NA NA NA NA NA NA        NA NA
## 29      NA 11949.1686 16274.0760 NA NA NA NA NA NA NA NA NA        NA NA
## 30      NA 11357.1847 15682.0921 NA NA NA NA NA NA NA NA NA        NA NA
## 31      NA 11548.4960 15873.4034 NA NA NA NA NA NA NA NA NA        NA NA
## 32      NA 11357.1847 15682.0921 NA NA NA NA NA NA NA NA NA        NA NA
##            15         16         17       18 19      20 21 22 23        24
## 1   5385.5910   597.5357         NA       NA NA      NA NA NA NA  5052.303
## 2   4324.9074         NA         NA       NA NA      NA NA NA NA  3991.620
## 3      0.0000         NA         NA       NA NA      NA NA NA NA        NA
## 4   6392.4310  1604.3757         NA       NA NA      NA NA NA NA  6059.143
## 5   7957.3851  3169.3298  2729.4701       NA NA      NA NA NA NA  7624.097
## 6   7957.3851  3169.3298  2729.4701       NA NA      NA NA NA NA  7624.097
## 7   2344.9380         NA         NA       NA NA      NA NA NA  0  2011.650
## 8   7383.5060  2595.4506  2155.5910       NA NA      NA NA NA NA  7050.218
## 9   6993.9593  2205.9040  1766.0444       NA NA      NA NA NA NA  6660.672
## 10  4852.9151         NA         NA       NA NA      NA NA  0 NA  4519.627
## 11  6440.3011  1652.2458  1212.3862       NA NA      NA NA NA NA  6107.013
## 12  5890.1857  1102.1304   662.2707       NA NA      NA NA NA NA  5556.898
## 13  5889.1319  1101.0766   661.2169       NA NA      NA NA NA NA  5555.844
## 14  2554.2045         NA         NA       NA NA      NA NA NA NA  2220.917
## 15     0.0000         NA         NA       NA NA      NA NA NA NA        NA
## 16  4788.0553     0.0000         NA       NA NA      NA NA NA NA  4454.768
## 17  5227.9150   439.8596     0.0000       NA NA      NA NA NA NA  4894.627
## 18  6387.0284  1598.9731  1159.1134    0.000 NA      NA NA NA NA  6053.741
## 19 16339.8670 11551.8116 11111.9520 9952.839  0      NA NA NA NA 16006.579
## 20 16103.8530 11315.7977 10875.9380 9716.825 NA   0.000 NA NA NA 15770.565
## 21  2671.3881         NA         NA       NA NA      NA  0 NA NA  2338.100
## 22  4852.9151         NA         NA       NA NA      NA NA  0 NA  4519.627
## 23  2344.9380         NA         NA       NA NA      NA NA NA  0  2011.650
## 24   333.2878         NA         NA       NA NA      NA NA NA NA     0.000
## 25  1701.2233         NA         NA       NA NA      NA NA NA NA  1367.936
## 26  1453.6979         NA         NA       NA NA      NA NA NA NA  1120.410
## 27     0.0000         NA         NA       NA NA      NA NA NA NA        NA
## 28 16339.8670 11551.8116 11111.9520 9952.839  0      NA NA NA NA 16006.579
## 29 16274.0760 11486.0207 11046.1610 9887.048 NA 170.223 NA NA NA 15940.788
## 30 15682.0921 10894.0368 10454.1771 9295.064 NA      NA NA NA NA 15348.804
## 31 15873.4034 11085.3481 10645.4885 9486.375 NA      NA NA NA NA 15540.116
## 32 15682.0921 10894.0368 10454.1771 9295.064 NA      NA NA NA NA 15348.804
##            25         26         27 28 29       30       31       32
## 1   3684.3677  3931.8931  5385.5910 NA NA       NA       NA       NA
## 2   2623.6841  2871.2095  4324.9074 NA NA       NA       NA       NA
## 3          NA         NA     0.0000 NA NA       NA       NA       NA
## 4   4691.2077  4938.7331  6392.4310 NA NA       NA       NA       NA
## 5   6256.1618  6503.6872  7957.3851 NA NA       NA       NA       NA
## 6   6256.1618  6503.6872  7957.3851 NA NA       NA       NA       NA
## 7          NA         NA  2344.9380 NA NA       NA       NA       NA
## 8   5682.2826  5929.8080  7383.5060 NA NA       NA       NA       NA
## 9   5292.7360  5540.2614  6993.9593 NA NA       NA       NA       NA
## 10  3151.6917  3399.2171  4852.9151 NA NA       NA       NA       NA
## 11  4739.0778  4986.6032  6440.3011 NA NA       NA       NA       NA
## 12  4188.9624  4436.4878  5890.1857 NA NA       NA       NA       NA
## 13  4187.9086  4435.4340  5889.1319 NA NA       NA       NA       NA
## 14   852.9812  1100.5066  2554.2045 NA NA       NA       NA       NA
## 15         NA         NA     0.0000 NA NA       NA       NA       NA
## 16  3086.8320  3334.3574  4788.0553 NA NA       NA       NA       NA
## 17  3526.6917  3774.2171  5227.9150 NA NA       NA       NA       NA
## 18  4685.8051  4933.3305  6387.0284 NA NA       NA       NA       NA
## 19 14638.6437 14886.1691 16339.8670  0 NA 657.7749       NA 657.7749
## 20 14402.6297 14650.1551 16103.8530 NA NA 421.7609 230.4496 421.7609
## 21   970.1648  1217.6902  2671.3881 NA NA       NA       NA       NA
## 22  3151.6917  3399.2171  4852.9151 NA NA       NA       NA       NA
## 23         NA         NA  2344.9380 NA NA       NA       NA       NA
## 24         NA         NA   333.2878 NA NA       NA       NA       NA
## 25     0.0000   247.5254  1701.2233 NA NA       NA       NA       NA
## 26         NA     0.0000  1453.6979 NA NA       NA       NA       NA
## 27         NA         NA     0.0000 NA NA       NA       NA       NA
## 28 14638.6437 14886.1691 16339.8670  0 NA 657.7749       NA 657.7749
## 29 14572.8527 14820.3781 16274.0760 NA  0 591.9839 400.6726 591.9839
## 30 13980.8688 14228.3942 15682.0921 NA NA   0.0000       NA   0.0000
## 31 14172.1801 14419.7055 15873.4034 NA NA 191.3113   0.0000 191.3113
## 32 13980.8688 14228.3942 15682.0921 NA NA   0.0000       NA   0.0000

st_netdist(ca.dat$pnt, network = ca.dat$network)
##    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
## 1  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 2  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 3  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 4  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 5  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 6  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 7  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 8  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 9  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 10 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 11 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 12 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 13 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 14 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 15 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 16 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 17 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 18 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 19 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 20 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 21 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 22 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 23 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 24 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 25 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 26 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 27 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 28 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 29 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 30 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 31 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
##    29 30 31
## 1   0  0  0
## 2   0  0  0
## 3   0  0  0
## 4   0  0  0
## 5   0  0  0
## 6   0  0  0
## 7   0  0  0
## 8   0  0  0
## 9   0  0  0
## 10  0  0  0
## 11  0  0  0
## 12  0  0  0
## 13  0  0  0
## 14  0  0  0
## 15  0  0  0
## 16  0  0  0
## 17  0  0  0
## 18  0  0  0
## 19  0  0  0
## 20  0  0  0
## 21  0  0  0
## 22  0  0  0
## 23  0  0  0
## 24  0  0  0
## 25  0  0  0
## 26  0  0  0
## 27  0  0  0
## 28  0  0  0
## 29  0  0  0
## 30  0  0  0
## 31  0  0  0

st_netdist(va.dat$pnt, network = va.dat$network)
##    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
## 1  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 2  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 3  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 4  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 5  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 6  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 7  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 8  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 9  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 10 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 11 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 12 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 13 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 14 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 15 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 16 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 17 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 18 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 19 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 20 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 21 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 22 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 23 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 24 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 25 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 26 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 27 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 28 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 29 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 30 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 31 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 32 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
## 33 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
##    29 30 31 32 33
## 1   0  0  0  0  0
## 2   0  0  0  0  0
## 3   0  0  0  0  0
## 4   0  0  0  0  0
## 5   0  0  0  0  0
## 6   0  0  0  0  0
## 7   0  0  0  0  0
## 8   0  0  0  0  0
## 9   0  0  0  0  0
## 10  0  0  0  0  0
## 11  0  0  0  0  0
## 12  0  0  0  0  0
## 13  0  0  0  0  0
## 14  0  0  0  0  0
## 15  0  0  0  0  0
## 16  0  0  0  0  0
## 17  0  0  0  0  0
## 18  0  0  0  0  0
## 19  0  0  0  0  0
## 20  0  0  0  0  0
## 21  0  0  0  0  0
## 22  0  0  0  0  0
## 23  0  0  0  0  0
## 24  0  0  0  0  0
## 25  0  0  0  0  0
## 26  0  0  0  0  0
## 27  0  0  0  0  0
## 28  0  0  0  0  0
## 29  0  0  0  0  0
## 30  0  0  0  0  0
## 31  0  0  0  0  0
## 32  0  0  0  0  0
## 33  0  0  0  0  0
mpadge commented 3 years ago

Thanks, and that's almost what is needed here, but I also need to be able to run the code, so you'll need to put the data somewhere accessible. I suspect the problem will lie somewhere in the internal structure of your "ID.gdb", "CA.gdb", and "VA.gdb" data, but need those data to diagnose.

There are lots of options for making binary datasets available, but since this is all happening on github, one of the easiest ways might be for you to create a new repo, commit some code (like the reprex code above), construct a release, and drag-and-drop that data as an additional binary for the release. The data will then have a URL which I'll be able to use to access, and so to reproduce the problem myself. Once you've done that, please make sure that your own reprex() works locally without any use of setwd() - that is, just by using download.file() (or whatever). Thanks!

sigmafelix commented 3 years ago

Okay. I just uploaded my data on Github in .RData form then got a reprex block as below:

if (!require(pacman)){install.packages('pacman')}
#> Loading required package: pacman
p_load(sf, tidyverse, dodgr, reprex, lwgeom)

download.file('https://github.com/sigmafelix/miscgeo/raw/master/dodgr_test.RData',
              'dodgr_test_rdata.RData')
load('dodgr_test_rdata.RData')
gr_import <- function(dn,
                      line_lyr = 'DrainageLine',
                      point_lyr = 'SubwatershedPoint'
){

  lin <- st_read(dn, layer = line_lyr) %>% 
    st_transform(2163) %>% 
    mutate(distance = st_length(Shape))
  pnt <- st_read(dn, layer = point_lyr) %>% 
    st_transform(2163)

  lin_null <- lin %>% st_set_geometry(NULL)
  g1 <- lin %>% st_startpoint %>% st_as_sf(.) %>% bind_cols(lin_null) %>% 
    bind_cols(st_coordinates(.) %>% data.frame %>% rename(from_lon = X, from_lat = Y)) %>% 
    st_set_geometry(NULL)
  g2 <- lin %>% st_endpoint %>% st_as_sf(.) %>% bind_cols(lin_null) %>% 
    bind_cols(st_coordinates(.) %>% data.frame %>% rename(to_lon = X, to_lat = Y)) %>% 
    st_set_geometry(NULL) %>% 
    dplyr::select(to_lon, to_lat)
  g0 <- bind_cols(g1, g2) %>% 
    rename(time = distance, from_id = from_node, to_id = to_node) %>% 
    mutate(d = time, d_weighted = time)
  res <- list(network = g0,
              lin = lin,
              pnt = pnt)
  return(res)
}

st_netdist <- function(origin, destination = origin, network){
  ddist <- dodgr_dists(graph = network,
                       from = origin %>% st_coordinates %>% data.frame,
                       to = destination %>% st_coordinates %>% data.frame)
  return(ddist)
}

dodgr_cache_off()

# data head
head(id.dat$pnt)
#> Simple feature collection with 6 features and 4 fields
#> geometry type:  POINT
#> dimension:      XY
#> bbox:           xmin: -1207193 ymin: 404139.7 xmax: -1201420 ymax: 406335
#> projected CRS:  US National Atlas Equal Area
#>   HydroID DrainID Name Descript                     Shape
#> 1    4093    4125    0        0 POINT (-1203423 405038.3)
#> 2    4094    4126    0        0 POINT (-1203942 405663.2)
#> 3    4095    4127    0        0   POINT (-1207193 406335)
#> 4    4096    4128    0        0 POINT (-1203804 404398.6)
#> 5    4097    4129    0        0 POINT (-1201420 404139.7)
#> 6    4098    4130    0        0 POINT (-1201427 404141.1)
head(id.dat$network)
#>   arcid from_id to_id Shape_Length HydroID GridID NextDownID          time
#> 1     1       4     6 0.0007744408       1      4         11  76.73819 [m]
#> 2     2       2     6 0.0024767349       2      2         11 238.65079 [m]
#> 3     3       5     8 0.0007169110       3      5         17  73.57465 [m]
#> 4     4       1     8 0.0032591188       4      1         17 318.45306 [m]
#> 5     5       9    11 0.0004933731       5      9          9  42.18315 [m]
#> 6     6      10    11 0.0011957606       6     10          9  91.91246 [m]
#>   from_lon from_lat   to_lon   to_lat             d    d_weighted
#> 1 -1200405 410685.6 -1200449 410626.0  76.73819 [m]  76.73819 [m]
#> 2 -1200290 410799.1 -1200449 410626.0 238.65079 [m] 238.65079 [m]
#> 3 -1201053 410808.6 -1201087 410746.9  73.57465 [m]  73.57465 [m]
#> 4 -1200889 410986.0 -1201087 410746.9 318.45306 [m] 318.45306 [m]
#> 5 -1200380 410601.2 -1200415 410587.3  42.18315 [m]  42.18315 [m]
#> 6 -1200328 410580.0 -1200415 410587.3  91.91246 [m]  91.91246 [m]
head(ca.dat$pnt)
#> Simple feature collection with 6 features and 4 fields
#> geometry type:  POINT
#> dimension:      XY
#> bbox:           xmin: -1678056 ymin: -608137.9 xmax: -1677218 ymax: -602959.4
#> projected CRS:  US National Atlas Equal Area
#>   HydroID DrainID Name Descript                      Shape
#> 1    5671    5702    0        0 POINT (-1678056 -608137.9)
#> 2    5672    5703    0        0 POINT (-1677711 -607582.4)
#> 3    5673    5704    0        0 POINT (-1677294 -605747.7)
#> 4    5674    5705    0        0 POINT (-1677218 -604756.3)
#> 5    5675    5706    0        0 POINT (-1677360 -604074.6)
#> 6    5676    5707    0        0 POINT (-1677671 -602959.4)
head(ca.dat$network)
#>   arcid from_id to_id Shape_Length HydroID GridID NextDownID          time
#> 1     1       3     5  0.001691061       1      3          5 172.80512 [m]
#> 2     2       4     5  0.001298222       2      4          5 128.35229 [m]
#> 3     3       6     7  0.001113038       3      6          9 110.54310 [m]
#> 4     4       8     7  0.000138889       4      8          9  12.10322 [m]
#> 5     5       5     9  0.004263114       5      5         16 402.38963 [m]
#> 6     6       1     9  0.004616235       6      1         16 472.47489 [m]
#>   from_lon  from_lat   to_lon    to_lat             d    d_weighted
#> 1 -1680057 -571297.5 -1679997 -571455.4 172.80512 [m] 172.80512 [m]
#> 2 -1680065 -571370.0 -1679997 -571455.4 128.35229 [m] 128.35229 [m]
#> 3 -1681028 -571278.0 -1681114 -571347.9 110.54310 [m] 110.54310 [m]
#> 4 -1681102 -571350.7 -1681114 -571347.9  12.10322 [m]  12.10322 [m]
#> 5 -1679997 -571455.4 -1679729 -571700.2 402.38963 [m] 402.38963 [m]
#> 6 -1679857 -571287.0 -1679729 -571700.2 472.47489 [m] 472.47489 [m]
head(va.dat$pnt)
#> Simple feature collection with 6 features and 4 fields
#> geometry type:  POINT
#> dimension:      XY
#> bbox:           xmin: 1935140 ymin: -410790.4 xmax: 1935510 ymax: -410482
#> projected CRS:  US National Atlas Equal Area
#>   HydroID DrainID Name Descript                     Shape
#> 1    4847    4880    0        0 POINT (1935468 -410756.8)
#> 2    4848    4881    0        0 POINT (1935510 -410788.2)
#> 3    4849    4882    0        0 POINT (1935502 -410790.4)
#> 4    4850    4883    0        0 POINT (1935473 -410744.6)
#> 5    4851    4884    0        0   POINT (1935297 -410482)
#> 6    4852    4885    0        0   POINT (1935140 -410570)
head(va.dat$network)
#>   arcid from_id to_id Shape_Length HydroID GridID NextDownID          time
#> 1     1       1     2 0.0023934480       1      1          3 223.25636 [m]
#> 2     2       3     2 0.0002314810       2      2          3  23.50023 [m]
#> 3     3       2     6 0.0022129167       3      3         13 201.80276 [m]
#> 4     4       4     9 0.0016269503       4      4         11 174.08503 [m]
#> 5     5       5    10 0.0012182280       5      5          9 129.53787 [m]
#> 6     6       8    10 0.0007552647       6      9          9  72.61085 [m]
#>   from_lon  from_lat  to_lon    to_lat             d    d_weighted
#> 1  1930429 -399798.6 1930621 -399857.2 223.25636 [m] 223.25636 [m]
#> 2  1930618 -399874.5 1930621 -399857.2  23.50023 [m]  23.50023 [m]
#> 3  1930621 -399857.2 1930800 -399881.9 201.80276 [m] 201.80276 [m]
#> 4  1933649 -399001.8 1933697 -399155.1 174.08503 [m] 174.08503 [m]
#> 5  1933341 -399143.3 1933402 -399249.9 129.53787 [m] 129.53787 [m]
#> 6  1933441 -399195.7 1933402 -399249.9  72.61085 [m]  72.61085 [m]

# compute distances
st_netdist(id.dat$pnt, network = id.dat$network)
#>          1          2          3  4  5  6  7  8  9 10 11 12        13 14
#> 1     0.00  1060.6836  5385.5910 NA NA NA NA NA NA NA NA NA        NA NA
#> 2       NA     0.0000  4324.9074 NA NA NA NA NA NA NA NA NA        NA NA
#> 3       NA         NA     0.0000 NA NA NA NA NA NA NA NA NA        NA NA
#> 4  1006.84  2067.5236  6392.4310  0 NA NA NA NA NA NA NA NA        NA NA
#> 5       NA  3632.4777  7957.3851 NA  0  0 NA NA NA NA NA NA 2068.2532 NA
#> 6       NA  3632.4777  7957.3851 NA  0  0 NA NA NA NA NA NA 2068.2532 NA
#> 7       NA         NA  2344.9380 NA NA NA  0 NA NA NA NA NA        NA NA
#> 8       NA  3058.5985  7383.5060 NA NA NA NA  0 NA NA NA NA 1494.3741 NA
#> 9       NA  2669.0519  6993.9593 NA NA NA NA NA  0 NA NA NA 1104.8274 NA
#> 10      NA         NA  4852.9151 NA NA NA NA NA NA  0 NA NA        NA NA
#> 11      NA  2115.3937  6440.3011 NA NA NA NA NA NA NA  0 NA  551.1693 NA
#> 12      NA  1565.2783  5890.1857 NA NA NA NA NA NA NA NA  0        NA NA
#> 13      NA  1564.2245  5889.1319 NA NA NA NA NA NA NA NA NA    0.0000 NA
#> 14      NA         NA  2554.2045 NA NA NA NA NA NA NA NA NA        NA  0
#> 15      NA         NA     0.0000 NA NA NA NA NA NA NA NA NA        NA NA
#> 16      NA   463.1479  4788.0553 NA NA NA NA NA NA NA NA NA        NA NA
#> 17      NA   903.0076  5227.9150 NA NA NA NA NA NA NA NA NA        NA NA
#> 18      NA  2062.1210  6387.0284 NA NA NA NA NA NA NA NA NA        NA NA
#> 19      NA 12014.9596 16339.8670 NA NA NA NA NA NA NA NA NA        NA NA
#> 20      NA 11778.9456 16103.8530 NA NA NA NA NA NA NA NA NA        NA NA
#> 21      NA         NA  2671.3881 NA NA NA NA NA NA NA NA NA        NA NA
#> 22      NA         NA  4852.9151 NA NA NA NA NA NA  0 NA NA        NA NA
#> 23      NA         NA  2344.9380 NA NA NA  0 NA NA NA NA NA        NA NA
#> 24      NA         NA   333.2878 NA NA NA NA NA NA NA NA NA        NA NA
#> 25      NA         NA  1701.2233 NA NA NA NA NA NA NA NA NA        NA NA
#> 26      NA         NA  1453.6979 NA NA NA NA NA NA NA NA NA        NA NA
#> 27      NA         NA     0.0000 NA NA NA NA NA NA NA NA NA        NA NA
#> 28      NA 12014.9596 16339.8670 NA NA NA NA NA NA NA NA NA        NA NA
#> 29      NA 11949.1686 16274.0760 NA NA NA NA NA NA NA NA NA        NA NA
#> 30      NA 11357.1847 15682.0921 NA NA NA NA NA NA NA NA NA        NA NA
#> 31      NA 11548.4960 15873.4034 NA NA NA NA NA NA NA NA NA        NA NA
#> 32      NA 11357.1847 15682.0921 NA NA NA NA NA NA NA NA NA        NA NA
#>            15         16         17       18 19      20 21 22 23        24
#> 1   5385.5910   597.5357         NA       NA NA      NA NA NA NA  5052.303
#> 2   4324.9074         NA         NA       NA NA      NA NA NA NA  3991.620
#> 3      0.0000         NA         NA       NA NA      NA NA NA NA        NA
#> 4   6392.4310  1604.3757         NA       NA NA      NA NA NA NA  6059.143
#> 5   7957.3851  3169.3298  2729.4701       NA NA      NA NA NA NA  7624.097
#> 6   7957.3851  3169.3298  2729.4701       NA NA      NA NA NA NA  7624.097
#> 7   2344.9380         NA         NA       NA NA      NA NA NA  0  2011.650
#> 8   7383.5060  2595.4506  2155.5910       NA NA      NA NA NA NA  7050.218
#> 9   6993.9593  2205.9040  1766.0444       NA NA      NA NA NA NA  6660.672
#> 10  4852.9151         NA         NA       NA NA      NA NA  0 NA  4519.627
#> 11  6440.3011  1652.2458  1212.3862       NA NA      NA NA NA NA  6107.013
#> 12  5890.1857  1102.1304   662.2707       NA NA      NA NA NA NA  5556.898
#> 13  5889.1319  1101.0766   661.2169       NA NA      NA NA NA NA  5555.844
#> 14  2554.2045         NA         NA       NA NA      NA NA NA NA  2220.917
#> 15     0.0000         NA         NA       NA NA      NA NA NA NA        NA
#> 16  4788.0553     0.0000         NA       NA NA      NA NA NA NA  4454.768
#> 17  5227.9150   439.8596     0.0000       NA NA      NA NA NA NA  4894.627
#> 18  6387.0284  1598.9731  1159.1134    0.000 NA      NA NA NA NA  6053.741
#> 19 16339.8670 11551.8116 11111.9520 9952.839  0      NA NA NA NA 16006.579
#> 20 16103.8530 11315.7977 10875.9380 9716.825 NA   0.000 NA NA NA 15770.565
#> 21  2671.3881         NA         NA       NA NA      NA  0 NA NA  2338.100
#> 22  4852.9151         NA         NA       NA NA      NA NA  0 NA  4519.627
#> 23  2344.9380         NA         NA       NA NA      NA NA NA  0  2011.650
#> 24   333.2878         NA         NA       NA NA      NA NA NA NA     0.000
#> 25  1701.2233         NA         NA       NA NA      NA NA NA NA  1367.936
#> 26  1453.6979         NA         NA       NA NA      NA NA NA NA  1120.410
#> 27     0.0000         NA         NA       NA NA      NA NA NA NA        NA
#> 28 16339.8670 11551.8116 11111.9520 9952.839  0      NA NA NA NA 16006.579
#> 29 16274.0760 11486.0207 11046.1610 9887.048 NA 170.223 NA NA NA 15940.788
#> 30 15682.0921 10894.0368 10454.1771 9295.064 NA      NA NA NA NA 15348.804
#> 31 15873.4034 11085.3481 10645.4885 9486.375 NA      NA NA NA NA 15540.116
#> 32 15682.0921 10894.0368 10454.1771 9295.064 NA      NA NA NA NA 15348.804
#>            25         26         27 28 29       30       31       32
#> 1   3684.3677  3931.8931  5385.5910 NA NA       NA       NA       NA
#> 2   2623.6841  2871.2095  4324.9074 NA NA       NA       NA       NA
#> 3          NA         NA     0.0000 NA NA       NA       NA       NA
#> 4   4691.2077  4938.7331  6392.4310 NA NA       NA       NA       NA
#> 5   6256.1618  6503.6872  7957.3851 NA NA       NA       NA       NA
#> 6   6256.1618  6503.6872  7957.3851 NA NA       NA       NA       NA
#> 7          NA         NA  2344.9380 NA NA       NA       NA       NA
#> 8   5682.2826  5929.8080  7383.5060 NA NA       NA       NA       NA
#> 9   5292.7360  5540.2614  6993.9593 NA NA       NA       NA       NA
#> 10  3151.6917  3399.2171  4852.9151 NA NA       NA       NA       NA
#> 11  4739.0778  4986.6032  6440.3011 NA NA       NA       NA       NA
#> 12  4188.9624  4436.4878  5890.1857 NA NA       NA       NA       NA
#> 13  4187.9086  4435.4340  5889.1319 NA NA       NA       NA       NA
#> 14   852.9812  1100.5066  2554.2045 NA NA       NA       NA       NA
#> 15         NA         NA     0.0000 NA NA       NA       NA       NA
#> 16  3086.8320  3334.3574  4788.0553 NA NA       NA       NA       NA
#> 17  3526.6917  3774.2171  5227.9150 NA NA       NA       NA       NA
#> 18  4685.8051  4933.3305  6387.0284 NA NA       NA       NA       NA
#> 19 14638.6437 14886.1691 16339.8670  0 NA 657.7749       NA 657.7749
#> 20 14402.6297 14650.1551 16103.8530 NA NA 421.7609 230.4496 421.7609
#> 21   970.1648  1217.6902  2671.3881 NA NA       NA       NA       NA
#> 22  3151.6917  3399.2171  4852.9151 NA NA       NA       NA       NA
#> 23         NA         NA  2344.9380 NA NA       NA       NA       NA
#> 24         NA         NA   333.2878 NA NA       NA       NA       NA
#> 25     0.0000   247.5254  1701.2233 NA NA       NA       NA       NA
#> 26         NA     0.0000  1453.6979 NA NA       NA       NA       NA
#> 27         NA         NA     0.0000 NA NA       NA       NA       NA
#> 28 14638.6437 14886.1691 16339.8670  0 NA 657.7749       NA 657.7749
#> 29 14572.8527 14820.3781 16274.0760 NA  0 591.9839 400.6726 591.9839
#> 30 13980.8688 14228.3942 15682.0921 NA NA   0.0000       NA   0.0000
#> 31 14172.1801 14419.7055 15873.4034 NA NA 191.3113   0.0000 191.3113
#> 32 13980.8688 14228.3942 15682.0921 NA NA   0.0000       NA   0.0000
st_netdist(ca.dat$pnt, network = ca.dat$network)
#>    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
#> 1  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 2  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 3  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 4  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 5  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 6  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 7  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 8  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 9  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 10 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 11 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 12 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 13 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 14 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 15 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 16 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 17 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 18 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 19 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 20 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 21 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 22 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 23 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 24 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 25 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 26 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 27 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 28 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 29 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 30 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 31 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#>    29 30 31
#> 1   0  0  0
#> 2   0  0  0
#> 3   0  0  0
#> 4   0  0  0
#> 5   0  0  0
#> 6   0  0  0
#> 7   0  0  0
#> 8   0  0  0
#> 9   0  0  0
#> 10  0  0  0
#> 11  0  0  0
#> 12  0  0  0
#> 13  0  0  0
#> 14  0  0  0
#> 15  0  0  0
#> 16  0  0  0
#> 17  0  0  0
#> 18  0  0  0
#> 19  0  0  0
#> 20  0  0  0
#> 21  0  0  0
#> 22  0  0  0
#> 23  0  0  0
#> 24  0  0  0
#> 25  0  0  0
#> 26  0  0  0
#> 27  0  0  0
#> 28  0  0  0
#> 29  0  0  0
#> 30  0  0  0
#> 31  0  0  0
st_netdist(va.dat$pnt, network = va.dat$network)
#>    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
#> 1  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 2  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 3  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 4  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 5  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 6  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 7  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 8  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 9  0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 10 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 11 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 12 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 13 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 14 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 15 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 16 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 17 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 18 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 19 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 20 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 21 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 22 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 23 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 24 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 25 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 26 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 27 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 28 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 29 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 30 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 31 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 32 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#> 33 0 0 0 0 0 0 0 0 0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
#>    29 30 31 32 33
#> 1   0  0  0  0  0
#> 2   0  0  0  0  0
#> 3   0  0  0  0  0
#> 4   0  0  0  0  0
#> 5   0  0  0  0  0
#> 6   0  0  0  0  0
#> 7   0  0  0  0  0
#> 8   0  0  0  0  0
#> 9   0  0  0  0  0
#> 10  0  0  0  0  0
#> 11  0  0  0  0  0
#> 12  0  0  0  0  0
#> 13  0  0  0  0  0
#> 14  0  0  0  0  0
#> 15  0  0  0  0  0
#> 16  0  0  0  0  0
#> 17  0  0  0  0  0
#> 18  0  0  0  0  0
#> 19  0  0  0  0  0
#> 20  0  0  0  0  0
#> 21  0  0  0  0  0
#> 22  0  0  0  0  0
#> 23  0  0  0  0  0
#> 24  0  0  0  0  0
#> 25  0  0  0  0  0
#> 26  0  0  0  0  0
#> 27  0  0  0  0  0
#> 28  0  0  0  0  0
#> 29  0  0  0  0  0
#> 30  0  0  0  0  0
#> 31  0  0  0  0  0
#> 32  0  0  0  0  0
#> 33  0  0  0  0  0

Created on 2020-12-14 by the reprex package (v0.3.0)

mpadge commented 3 years ago

Thanks, I can confirm that i see the same error, and will hopefully report back a solution soon.

mpadge commented 3 years ago

It was a bug with the caching - didn't anticipate graphs being manually constructed the way you did, and never tested that approach. Thanks to you, now have, and it should now work for you. Note, however, #114 - it's not yet appropriately documented, but in the way that you're using it, dodgr relies on geodesic distances calculated via geodist, which itself presumes and requires CRS 4326 (EPSG84). It still works with your CRS 2163, but results may be inaccurate. You can try comparing to see - using CRS 4326 even gives a few more distances which are missed when you use 2163 (for your ca data).

(That happens because defining routing points by coordinates relies on matching the closest network ones, and that matching will only be accurate for CRS4326; other projects may map routing points onto the wrong network points.)

Thanks for helping to improve the package, and let me know if you have any more issues.

sigmafelix commented 3 years ago

I found my data are working well with the new dodgr. I will convert the coordinates to EPSG:4326. Thank you for the prompt response!