我对在R中的ngspatial包中运行自动物流模型感兴趣。我的数据对象是多边形。通常,基于多边形质心的坐标建立多边形的邻接矩阵。但是,我已经根据多边形之间的最小距离标准(从每个多边形的边界到边界的距离)来定义我的邻接(0/1)。我已在arcmap中完成此操作,然后使用igraph包生成了邻接矩阵:
g <-graph_from_data_frame(我的数据)
A <-as_adjacency_matrix(g,attr =“ Dist”)
A
“ dgCMatrix”类的42 x 42稀疏矩阵 [[取消显示42个列名'1','2','3'...]
我的矩阵只有0和1个值,完全对称(42 x 42)。
但是,当我尝试在ngspatial的自动物流模型中使用它时,出现错误信息:
ms_autolog <-自闭症的(占用〜面积,A = A)
“您必须提供一个数字和对称的邻接矩阵”。
我以为dgCMatrix与ngspatial不兼容,但是还没有找到如何转换它的方法。我还尝试过将data.csv文件直接制成矩阵,将其读取为矩阵,但是自动物流模型仍然无法读取。
有人知道我该如何解决吗?
非常感谢!
安娜玛丽亚。
答案 0 :(得分:0)
没有最小的工作示例很难检查,但是您可以尝试以下方法:
A <- as_adjacency_matrix(g, attr = "Dist", sparse = F)
这样,您将获得具有0和1的二进制矩阵,而不是稀疏矩阵。