【官方sDNA文档-sDNA Open Documentation-V4.2.0】空间设计网络分析 (sDNA) 手册&教程 (二)网络准备

2. 网络准备

" 垃圾进,垃圾出 "这句话,同样适用于空间网络分析,就像它适用于所有建模一样。要获得有意义的结果,就必须认真准备空间网络分析

本章为我们在准备空间网络分析数据时发现的陷阱提供了急需的指导。希望通过本章的学习,您可以避免我们曾经犯过的错误,以及其他人犯过的错误。虽然本指南现在是 sDNA 手册的一部分,但它同样适用于任何其他形式的空间网络分析。

我们提供的材料如下:

  • 《原则》讨论空间网络中出现的错误类型,以及从理论上说,如何纠正这些错误
  • 《工具》根据您的工作环境,讨论可用于实现校正的具体工具
  • 《特定格式注释》包含一些常用网络格式的准备注释

2.1. 原则

数据质量分析质量之间不是线性关系关键位置上的一个错误可能会使整个分析失效;与此同时,非关键位置上的许多错误可能会产生微不足道的影响

在空间网络分析中,应优先处理三类错误:

  • 格式错误的数据
  • 关键位置的连接错误
  • 关键位置的几何误差

数据格式具有误导性

连接规则

我们很容易因为软件成功加载了数据,就认为数据格式正确;事实上,我们也很容易认为,如果格式错误,数据就会无法加载。对于空间网络数据来说,情况往往并非如此

如果软件无法识别特定的 GIS 和 CAD 文件格式(如 shapefile、geodatabase 或 DWG),它肯定会抱怨。但这些格式都仅限于描述形状和数据这两样东西。它们所不能描述的是这些形状和数据的含义。例如,一个形状文件可能包含这样两条交叉的线(节点用来明确线的起点和终点):

图4: 一个 shapefile 中的两条线,但是它们是什么意思呢?
目前来看,这只是两条相交的线。但假设你知道这两条线代表了一个街道网络。现在它们有了意义——但意义还不是很明确。我们看到的是两条街道交汇的十字路口,还是一条街道横跨另一条街道的桥梁?要回答这个问题,我们需要为数据指定一个连接规则

sDNA 处理使用重合端点连接规则编码的空间网络。这是许多数据集(如 Ordnance Survey 产品以及 ArcGIS Network Analyst 等其他软件)中使用的通用标准。(前提是考虑到等级分隔。Ordnance Survey 为链路的每一端指定了等级分隔,链路只有在等级分隔匹配的情况下才能连接)。

重合端点连接规则
  • 网络由折线集合(特征集)构成
  • 当且仅当折线具有重合端点(折线必须在完全相同的点上结束)时,它们才被认为是连通的

因此,就 sDNA 而言,图 4 中的两条线并不相连,因为它们的端点不同。它们只是相互交叉,既可以代表桥梁,也可以代表隧道。这种情况非常常见,以至于有了自己的名字——“布鲁内尔”(或为纪念维多利亚时代的工程师而命名的 “布鲁内尔”)。这些特征也被称为 “非链接”,因为这些线条代表的是没有链接的对象。

然而,图 4 并不代表十字路口,而十字路口通常是设计者的意图。这是一个严重的数据错误。使用重合端点连接来表示十字路口,需要四条独立的线:
请添加图片描述
图 5:形状文件中的四条线,根据重合端点连接规则表示十字路口

如果网络中的连接点格式如图 4,而不是图 5,那么所有期望端点重合的软件所做的网络分析都将毫无意义。这一点无论如何强调都不为过——看似显而易见,但我在实践中经常看到这种错误,因为(除非软件设置为在线条末端显示圆球,就像我在本文档中设置的那样)这两种格式都能正确加载,并且在查看器中看起来完全相同。

