SUMO软件包中的大多数应用程序都是命令行工具。当前,只有sumo-gui和netedit没有。如果您不知道“命令行”是什么,我们将为您提供有关基本计算机技能的页面。
下面介绍了SUMO-suite应用程序的一些特性。
从命令行使用SUMO应用程序
SUMO应用程序是纯可执行文件。您只需从命令行输入它们的名称来启动它们;例如 netgenerate由
netgenerate.exe
在Windows和
netgenerate
在Linux下。
这只是启动应用程序(在这种情况下为netgenerate)。由于未提供任何参数,因此应用程序不知道该怎么办,而仅输出有关其自身的信息:
Eclipse SUMO netgenerate Version 1.6.0
Build features: Linux-4.1.39-56-default Proj GDAL GUI
Copyright (C) 2001-2020 German Aerospace Center (DLR) and others; https://sumo.dlr.de
License EPL-2.0: Eclipse Public License Version 2 <https://eclipse.org/legal/epl-v20.html>
Use --help to get the list of options.
选件
每个应用程序都有一组选项,这些选项定义应处理或生成的文件,或者定义应用程序的行为。通常,应用程序至少需要两个参数-一个输入文件和一个输出文件-但几乎总是有更多的参数用于细粒度控制。每个应用程序的选项都在应用程序的描述中进行了描述。在下文中,描述了如何设置选项。
在命令行上设置选项
有两种类型的选项:布尔型选项,不需要参数,如果存在选项,则设置为true(但是接受通常的布尔型值,例如“ true”和“ false”作为参数);以及选项,需要参数。在命令行上使用参数设置选项包括两部分-选项名称和选项的值。例如,如果希望模拟加载某个公路网“ mynet.net.xml”,则必须编写以下内容:
--net mynet.net.xml
在这种情况下,前面的'-'表示该选项的长名称紧随其后(“ net”)。在空格之后,必须给出选项的值。也可以使用'='代替空格:
--net=mynet.net.xml
一些常用的选项可以缩写。--net-option的缩写 是-n。以下与上面的两个示例具有相同的效果:
-n mynet.net.xml
请注意,缩写用单个“-”表示。
注意
并非所有缩写都在SUMO套件的应用程序中具有相同的含义。
期权价值类型
SUMO应用程序知道希望设置什么样的值。例如,netgenerate允许您设置默认的通道数,当然,该数量必须是整数值。在这种情况下,将给出字符串或其他内容,这将被识别,并且应用程序将在启动时给出错误消息。请注意,浮点数中的小数点使用点(“。”)进行编码。
值类型的一种特殊情况是列表,例如要加载到模拟中的其他文件的列表。提供多个文件时,必须使用“,”将文件分开。这也计入其他值类型的列表,如整数或浮点数。
配置文件
由于选项列表可能会很长,因此引入了配置文件。您可以设置一个配置文件,其中包含要用来启动应用程序的所有参数。此外,您仅需使用此配置文件来启动应用程序。
配置文件是具有名为的根元素的XML文件 configuration
。选项被写为元素名称,所需值存储在属性 value
(或v
)中。命令行上提供的--net-file * test.net.xml * 选项将成为 <net-file value="test.net.xml"/>
配置文件内的内容。对于布尔选项,对于激活,该值应为“ true”,“ on”,“ yes”,“ 1”或“ x”,对于激活为“ false”,“ off”,“ no”或“ 0”停用该选项(此处大小写无关紧要)。
对于上面的示例,配置文件(如下所示,将其保存在“ test.sumocfg”下)如下所示:
<configuration>
<input>
<net-file value="test.net.xml"/>
<route-files value="test.rou.xml"/>
<additional-files value="test.add.xml"/>
</input>
</configuration>
input
上面给出的部分仅具有文档目的,而没有功能含义。
不太冗长但等效的版本如下所示:
<configuration>
<n v="test.net.xml"/>
<r v="test.rou.xml"/>
<a v="test.add.xml"/>
</configuration>
根据相扑执行调用(同时使用两个配置版本)将是:
sumo.exe -c test.sumocfg
这意味着我们仅使用选项**--configuration-file <FILE>或-c **<FILE>给出配置文件的名称,而不是参数。如果您不想在命令行上提供其他选项,则也可以省略“ -c”:
sumo.exe test.sumocfg
配置文件的命名约定
根据目标应用程序,配置文件具有不同的扩展名。强烈建议您遵循此约定。为了在sumo-gui中使用仿真配置, 甚至需 要这样做-sumo -gui只能读取名为“ * .sumocfg”的仿真配置。
可在使用的文件扩展名的页面上找到配置扩展名的所有约定 。
配置文件与命令行参数
除配置文件外,还可以在命令行上提供其他命令行参数。如果在命名的配置文件中以及在命令行中给定的参数被设置,则使用命令行中给定的值(覆盖配置文件中的一个)。如果要禁用在配置文件中启用的布尔选项,则需要在命令行上显式提供“ false”值,例如--verbose false
生成配置文件,模板和方案
SUMO软件包的应用程序允许您生成配置文件模板。可以保存一个空配置-配置模板。这可以通过使用**--save-template **<FILE>来完成。在这种情况下,配置将仅包含填充有其默认值的参数。
也可以保存包含当前设置值的配置文件。使用选项**--save-configuration **<FILE>可以强制应用程序执行此操作。
最后但并非最不重要的一点是,可以生成XML模式(使用选项**--save-schema **<FILE>)来验证配置文件。对于SUMO应用程序,此架构应等效于https://sumo.dlr.de/xsd/sumoConfiguration.xsd上的架构 (分别适用于其他可执行文件)。请注意,该模式比SUMO选项解析器更为严格,因为它仅验证上面给出的详细版本。
无论哪种情况,如果都需要有关参数的更多信息,则还可以传递--save-commented选项。然后,生成有关每个参数的一些其他注释。
配置文件中的环境变量
可以在配置文件中引用环境变量。引用环境变量的语法为$ {VARNAME}。例如,您的配置文件可能引用名为NETFILENAME的变量,其中包含网络文件的名称以及以下配置设置。
<configuration >
<input>
<net-file value="${NETFILENAME}.net.xml"/>
</input>
</configuration>
常用选项
SUMO套件中的应用程序共享多个选项。它们在下面给出。
报告选项
选项 | 描述 |
---|---|
**-v **<BOOL> | |
**--verbose **<BOOL> | 切换到详细输出;默认值:false** |
**--print-options **<书本> | 在处理之前打印选项值;默认值:false** |
-? <BOOL> | |
**--help **<BOOL> | 打印此屏幕;默认值:false** |
**-V **<BOOL> | |
**--version **<BOOL> | 打印当前版本;默认值:false** |
**-X **<STRING> | |
--xml验证 <STRING> | 设置XML输入的模式验证方案(“从不”,“自动”或“始终”);默认值:自动** |
**--xml-validation.net **<STRING> | 设置SUMO网络输入的模式验证方案(“从不”,“自动”或“始终”);默认值:从不** |
**-W **<BOOL> | |
**--no-warnings **<BOOL> | 禁用警告输出;默认值:false** |
**-l **<文件> | |
**--log **<文件> | 将所有消息写入FILE(表示冗长) |
**--message-log **<文件> | 将所有非错误消息写入FILE(表示冗长) |
**--error-log **<文件> | 将所有警告和错误写入FILE |
日志选项--log和--message-log也启用详细输出,但仅输出到给定的文件中(除非也提供了--verbose)。错误始终会打印到控制台(除了可能的日志文件)。
该XML验证选项使XML模式处理 XML分析器。这将对输入内容进行基本验证,因此强烈建议特别为初学者使用,因为它很容易在输入内容中发现拼写错误,否则可能会被忽略。仅当在输入文件中声明了XML模式时,才执行验证。
随机数选项
这些选项配置如何确定随机数生成器的种子。相同的种子导致相同的生成随机数序列。
默认情况下,种子是硬编码的固定值。因此,只要所有配置设置保持相同,重复模拟运行的输出将相同。要更改此设置,请使用以下选项之一。
选项 | 描述 |
---|---|
--seed <整数> | 为随机数生成器设置特定的种子。通过使用不同的值,您可以进行不同但仍可重现的模拟运行。 |
- 随机 | 让SUMO选择种子。如果可用,则种子将基于/ dev / urandom的输出,否则种子将从当前系统时间得出。此选项优先于**--seed **<INT>选项。 |
注意:-- random优先于--seed <INT>意味着无法在配置文件中 设置--random并在命令行中使用**--seed **<INT>覆盖它。将来可能有解决方案。
生成和读取文件
从SUMO包读取或生成的工具中几乎每个文件都是用XML编写的。在开始使用SUMO之前,您应该熟悉 XML。SUMO允许您从不同来源导入文件,但是“本地” SUMO文件-道路网络描述,路线和/或需求描述,基础结构描述等-是SUMO特定的,不遵循任何标准。可以使用简单的文本编辑器来读取和写入XML文件,我们通常这样做。但是,还存在其他几种工具,并且可以重复使用。
对于SUMO使用的某些文件类型,存在xsd(XML模式定义)。请查阅文件扩展名页面以获取描述的文件格式列表。
使用XML的提示
- Windows上XML文件的默认查看器是Internet Explorer。它可以用于验证XML文件。如果Internet Explorer可以完全加载XML文件的语法,则该语法应有效。
- Eclipse允许遵循给定的xsd(XML模式定义)来编写XML文档。
写文件
有几个选项希望将文件名(<FILE>)作为参数写入。在命令行中给出时,假定给定路径是相对于当前工作目录的。当在配置文件中给出文件路径时,假定该文件路径相对于配置文件的路径。当然也可以使用绝对路径。
通常,具有相同名称的现有文件会被覆盖而不会发出警告。该目录必须存在,应在其中写入输出文件。
除了写入文件之外,其他特殊符号还允许:
- 写入空设备(根本没有输出):使用“ NUL”或“ / dev / null”作为文件名(两种表示法均与平台无关)
- 写入套接字:使用“ <HOST>:<PORT>”作为文件名
- 写入标准输出(在命令行上打印):使用“ stdout”或“-”作为文件名
- 写入stderr:使用“ stderr”作为文件名
- 文件名中的特殊字符串“ TIME”将替换为应用程序的开始时间
目前,无法从套接字或stdin读取输入。
作为修改输出文件名的简单方法,提供了**--output-prefix **<STRING>选项。给定的字符串将放在应用程序编写的所有文件之前。
注意
允许多个日期源(即检测器定义)写入同一输出文件。
从命令行使用Python工具
SUMO分发的许多工具(在 <SUMO_HOME> / tools文件夹中)都是用python 编程语言编写的。要使用它们,必须在计算机上安装python 2.7。
然后,您需要确保设置了环境变量SUMO_HOME。最简单的方法是使用start-command-line.bat打开命令行窗口 。
此外,您需要确保您的计算机知道在哪里可以找到python工具。最简单(但有点麻烦)的方法是使用完整路径运行该工具:
C:\Users\yourname>D:\path_to_sumo\tools\randomTrips.py ... arguments ...
或者,您可以将工具所在的目录添加到 PATH-Variable。