概述#
polyconvert 用于从不同来源导入几何 图形(多边形或兴趣点),并将其转换为可使用 sumo-gui 和 netedit 进行可视化的表示形式。
- 目的: 多边形和 POI 的导入、转换和投影
- 系统: 可移植(已在 Linux/Windows 上测试);在命令行运行
- 输入(必需): 多边形或 POI
- 输出: SUMO 图形文件
- 编程语言: C++
功能#
- 导入 OSM、VISUM、dlr-navteq、XML、ArcView shape 文件
- 按类型设置导入参数
- 使用给定的 proj.4 定义或通过匹配的网络进行投影
- 写入可在 sumo-gui 和 sumo 中使用的模拟图形文件
使用说明#
polyconvert 能够从不同的文件类型导入图形。通常,为了导入特定类型的数据,使用类型名称作为选项名称,值表示文件的位置。例如:
polyconvert --visum mynet.net -o converted.poi.xml
从 VISUM 网络文件导入。
此外,如果您已经投影了 SHP 文件,可以直接将选项 shapefile.traditional-axis-mapping 和 proj-utm 设置为 true,以避免在 Polyconvert 中再次投影多边形。
选项#
您可以使用 XML 模式定义文件来设置 polyconvert 配置: polyconvertConfiguration.xsd。
配置#
SUMO 套件的所有应用程序都以相同的方式处理配置选项。这些选项在 Basics/Using the Command Line Applications#Configuration Files 中讨论。
| 选项 | 描述 |
|---|---|
| -c <FILE> --configuration-file <FILE> |
启动时加载指定的配置文件 |
| -C <FILE> --save-configuration <FILE> |
将当前配置保存到 FILE |
| --save-configuration.relative <BOOL> | 保存配置时强制使用相对路径;默认值: false |
| --save-template <FILE> | 将配置模板(空)保存到 FILE |
| --save-schema <FILE> | 将配置模式保存到 FILE |
| --save-commented <BOOL> | 向保存的模板、配置或模式添加注释;默认值: false |
输入#
polyconvert 能够根据导入图形的“类型”应用不同的属性。并非所有导入格式都包含类型信息。例如,使用 shape 文件时,通常一种要素类型的所有实例都存储在一个特定的 shape 文件中。导入 shape 文件时,polyconvert 支持虚拟文件系统。因此,如果您的图形在 myshapes.zip 中,且主文件名为 arcview.shp,您可以通过 polyconvert --shapefile /vsizip/myshapes.zip/arcview 导入它们(--shapefile 是 --shapefile-prefixes 的别名)。
| 选项 | 描述 |
|---|---|
| -n <FILE> --net-file <FILE> |
加载 SUMO 网络文件作为偏移量和投影的参考 |
| --dlr-navteq-poly-files <FILE> | 从 FILE 读取多边形,假设其编码为 DLR-Navteq (Elmar) 格式 |
| --dlr-navteq-poi-files <FILE> | 从 FILE 读取 POI,假设其编码为 DLR-Navteq (Elmar) 格式 |
| --visum-files <FILE> | 从 FILE 读取多边形,假设其为 Visum 网络 |
| --visum.language-file <FILE> | 从 FILE 加载语言映射 |
| --xml-files <FILE> | 从 FILE 读取 POI 和形状,假设其编码为 XML |
| --osm-files <FILE> | 从 FILE 读取 POI,假设其编码为 OSM |
| --osm.keep-full-type <BOOL> | 类型将由键值对组成;默认值: false |
| --osm.use-name <BOOL> | ID 将由给定的 'name' 属性设置;默认值: false |
| --osm.merge-relations <FLOAT> | 如果 FLOAT >= 0,则从关系的所有方式组装一个多边形,前提是它们之间的间隙都低于 FLOAT;默认值: -1 |
| --geojson-files <FILE> | 从 geojson FILE 读取形状 |
| --shapefile-prefixes <FILE> | 从 shapefiles FILE 读取形状 |
| --shapefile.guess-projection <BOOL> | 猜测 shapefile 的投影;默认值: false |
| --shapefile.traditional-axis-mapping <BOOL> | 使用传统轴顺序(lon, lat);默认值: false |
| --shapefile.id-column <STRING> | 定义 ID 所在的列 |
| --shapefile.type-columns <STRING[ ]> | 定义哪些列构成类型 ID(逗号分隔列表) |
| --shapefile.use-running-id <BOOL> | 使用流水号作为 ID;默认值: false |
| --shapefile.add-param <BOOL> | 将所有附加列提取为参数;默认值: false |
| --shapefile.fill <STRING> | [auto,true,false]。强制 'fill' 状态为给定值。默认 'auto' 尝试从数据类型确定 |
| --type-file <FILE> | 从 FILE 读取类型 |
输出#
所有未被丢弃的导入形状都将写入必须使用 --output <FILE> 定义的文件中。
| 选项 | 描述 |
|---|---|
| --write-license <BOOL> | 将许可信息包含在每个输出文件中;默认值: false |
| --write-metadata <BOOL> | 写入可解析的元数据(配置等)而不是注释;默认值: false |
| --output-prefix <STRING> | 应用于所有输出文件的前缀。特殊字符串 'TIME' 将被当前时间替换。 |
| --precision <INT> | 定义浮点数输出的小数点后位数;默认值: 2 |
| --precision.geo <INT> | 定义 lon, lat 输出的小数点后位数;默认值: 6 |
| --output.compression <STRING> | 定义标准压缩算法(目前仅适用于 parquet 输出) |
| --output.format <STRING> | 如果无法从文件名推导,则定义标准输出格式('xml', 'csv', 'parquet');默认值: xml |
| --output.column-header <STRING> | 如何从属性名推导列头('none', 'tag', 'auto', 'plain');默认值: tag |
| --output.column-separator <STRING> | CSV 输出中的分隔符;默认值: ; |
| -H <BOOL> --human-readable-time <BOOL> |
将时间值写为 hour:minute:second 或 day:hour:minute:second,而不是秒;默认值: false |
| -o <FILE> --output-file <FILE> |
将生成的多边形/POI 写入 FILE |
| --dlr-tdp-output <FILE> | 将生成的多边形/POI 写入具有给定前缀的 dlr-tdp 文件 |
投影#
polyconvert 的主要用途之一是对读取的形状应用投影。通常,我们希望形状与先前导入的道路网络对齐。在这种情况下,应使用 --net-file <FILE> 指定网络。但也可以使用不同的投影。
| 选项 | 描述 |
|---|---|
| --simple-projection <BOOL> | 使用简单方法进行投影;默认值: false |
| --proj.scale <FLOAT> | 输入坐标的缩放因子;默认值: 1 |
| --proj.rotate <FLOAT> | 输入坐标的旋转(顺时针度数);默认值: 0 |
| --proj.utm <BOOL> | 确定 UTM 区域(用于基于 WGS84 椭球体的通用横轴墨卡托投影);默认值: false |
| --proj.dhdn <BOOL> | 确定 DHDN 区域(用于基于 bessel 椭球体的横轴墨卡托投影,“Gauss-Krueger”);默认值: false |
| --proj <STRING> | 使用 STR 作为投影的 proj.4 定义;默认值: ! |
| --proj.inverse <BOOL> | 反转投影;默认值: false |
| --proj.dhdnutm <BOOL> | 从 Gauss-Krueger 转换为 UTM;默认值: false |
| --proj.plain-geo <BOOL> | 在输出中写入地理坐标;默认值: false |
修剪#
有时,形状覆盖的区域比网络大得多。为了减少数据量,可以强制 polyconvert 在网络边界或给定边界上修剪导入的数据。完全位于此边界之外的读取形状在这些情况下将被丢弃。
| 选项 | 描述 |
|---|---|
| --prune.in-net <BOOL> | 启用网络边界修剪;默认值: false |
| --prune.in-net.offsets <STRING> | 使用 FLOAT,FLOAT,FLOAT,FLOAT 作为添加到网络边界的偏移量定义。正值在所有方向上增大边界,而负值则缩小边界;默认值: 0,0,0,0 |
| --prune.boundary <STRING> | 使用 STR 作为修剪边界 |
| --prune.keep-list <STRING> | STR 中的项目将被保留,即使位于边界之外 |
| --prune.explicit <STRING[ ]> | 将删除 STR[] 中具有名称的项目 |
处理#
| 选项 | 描述 |
|---|---|
| --offset.x <FLOAT> | 将 FLOAT 添加到网络 x 位置;默认值: 0 |
| --offset.y <FLOAT> | 将 FLOAT 添加到网络 y 位置;默认值: 0 |
| --offset.z <FLOAT> | 将 FLOAT 添加到网络 z 位置;默认值: 0 |
| --all-attributes <BOOL> | 导入所有属性作为键/值对;默认值: false |
| --ignore-errors <BOOL> | 在输入损坏时继续;默认值: false |
| --poi-layer-offset <FLOAT> | 将 FLOAT 添加到每个 POI 的层值(即将其提升到多边形之上);默认值: 0 |
| --flatten <BOOL> | 移除所有 z 数据;默认值: false |
建筑默认值#
当导入未提供类型相关属性的形状时,将使用以下默认值,这些值可以在命令行上更改。
| 选项 | 描述 |
|---|---|
| --color <STRING> | 将 STR 设置为默认颜色;默认值: 0.2,0.5,1. |
| --prefix <STRING> | 将 STR 设置为默认前缀 |
| --type <STRING> | 将 STR 设置为默认类型;默认值: unknown |
| --fill <BOOL> | 默认填充多边形;默认值: true |
| --icon <STRING> | 将 STR 设置为默认图标 |
| --layer <FLOAT> | 将 FLOAT 设置为默认层;默认值: -1 |
| --discard <BOOL> | 将默认操作设置为丢弃;默认值: false |
报告#
SUMO 套件的所有应用程序都以相同的方式处理大多数报告选项。这些选项在 Basics/Using the Command Line Applications#Reporting Options 中讨论。
| 选项 | 描述 |
|---|---|
| -v <BOOL> --verbose <BOOL> |
切换到详细输出;默认值: false |
| --print-options <BOOL> | 在处理前打印选项值;默认值: false |
| -? <BOOL> --help <BOOL> |
打印此屏幕或选定主题;默认值: false |
| -V <BOOL> --version <BOOL> |
打印当前版本;默认值: false |
| -X <STRING> --xml-validation <STRING> |
设置 XML 输入的模式验证方案("never", "local", "auto" 或 "always");默认值: local |
| --xml-validation.net <STRING> | 设置 SUMO 网络输入的模式验证方案("never", "local", "auto" 或 "always");默认值: never |
| -W <BOOL> --no-warnings <BOOL> |
禁用警告输出;默认值: false |
| --aggregate-warnings <INT> | 当同一类型的警告超过 INT 次时进行聚合;默认值: -1 |
| -l <FILE> --log <FILE> |
将所有消息写入 FILE(意味着详细模式) |
| --message-log <FILE> | 将所有非错误消息写入 FILE(意味着详细模式) |
| --error-log <FILE> | 将所有警告和错误写入 FILE |
| --log.timestamps <BOOL> | 在所有消息前写入时间戳;默认值: false |
| --log.processid <BOOL> | 在所有消息前写入进程 ID;默认值: false |
| --language <STRING> | 消息中使用的语言;默认值: C |