经常犯这种错误的另一个原因是,使用重合端点连接规则绘制网络非常繁琐、耗时、痛苦且容易出错。设计者需要画出比原来多得多的线条,而这些线条似乎与我们(作为人类)思考空间的方式并不相符。出于这些原因,人们不喜欢绘制端点连接重合的网络。这完全没有问题——避免繁琐且容易出错的任务是值得鼓励的。但是,在分析之前,将绘制的网络转换为重合端点连通性至关重要的。

当然,如果您按照图 4 的样式绘制十字路口,那么您将如何指出其中哪些是桥梁或隧道(布鲁内尔)而不是十字路口呢?使用一些不同的连接规则:

其他连接规则
  • 链接-非链接(多边形)规则。除非另有特别标记,否则相交的链接都被假定为连接。这是通过单独的非链接层(以多边形绘制)来实现的。这种格式易于手工绘制。
  • 链接-非链接(数据)规则。除非另有特别标记,否则相交的链接都被认为是连接在一起的。具体做法是在每条线上附加一个布鲁内尔数据字段。这种格式易于手绘。
  • 链接-端点等级分离规则。数据中完全不允许有交叉点;所有接触的线路必须有重合的端点。如果连接线的端点不重合,则需要提供高程或等级分隔数据–每条连接线上都有两个数据字段,一个表示连接线的起点,另一个表示连接线的终点。(操作系统ITN 就是这样做的)。
  • 线路-节点规则。数据中不允许有任何交叉点;所有接触的线路必须有重合的端点。如果链接的端点不相连,则通过提供高程或等级分隔数据来显示–除非端点的高程和等级分隔相匹配,否则假定端点不相连。这些数据在单独的点图层中提供,并与它们所代表的高程线相互参照(OS Meridian 就是这样做的)。
  • 共享点规则。除非在数据中代表直线的点列表中存在共享点,否则直线不会相交。这个点可以是端点,也可以是线段本身的任何一个角,甚至可以在没有角的情况下添加一个点来创建交点。OpenStreetMap 使用了这一规则,但将线路中的所有点都称为 “节点”;在本文档中,我将 "节点 "保留用于连接链接的地方。

请注意,后两种格式的一个优点是完全不允许出现交叉线,因此软件检测到的任何交叉线都保证是数据错误。捕捉数据错误是我们稍后讨论的一项重要功能。

接下来的问题是如何将这些其他格式转换为具有重合端点连接规则的网络。

  • 对于链接-非链接(多边形)规则,Autocad 的 sDNA 包含一个转换网络的工具。如果您需要在 GIS 中使用该工具,请给我们留言–目前还没有人提出要求,但我们可以考虑制作。或者,在任何 GIS 系统中,按如下方法将网络转换为链接-非链接(数据)格式:

    • 使用非链接多边形图层在非链接多边形边界分割链接
    • 在链接层上创建一个布鲁内尔数据字段
    • 在取消链接层的多边形内选择链接,并在数据字段中将其标记为布鲁内尔
    • 现在您的网络就是链接-非链接(数据)格式。请按照以下步骤将链路-非链路(数据)转换为重合端点格式。
  • 对于链路-非链路(数据)规则,使用 "断开交点 "工具断开除布鲁内尔以外的所有线段。将图层分割成两个独立的图层:一个是布鲁内尔图层,另一个是其他链接图层。断开链接层上的交点,然后重新连接图层。

  • 对于链路-端点等级分离规则,无需转换。所有 sDNA 工具都接受链路上附加的起点和终点等级分离数据;只有当端点的等级分离匹配时,端点才会被认为是连接在一起的。

  • 对于链接-节点规则,请与我们联系–虽然它们尚未对外发布,但我们有一些工具可以做到这一点。

  • 对于共享点规则,请使用共享点断线器

小结:确保您了解空间网络连接规则,(对于 sDNA)确保您的网络使用重合端点连接。

空间参考

回到图 4 和图 5,即使我们知道线条代表什么–以及它们的连接规则–我们仍然不知道坐标代表什么。这就是数据的空间参照。无论是创建新数据,还是从其他来源下载现有数据,这个问题都很重要。

