缓冲区(分析)的工作原理
如何创建缓冲区
缓冲区程序将遍历输入要素的每个折点并创建缓冲区偏移。通过这些偏移创建输出缓冲区要素。
在线周围创建偏移
输入线要素
在输入线要素周围创建的偏移
通过偏移获得的缓冲区
缓冲距离的描述
可以输入一个固定值或一个数值型字段作为缓冲距离参数。
示例 1:固定距离
下图显示的是线要素类的缓冲区,其中使用 20 作为缓冲距离、以 FLAT 作为末端类型、以 FULL 作为侧类型并以 ALL 作为融合类型。
由于缓冲距离为常量,因此缓冲后所有要素的宽度相同。
示例 2:由字段决定的距离
此示例说明的是线要素类的缓冲区,其中使用 10、20 和 30 的数值字段值作为缓冲距离、以 FLAT 作为末端类型、以 FULL 作为侧类型并以 ALL 作为融合类型。
由于缓冲距离取决于字段值,因此可以在同一操作中应用多种不同的缓冲宽度。
欧氏缓冲和测地线缓冲
缓冲区工具的一个重要功能是生成测地线缓冲区。测地线缓冲区在缓冲区计算中考虑地球的实际形状(椭球体,更准确地说应为大地水准面);测量地球上两点之间的距离。欧氏缓冲区测量二维笛卡儿平面中的距离,其计算平面上两点之间的直线距离或欧氏距离。欧氏缓冲区是更常见的缓冲区类型,特别适合于分析投影坐标系中要素周围的距离(侧重于相对较小的区域(如一个 UTM 带))。测地线缓冲区可为较为分散的要素(涵盖多个 UTM 带、大面积区域甚至整个地球)提供更精确的缓冲区偏移。
执行欧氏缓冲时,有时会产生技术上不正确的结果。执行欧氏缓冲的主要危险是,要素存储在投影坐标系中时,投影区域中的要素的距离、面积和形状会发生变形,使用投影坐标系就会出现这种情况。例如,如果使用“美国国家平面”或 UTM 投影坐标系,投影原点(国家中心或 UTM 带)附近的要素将更加精确,距离原点越远,变形越严重。在数据集中的要素没有集中于小区域的情况下,或者使用的缓冲距离过大而导致创建的偏移超出了小区域的范围时,欧氏缓冲区将不正确。同样,如果使用世界投影坐标系,某区域的变形通常最小,但在另一个区域却会较为明显(对于墨卡托世界投影,赤道附近的变形最小而两极附近的变形较大)。对于既有低变形区域要素,又有高变形区域要素的数据集,低变形区域的欧氏缓冲区将会更精确而高变形区域内则精度较低;在所有区域,测地线缓冲区均较为精确。
尽管测地线缓冲区总是比欧氏缓冲区更精确,但仍需做出权衡,因为生成测地线缓冲区需要的时间比生成欧氏缓冲区更长。造成这一性能差异的原因是,生成欧氏缓冲区所使用的是一种非常简单的二维距离公式,而测地线缓冲区计算却极为复杂。
当缓冲输入要素采用地理坐标系(未投影),且以线性单位(米、英尺等,而非诸如度之类的角度单位)指定缓冲距离时,将使用测地线缓冲算法。
测地线缓冲示例
本示例的目标是对一组选定世界城市的 1,000 千米测地线缓冲区和欧氏缓冲区进行比较。测地线缓冲区通过使用地理坐标系对点要素类进行缓冲而生成,而欧氏缓冲区则通过使用投影坐标系对点要素类进行缓冲而生成(对于投影和未投影数据,点均代表相同的城市)。
在世界范围内较为常用的一种投影坐标系(例如墨卡托)中处理数据集时,赤道附近的投影变形可能最小,而两极附近的较为明显。这表示对于墨卡托投影数据集,距离测量和缓冲区偏移在赤道附近应该十分准确,而离赤道越远,精确越低。
左图显示了输入点位置。显示的赤道和中央经线作为参考。两幅图均显示在墨卡托(世界)投影中。
右图中,赤道附近的点,其测地线缓冲区与欧氏缓冲区相重合。对于接近赤道的点,使用墨卡托投影可以获得较准确的测量距离。但是,距赤道较远的点的缓冲区发生了严重的距离变形,其欧氏缓冲区比测地线缓冲区要小得多;导致墨卡托投影出现这一现象的原因是,两极处的面积被拉伸(靠近两极的大陆板块(例如格陵兰岛和南极洲)与靠近赤道的大陆板块相比,面积要大得多)。所有 1,000 千米的欧氏缓冲区大小均相同,因为欧氏缓冲区程序假定投影中每处的映射距离均相同(巴西的 1,000 千米与俄罗斯中部的 1,000 千米相同);而实际情况并非如此,离赤道越远,投影距离的变形越严重。在全球尺寸内进行任意类型的距离分析时,应使用测地线缓冲区,因为测地线缓冲区在所有区域均较为准确,而欧氏缓冲区在高变形区域准确度较低。
在地球上显示测地线缓冲区和欧氏缓冲区,可明显看出来测地线缓冲区更精确。
上图所示与上述示例所创建的 1,000 千米欧氏缓冲区和测地线缓冲区相同。在地球上显示时,尽管每个缓冲区使用的缓冲距离实际是一样的,但每个欧氏缓冲区大小均不相同(可以看到,阿拉斯加的缓冲区看起来要比巴西的缓冲区小得多)。这是由于生成的缓冲区是根据在世界各地的任何位置所有映射距离均相同这一错误假设所创建的。与之形成对照的是,在地球上显示时,每个测地线缓冲区的大小均准确一致;这些测地线缓冲区是正确的,因为其没有受到投影坐标系所致变形的影响。
有关测地线缓冲的其他信息
输入折线和面要素的折点假定与测地线(测地线为椭圆体上两点间的最短路径)相连接。如果折点之间的预期路径并不与测地线趋于一致,则首先需要显式增密输入。可使用增密工具对几何进行增密。
趋于输出缓冲区的路径通常不是测地线曲线。计算所得缓冲区曲线与理论缓冲区曲线的最大允许偏差为 10 米。用于计算这一偏移曲线的方法称为 tracés parallèles。有关该方法的详细信息,请参阅:
- Murphy B., Collier P., Mitchell D. and Hirst W. (1999) - "Maritime Boundary Generation from Straight Baselines Defined as Geodesics".Proceedings of the International Conference on Technical Aspects of Maritime Boundary Delineation and Delimitation.Monaco, 9–10 September, 1999.
BUFF_DIST 字段
输出要素类的 BUFF_DIST 字段中的值使用“输入要素”坐标系的线性单位。例如,如果在工具中指定 50 米缓冲距离,但输入数据集的坐标系使用英尺作为线性单位,则输出 BUFF_DIST 字段中,50 米将转换为英尺。对此有两种例外情况:
- 如果“输入要素”具有地理坐标系,且缓冲距离以线性单位(例如千米或英里)指定,则 BUFF_DIST 字段中的值将为米。
- 如果“输入要素”的空间参考“未知”,将不会应用转换,所以 BUFF_DIST 字段中的值即为所输入的值。
下表总结了 BUFF_DIST 单位转换执行与否的方案。
输入要素坐标系 |
缓冲距离单位 |
单位转换 |
---|---|---|
地理 |
角度或线性 |
转换为米 |
已投影 |
角度 |
转换为输入坐标系单位 |
已投影 |
Linear |
转换为输入坐标系单位 |
地理或投影 |
未知 |
假定为输入坐标系单位 |
未知 |
角度或线性 |
无转换 |
BUFF_DIST 值的单位始终为设置输出坐标系环境时使用的单位。