Axwoman和depthmap区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Axwoman和depthmap区别相关的知识,希望对你有一定的参考价值。

参考技术A 空间句法模型的分析软件主要有:Axwoman(集成在GIS中的空间句法分析工具)、Depthmap(进行轴向地图分析以及拆解分析),两者的分析原理及方式有一定的差异。
Axwoman空间句法软件,是一套集成在GIS中的空间句法分析工具。通过计算机来量化分析城市空间组织,揭示节点间的连接关系组成的结构系统。其原理是对城市空间进行分割,利用算法生成句法轴线,分析城市空间单元内在关联和变化规律。表现形式是轴线地图,借助相应的轴线地图分析软件,可以得到一系列空间形态分析变量。
Depthmap空间句法软件,分析空间的结构,其研究范围不仅限于建筑内部及之间的空间,也涉及到整个城市甚至国家。它提供一系列量化描述城市和建筑空间拓扑形态的参数。空间句法软件在操作和使用上相对简单,但难在分析思考的过程,是一种研究型软件。软件发展的动力和过程源自对空间形态与人类社会、经济、文化行为的科学研究。
与 Axwoman 软件相比,Depthmap 运算速度快、分析方法全面,适于研究多尺度空间形态特征。

将原始json转换为d3兼容数据集

这更像是一个算法问题。我有两个地图:depthMap和ChildMap。 DepthMap是一个javascript地图,用以下内容发起:

let depthMap = new Map()

处理完毕后,我在地图中获得了以下数据:

0:[a,b,c,d]
1:[e,f]
2:[g,h,i]
3:[j]

同样,我有一个childMap,我初始化如下:

let childMap = new Map()

处理完成后,childMap具有以下数据:

a:[e,f]
b:[]
c:[]
d:[]
e:[g,h]
f:[i]
g:[]
h:[j]
i:[]
j:[]

现在我想从depthMap和childMap创建一个嵌套的JSON对象。我需要这个d3缩进树的数据集。最终的JSON看起来应该是这样的:

{
  name: 'a',
  children: [
     {
      name:e
      children: [
              {
                name: g,
                children:[]
              },
              {
                name: h,
                children: [..]
              }
           ]
     },
     {
       name: f
       children: [
          {
            name: i
            children: []
          }
       ]
     }
   ]
},
...

我不知道我怎么能这样做。考虑将chilMap作为邻接矩阵,我正在考虑使用普通的DFS算法来解析图形。

但是,我无法弄清楚如何实现DFS来创建这样的JSON。

任何帮助将不胜感激。我想听听使用ES6 / Javascript的方法。

答案

我会使用一点递归:

<!DOCTYPE html>
<html>

<body>
  <script>
  
    // base data
    var data = {
      'a': ['e', 'f'],
      'b': [],
      'c': [],
      'd': [],
      'e': ['g', 'h'],
      'f': ['i'],
      'g': [],
      'h': ['j'],
      'i': [],
      'j': []
    };
    
    // recursive funtion
    function iterV(v){
      
      return v.map( (k) => {
        
        var a = map.get(k); // get array
        map.delete(k); // remove from base map
        
        return {
          'name': k,
          'children': a ? iterV(a) : [] // recursively iterate
        };
      });
    }
    
    // kick it off
    var map = new Map(Object.entries(data)), // convert to map
        first = map.entries().next().value, // get first entry in map
        nest = {
          name: first[0],
          children: iterV(first[1]) // kick off recursion
        };
        
    console.log(nest);
    
  </script>
</body>

</html>

以上是关于Axwoman和depthmap区别的主要内容,如果未能解决你的问题,请参考以下文章

空间句法的轴线地图是用啥软件

求一个空间句法depthmap软件安装程序和这个软件的中文教程

depthmap怎么算智能度

depthmap导出图片模糊

江湖救急:请问谁有Depthmap软件,或者知道哪里有下载的,请告知~~

深度图像的获取原理