空间参照可以是地理坐标系,也可以是投影坐标系地理坐标系通过测量与地轴的经纬度角度来指定地球表面的位置。全球定位系统和制图数据的主要全球标准 WGS84 就是一个例子。

地理坐标系描述的是一个弯曲的表面,而投影坐标系则将小区域近似为平面,从而简化了小区域的表示。每个国家通常都有一个基于 x 坐标和 y 坐标的国家网格。

要分析一个网络,您可能希望使用对您有物理意义的距离单位–米、英里或公里。如果您下载的数据使用的是地理坐标系统,这通常意味着您需要使用 GIS 或 CAD 软件对其进行转换(投影)

遗憾的是,世界上并不是每个人都懂空间参照。这就意味着,有时您收到的数据可能标注了错误的空间参照–请注意!

关键位置的连接错误

即使您使用了正确的网络连接规则,您或其他人也有可能在绘制网络时出错。图 6 显示了与图 2 相同的网络,以四级放大的方式显示:
请添加图片描述
图 6:放大一个错误的十字路口

哦,不!从远处看这是一个非常正常的十字路口,但放大后却发现它断开了。这可能是一个非常严重的错误。如果您想要一个精确的模型,这当然是不可接受的,但即使您只想要一个近似的网络模型,如果这种断开是在一个关键位置(如城市中的一条主要通道),那么整个分析就可能毫无意义,即使是一个粗略的模型。

下文将讨论这种及其他形式的连接错误。

集群容差

我们首先介绍集群容差的概念。这是一个很小的距离,在城市范围内可能是 1 厘米(不过有时更大的聚类容差也很有用)。sDNA 支持两种类型的群集容差,XYTolerance 用于表示点之间的水平差异ZTolerance 用于表示垂直差异

请注意,某些 GIS 系统(尤其是 ArcGIS)会将未连接的线条显示为连接的线条(无论您如何放大),如果断开的距离小于 GIS 的聚类容差!因此,我们必须非常小心地判断线条是否相连,因为无论我们如何仔细观察,可能都无法发现错误

sDNA 准备工具支持修复小于聚类容差的断开。在图 6 的例子中,如果您设置了合适的群集容差,那么 sDNA 准备工具就会将这些线连接起来(前提是图 6 中的网络实际上由四条线组成,而不是两条–请参阅连接性规则)。sDNA 群集容差仅适用于线的端点,而不适用于中间的任何点。在 ArcGIS 中,sDNA 使用 ArcGIS 默认使用的公差,当然也可以设置自定义公差。在其他平台上,公差默认为零,即不进行修正。

但是,假设您下载了一些质量未知的网络数据。如何确定使用多大的群集容差?容差太小,会断开本应连接的部分;容差太大会连接本应断开的部分。

答案就是使用 sDNA 准备来检测(但不是修复)群集容差错误。

修复群集容差未知的网络
  1. 从小容差开始
  2. 使用 sDNA 准备检测容差问题(“边缘端点比群集/XYTolerance 更接近”),并检查它发现的错误。
  3. 检测到的特征是否都是错误的,还是其中一些确实存在不应连接的小间隙?
    • 如果检测到的所有特征都是真实的,那么网络就可以使用了。
    • 如果部分(但不是全部)特征是真实的,则选择较小的容差,并返回步骤 2。
    • 如果所有特征都是错误的,则使用 sDNA 准备来修复它们。然后,选择更大的容差,回到步骤 2。
    • 如果没有检测到任何特征,则选择更大的容差并返回第 2 步。如果一直在上述(b)和(d)之间交替,那么错误和真实特征的大小是相同的。这意味着网络质量很差,必须手动修复。

