Я пытаюсь создать небольшое подмножество большего объекта osm:
Сначала я загружаю в память более крупный объект osm:
muc_bbox <- center_bbox(mid_point[1], mid_point[2], dist * 2, dist * 2)
src <- osmsource_osmosis(file = paste(maps_pfad,"streets_bayern.osm",sep = ""))
muc <- get_osm(muc_bbox, src)
затем я создаю подмножество на основе координат узлы:
subset_bbox <- center_bbox(mid_point[1], mid_point[2], dist, dist)
, может быть, мне нужно использовать здесь find вместо subset?
muc_subset_df <- subset(muc$nodes$attrs, lon > subset_bbox[[1]] & lon < subset_bbox[[3]]
&lat > subset_bbox[[2]] & lat < subset_bbox[[4]])
subset_ids <- muc_subset_df$id
muc_subset <- subset(muc, node_ids = subset_ids)
muc <- muc_subset
поэтому в основном я ищу все идентификаторы узлов узлов, которые находятся в диапазоне значений lat и lon из bbox.
теперь я хочу построить n граф этого нового подмножества:
gr_muc <- as_igraph(muc)
и получить эту ошибку:
E<-`(`*tmp*`, value = `*vtmp*`) : invalid indexing
Какую ошибку я делаю ?
Перед тем, как я подмножество, я получаю эту информацию о mu c object
dim(muc)
nodes ways relations
360451 59490 3
После подмножества я получаю 0 способов и отношений. Я думаю, это, вероятно, ошибка ... как бы мне разбить все на части?
Даже после того, как я использую функцию find_up
на subset_ids
, я все еще не получаю relation_ids
.
subset_ids <- muc_subset_df$id
osm_subset_ids <- find_up(muc, node(subset_ids))
muc_subset <- subset(muc, osm_subset_ids)
Что мне не хватает?
РЕДАКТИРОВАТЬ: После небольшого исследования выяснилось, что
muc_subset <- subset(muc, osm_subset_ids)
не создает истинное подмножество объекта osm. Он создает только объект, содержащий узлы, но без путей или отношений. Я подозреваю, что это проблема, но до сих пор не знаю, как ее решить.
> muc_subset
osmar object
80165 nodes, 0 ways, 0 relations
> muc
osmar object
80165 nodes, 14161 ways, 0 relations
Тем не менее, osm_subset_ids
содержит идентификаторы способов.
С уважением, Андреас.