Почему матрица OD в sfnetwork возвращает один NA в именах измерений?
У меня есть корневое дерево с пространственно явными ребрами, представляющими речную сеть (
new_net
). Я хочу вычислить матрицу пункта отправления и назначения (OD), чтобы получить расстояния между несколькими точками, представляющими небольшие выходы водосбора (1754 точки), расположенные в этой речной сети.
Я начинаю с создания сети, используя мой набор сетевых данных.
hyriv_line
:
net <- as_sfnetwork(hyriv_line, directed = T)
Затем растушевываю точки выхода (
dir_outlets
) в сеть:
# Update river network with outlets
new_net <- net %>% # Original river network
activate("nodes") %>%
st_network_blend(dir_outlets) %>% # Blend in catchment outlets
activate("edges") %>%
mutate(weight = edge_length()) # Compute lenght of each river reach
Затем я вычисляю матрицу OD между всеми моими выходными точками:
cost_matrix_out <- st_network_cost(new_net,
from = dir_outlets, to = dir_outlets, # from-to point sf
mode = "out", # outbound (column-wise results)
Inf_as_NaN = T)
Он работает гладко, но затем, когда вы смотрите на полученную матрицу, имена измерений в строках появляются с начальным X, что означает, что что-то не так. Одна запись — всегда одна и та же, № 823— выглядит так, как будто ее имя не может быть правильно прочитано, поэтому в матрице OD вместо нее добавляется NA, отсюда и начальный X. Столбец № 823 в матрице также не имеет имени (см. ниже).Снимок моей матрицы OD с NA - это имя строки и пустое имя столбца.
Я не могу понять это. Я много раз проверял точечный слой, и его структура надежна. Любое понимание того, что я могу дополнительно проверить?
Данные для
dir_outlet
(откуда название):
dput(head(st_drop_geometry(dir_outlets[820:825,])), control = "showAttributes")
structure(list(c(7120213140, 7120933070, 7120213260, 7120933120,
7120933150, 7120213350), c(7120933250, 7120213890, 7120213070,
7120933570, 7120933230, 7120933250), c("7120213140", "7120933070",
"7120213260", "7120933120", "7120933150", "7120213350")), .Names = c("from",
"to", "name"), row.names = 820:825, class = "data.frame")