交叉和重叠
当线条相交或重叠时,可能会出现另一种连接性错误。这实际上是对连通性规则的重述,但这里我们关注的是对端点连通性规则进行编码时可能出现的错误,而不是完全选择了错误的规则。
请添加图片描述
图 7:(a)一对连接点;(b)表示连接点的正确线条集(箭头表示端点);(c)表示连接点的错误线条集–交叉错误;(d)表示连接点的错误线条集–重叠错误。(d) 中的平行线实际上是重叠的,为了清晰起见,这里将它们略微分开。

图 7 显示了一组两个路口(a),其中(b)表示正确,(c、d)表示错误。请注意,在每条线的两端使用箭头可以让您更清楚地看到错误–在检查网络时,建议将 GIS 配置为这样[2]。

[2] 在 ArcGIS 中,箭头设置隐藏得很好。请查看图层属性 -> 符号 -> 符号 -> 编辑符号 -> 将类型设为 “制图线符号” -> 线属性。

这类错误可以使用拓扑工具进行修复。如果存在等级分隔数据,则必须注意断开交叉点不会将等级分隔数据移动到错误的链接上:建议搜索所有非零等级分隔数据,并在断线操作后手动检查它们。

我们建议在存在桥梁/隧道的地方断开连接,只要这些地方的分级数据是正确的。这样做的好处是,所有的交叉路口都会变成错误:如果您看到一个交叉路口,您可以确定这是网络中的一个错误,而不是布鲁内尔,因为后者会用分级数据进行编码。对于起点和终点都在同一点的环形连接(如环形死胡同),也可以采用类似的策略。如果故意将其分成两条而不是一条,则可以确定所有环形连接线也都是错误的。这样就无法绘制没有任何连接的环形交叉路口等。

不正确的分层、高程和单向数据

第三种连接错误发生在分等级、高程或单向信息不正确的情况下。在前一种情况下,如果等级分隔或海拔数据错误,即使是重叠的端点也会被错误地假定为断开连接。在后一种情况下,单行道指向错误会导致不可能的情况。

检查此类信息的方法是显示并查看。如果您有分级数据,它将以每个链路上两个数据字段的形式出现–链路的两端各一个(在 sDNA 中,这两个字段通常被称为 start_gs 和 end_gs)。线路的起点和终点指的是线路的绘制方向,注意这不一定与单向线路的流向相同。因此,为了使起点和终点分级可以解释,应将 GIS 设置为只在线路末端显示箭头,以明确起点和终点分级指的是哪一端。

在 ArcGIS 中,可以通过 “图层属性”->"标注地物 "对话框自定义标注链接起点和终点分等。打开标签,并在 "放置属性 "中选择 “每个地物放置一个标签”。单击表达式可从多个字段创建标签。下面是一个表达式的示例,该表达式用连接性、起点和终点等级分隔为每个链接贴上标签;为便于阅读,将等级分隔放在括号中:

[LConn] & " (" & [start_gs] & “/” & [end_gs] & “)”

(有关计算和检查连接性的更多信息,请参阅下一节)。

要显示单行道数据,最好在单行道方向显示一个箭头。在 ArcGIS 中,可以使用 "类别 "符号来显示前进、后退或无箭头,具体取决于街道的单向信息。

sDNA 允许将海拔(z)数据与分等级数据分开提供。乍一看,这似乎很奇怪,因为两者测量的是同一件事。然而,通常的情况是,可以获得精确的分等级数据,但只能获得不精确的高程数据。如果是在地形模型上绘制二维网络而形成的三维网络,则无法捕捉到桥梁和隧道的高差,因此仍需要分等级来显示这些数据。

要显示和检查高程数据,最好使用 3D 网络。

连接错误的最终检查

检查连通性错误的最终方法是让 sDNA 计算每个链路的连通性,并查看它是否显示您认为应该显示的连通性。运行 sDNA Individual Line Measures ,计算每个链路的连通性,并检查它是否符合您的预期。链路连通性(LConn)是指链路所连接的其他链路的端点数。

