如何根据地形、坡度等生成最小成本路网?

最近我正在计算一个生成最小成本的路网问题。具体内容为:这个路网要覆盖54个城市节点,保证这些城市都联通到该路网,道路修建的成本取决于坡度、地形、土地利用情况等,这个路网在满足覆盖要求的同时要成本最小化。

我现在有两个思路:
(1)利用成本连通性工具:似乎要把节点(节点实际代表的是城市)扩充为区域才能计算准确, 当我直接用spatial analysis的Stowe.gdb进行试验时(没有把节点转换成区域)发现了两个问题,如图:

2.png


a)有点节点并没有被路网覆盖    b)路网有的地方形成了闭环,如画黄圈的地方。   不知道这两个问题怎么解决。

(2)思路2:分别读取54个节点,让每个节点与另外53个节点依次计算最小成本路径,会有54*53/2=1431条路径,把这些路径和对应的成本及节点存储,再用Python调用这些数据实现kruskal算法,即可生成最小成本树。但在实现的过程中我不太清楚如下几点:a)怎么从shape文件中,按顺序一次读取一个节点 b)怎么计算一个节点到多个节点的最小成本距离(难道只能通过Python借助循环语句实现吗?如果是,具体代码怎么写呢?) c)如果前面的内容已经实现,接下来怎么把生成的最小成本路径信息进行存储以方便kruskal算法的调用
已邀请:

要回复问题请先登录注册