形状 (Shapes)

circlePolygon.py#

根据自定义半径和顶点数生成圆形多边形。

<SUMO\>/tools/shape/circlePolygon.py X,Y,RADIUS,NUMVERTICES [x2,y2,radius2,points2] ....
  • <X>: 多边形中心 X 坐标
  • <Y>: 多边形中心 Y 坐标
  • <RADIUS>: 多边形半径
  • <NUMVERTICES>: 顶点数量

CSV2polyconvertXML.py#

将包含 POI 列表的给定 CSV 文件转换为可由 POLYCONVERT 读取的 XML 文件。

<SUMO\>/tools/shape/CSV2polyconvertXML.py <CSV_FILE> <OUTPUT_FILE> <VALUENAME>[,<VALUENAME>]*
  • <CSV_FILE>: 待转换的 CSV 文档
  • <OUTPUT_FILE>: 与 POLYCONVERT 兼容的 POI 文件

pois2inductionLoops.py#

将给定 PoI 文件中位于车道上的 PoI 转换为感应线圈检测器。每个 PoI 都会被复制以覆盖道路的所有车道。检测器被命名为 "<POINAME>__l<LANE_INDEX>"。

<SUMO\>/tools/shape/pois2inductionLoops.py <NET> <POIS> <OUTPUT>
  • <NET>: 用于检索车道数量的路网
  • <POIS>: 包含 PoI 的文件
  • <OUTPUT>: 用于写入检测器的文件

该工具使用 <SUMO>/tools/lib/sumopoi.py 库。

poi_alongRoads.py#

在给定路网的指定边缘 (Edge) 上空间分布 POI。

目前,POI 位于所有边缘的中间,不考虑边缘的类型(街道、路口)。边缘可以按任意顺序给出,连接的边缘会自动找到。因此:不允许交叉的连接边缘链 -> 这需要分两次运行此脚本。输出写入文件 'pois.add.xml'。

<SUMO\>/tools/shape/poi_alongRoads.py <NET> <EDGE_ID>[,<EDGE_ID>]* <DISTANCE>
  • <NET>: 用于检索几何形状的路网
  • <EDGE_ID>[,<EDGE_ID>]*: 要沿其分布的边缘
  • <DISTANCE>: PoI 之间的距离

边缘之间用逗号分隔,中间不留空格。PoI 之间的距离可以是任何正实数。PoI 存储时类型为 "default",颜色为 "1,0,0",层级为 "0"。

该工具使用 <SUMO>/tools/lib/sumonet.py 库。

poi_at_stops.py#

在给定路网的指定边缘上空间分布 POI。

生成一个 PoI 文件,其中包含给定路网中每个停靠点 (Stop) 的 PoI。

<SUMO\>/tools/shape/poi_at_stops.py <NET> <STOPS>
  • <NET>: 路网
  • <STOPS>: 要从中读取停靠点位置的停靠点文件

PoI 存储时类型为 "default",颜色为 "1,0,0",层级为 "0"。

该工具使用 <SUMO>/tools/lib/sumonet.py 库。

poi_atTLS.py#

在给定路网的指定边缘上空间分布 POI。

生成一个 PoI 文件,其中包含给定路网中每个受信号灯 (TLS) 控制的交叉口的 PoI。

<SUMO\>/tools/shape/poi_atTLS.py <NET> [nojoin]
  • <NET>: 用于读取交通信号灯 (tls) 位置的路网
  • [nojoin]: 如果给出 "nojoin",则将在交通灯覆盖的所有节点上构建 PoI;否则,如果一个交通灯跨越多个交叉口,则仅为该交通灯构建一个 PoI,位于该交通灯控制的所有交叉口的中心

PoI 存储时类型为 "default",颜色为 "1,0,0",层级为 "0"。

该工具使用 <SUMO>/tools/lib/sumonet.py 库。

poly2edgedata.py#

将带有参数的多边形转换为具有属性的边缘数据 (edgedata)。 对于每个多边形,选择一个能提供最佳几何匹配的唯一边缘。

<SUMO\>/tools/shape/poly2edgedata.py <POLYGONS> -n NETFILE -o OUTPUT_EDGEDATA

其他选项:

  • --split-attributes--nosplit-attributes 支持单个多边形适用于道路双向的情况,相关数据必须为正向和反向边缘拆分(例如交通流量计数)。
  • --filter ATTR,MIN,MAX 支持过滤掉属性 ATTR 不在范围 [MIN,MAX] 内的多边形。
  • --radius: 最大匹配半径(默认 20)
  • --min-length: 避免匹配到过短的边缘(默认 10)
  • --angle-tolerance: 避免边缘和形状角度差异过大时进行匹配(默认 20 度)

Note

多边形可以通过 polyconvert 从 OSM、shapefile 或 geojson 获取。

patches (补丁)#

选项 --patchfile 加载指令以在特殊情况下修改匹配。 补丁文件中支持以下语法(每行一个补丁):

# 以 '#' 开头的行被视为注释
# rev 将 EDGEID 的反向边缘覆盖为 REVEDGEID
rev EDGEID REVEDGEID
# edg 将 POLYID 分配的边缘覆盖为 EDGEID
edg POLYID EDGEID
# dat 将 POLYID 的数据属性 ATTR 覆盖为值 VALUE
dat POLYID ATTR VALUE

任何 ID 或 VALUE 都可以设置为 'None',以表示:

  • 不应分配反向边缘
  • 不应映射多边形
  • 应忽略数据