当然,手工检查整个网络的连通性可能成本过高,您无法承担。sDNA 集群容差和外部工具断开交叉点并修复拓扑结构可以自动修复连通性错误。桥梁和隧道的数量通常很少,因此可以手动检查。有了可靠的数据源(如 Ordnance Survey),我们通常可以相信源数据在任何情况下都是正确的。

关键位置的几何误差

空间网络分析中最后一个常见错误仅适用于角度分析,即任何认为方向变化很重要的分析。这包括任何包含角度成分的混合分析,但不包括欧氏拓扑分析。
请添加图片描述
图 8:两种几何误差。在下图中,人字形链接可能与另一个链接精确重叠,因此人工检查时看不到。

在特征编码中存在某些类型的错误,会导致通过特征的模拟路径出现虚假的方向变化。图 8 给出了两个例子。在第一个例子中,在某个比例尺上看似十字路口的位置略微错开,因此从左向右行驶的路线必须经过两个 90° 的转弯,而实际上根本不需要转弯。即使是通常可靠的数据集,这种问题也很常见,因为这些数据集在设计时可能没有考虑到角度分析。

在图 8 的第二个示例中,一个链路的之字形特征几乎被相邻的链路所遮挡。事实上,人字形特征可能完全与另一个链接重叠,在这种情况下,随便检查是看不到的(不过在修复关键位置的连接性错误时,应理所当然地修复重叠)。

一个几乎总能说明几何图形错误的线索是非常短的线。要找到这些线,请将模型中的所有折线按长度排序,然后检查最短的折线。它们是应该存在的,还是交错十字路口的一部分?

与重叠错误一样,拓扑工具也可以帮助修复几何图形错误。所有之字形、交错十字路口和小于公差的短边都会被删除。用户可以选择一个合适的容差,该容差要大到足以去除数据中的错误,但又要小到足以保留真正的特征。

交通岛

最后一个话题是道路网络中的交通岛。有些数据产品(特别是 Ordnance Survey ITN)会对较大的交通岛进行编码,方法是将一条连接线分成两个平行的部分,长度与交通岛的长度相同。

请添加图片描述
图 9:交通岛的空间网络表示法。(a)道路布局,(b)网络表示法

这种编码方式破坏了角度分析,因为它引入了沿直线道路每个方向 180° 的虚假转弯。这个问题可能很严重,因为交通岛通常出现在城市的主干道上;交通岛编码引入的额外角度会导致 sDNA 高估这些道路的度量,从而低估交通流量

2.2. 工具

上文关于网络准备的讨论迄今只是抽象地提到了网络准备的工具。本节将介绍一些可以达到预期目的的软件包。

请注意,所有这些工具都有可能破坏桥梁和隧道的分级数据。

还需注意的是,使用拓扑工具修复几何问题通常会同时修复连接问题。

断开交叉点

打破线路之间的交叉点意味着将图 4 所示类型的交叉点转换为图 5 所示类型。

  • QGIS
    在开源环境中,使用 GRASS 工具中 v.clean 的断开选项可以断开多段线的交点。GRASS 工具与免费的 QGIS 捆绑在一起,不过要显示这些工具,必须将 Processing 工具箱切换到高级模式。(在任何情况下,首次使用 sDNA 时都需要这样做)

  • ArcGIS
    ArcGIS 高级版提供了两种工具来大规模分解交叉点。最简单的是运行 ArcGIS Planarize,公差为零。另一种方法是使用 Arc Topology 工具检测并修复所有交叉点。我们发现后者更为灵活,但处理大量交叉点的能力较弱。

  • Autocad Map3d:
    Autocad Map3d 的 "绘图清理 "工具包中有一个 "在交叉点断线 "工具。

共享点断线器

GRASS 工具中 v.clean 的 bpol 选项正是用于此目的。GRASS 工具与免费的 QGIS 捆绑在一起,不过要显示这些工具,必须将处理工具箱切换到高级模式。(在任何情况下,首次使用 sDNA 时都需要这样做)。

拓扑结构

在本文中,我们将拓扑工具定义为可以在给定群集容差范围内修复近似(以及实际)交叉和重复的工具。这些工具对于清理几何错误非常有用,如图 7 和图 8 所示。请注意,sDNA 准备网络本身只能在给定公差范围内修复链接端点的交叉;对于其他位置的错误,请使用以下工具:

  • QGIS:
    GRASS工具中的v.clean中的snap选项可将公差范围内的部分线条拼接在一起。之后应使用 break 和 rmline。相关工具 v.clean.advanced 可以将这些操作结合起来。
  • ArcGIS
    使用 ArcGIS Planarize 或 Arc Topology。
  • Autocad Map3d:
    使用 "绘图清理 "工具包中的 “明显交叉点”。

在上述所有情况下,请注意选择合适的公差或阈值;足够大的公差或阈值既能修复错误,又能保留真正的地物。

2.3. 特定格式说明

地址点数据

要处理地址点数据(如附在建筑物入口处的建筑面积或人口),请使用 GIS 的空间连接功能将相关数据连接到网络中。如果需要高于链接级别的精确度,可将链接分割成较短的片段。

开放街道地图(OSM)

开放街道地图(OSM)是目前世界上最著名的开放地图平台。OSM 于 2006 年在英格兰和威尔士注册,是一个非营利性基金会,2013 年用户突破百万大关,包含 2100 万英里的道路数据,每天新增 1000 名贡献者,使地图精度不断提高[OSM1]。100 多所大学与 "开放街道地图 "开展了相关研究 [OSM2]。

另一方面,OSM 的众包性质意味着在使用过程中会遇到一些独特的问题。数据质量并不一致,有些地区的数据比其他地区更准确;在记录链接属性方面,不同地区之间也缺乏一致性。OSM 的最终源数据每天都会进行校正和更新,但某些地区的更新次数要多于其他地区。

尽管存在这些问题,但我们期待OSM随着时间的推移不断改进,而且我们已经发现它在sDNA总部非常有用。2014 年,作者基于 OSM 制作了一个卡迪夫城区模型,正确预测了 90% 的车辆交通流量差异和 75% 的自行车交通流量差异。在英国,OSM 可能是迄今为止公布的最完整的行人和自行车路线数字记录。

我们使用 OSM 的经验提醒我们注意以下隐患:

  1. ArcGIS 中的空间参照
  • OpenStreetMap 以 WGS84 为基准进行存储和下载。ArcGIS 无法正确识别将 OSM数据投影到国家网格所需的转换。解决这一问题的最简单方法是(在加载数据之前)使用 ArcCatalog 将其标记为 WGS84。加载数据后,必须将数据重新投影到欧几里得(投影)坐标系,然后才能在 sDNA 中进行分析。
  • 免费的 QGIS 可以正确处理OSM 数据,但在使用 sDNA 之前仍必须重新投影。

连接性和几何误差

截至 2014 年 11 月,卡迪夫的 OSM 数据包含一些连接性和几何错误。通过在 ArcGIS 中以 1 米的群集公差进行平面化处理,修复了这些错误。首先需要提取桥梁和隧道,以避免这些数据也被平面化。

另请参阅分步指南:从 OpenStreetMap 下载和准备数据

更新:截至 2020 年,OpenStreetMap 的许多区域已得到极大改进,可以使用 GRASS 工具中 v.clean 的 bpol 选项进行正确制备。

[OSM1] 参见 https://www.mapbox.com/osm-data-report/ 和 http://radar.oreilly.com/2014/08/ten-years-of-openstreetmap.html。
[OSM2] http://wiki.openstreetmap.org/wiki/Research

行人网络

我们过去曾编制过一份规范,涉及如何为复杂的城市环境可靠地创建行人网络(在 3D 中连接内部和外部网络)。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值