城市交通模拟(一):SUMO基础知识/使用命令行应用程序

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 
 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 * 选项将成为 配置文件内的内容。对于布尔选项,对于激活,该值应为“ true”,“ on”,“ yes”,“ 1”或“ x”,对于激活为“ false”,“ off”,“ no”或“ 0”停用该选项(此处大小写无关紧要)。

对于上面的示例,配置文件(如下所示,将其保存在“ test.sumocfg”下)如下所示:


    
        
        
        
    


input上面给出的部分仅具有文档目的,而没有功能含义。

不太冗长但等效的版本如下所示:


    
    
    


根据相扑执行调用(同时使用两个配置版本)将是:

sumo.exe -c test.sumocfg

这意味着我们仅使用选项**--configuration-file -c **给出配置文件的名称,而不是参数。如果您不想在命令行上提供其他选项,则也可以省略“ -c”:

sumo.exe test.sumocfg

配置文件的命名约定

根据目标应用程序,配置文件具有不同的扩展名。强烈建议您遵循此约定。为了在sumo-gui中使用仿真配置, 甚至需 要这样做-sumo -gui只能读取名为“ * .sumocfg”的仿真配置。

可在使用的文件扩展名的页面上找到配置扩展名的所有约定 。

配置文件与命令行参数

除配置文件外,还可以在命令行上提供其他命令行参数。如果在命名的配置文件中以及在命令行中给定的参数被设置,则使用命令行中给定的值(覆盖配置文件中的一个)。如果要禁用在配置文件中启用的布尔选项,则需要在命令行上显式提供“ false”值,例如--verbose false

生成配置文件,模板和方案

SUMO软件包的应用程序允许您生成配置文件模板。可以保存一个空配置-配置模板。这可以通过使用**--save-template **来完成。在这种情况下,配置将仅包含填充有其默认值的参数。

也可以保存包含当前设置值的配置文件。使用选项**--save-configuration **可以强制应用程序执行此操作。

最后但并非最不重要的一点是,可以生成XML模式(使用选项**--save-schema **)来验证配置文件。对于SUMO应用程序,此架构应等效于https://sumo.dlr.de/xsd/sumoConfiguration.xsd上的架构 (分别适用于其他可执行文件)。请注意,该模式比SUMO选项解析器更为严格,因为它仅验证上面给出的详细版本。

无论哪种情况,如果都需要有关参数的更多信息,则还可以传递--save-commented选项。然后,生成有关每个参数的一些其他注释。

配置文件中的环境变量

可以在配置文件中引用环境变量。引用环境变量的语法为$ {VARNAME}。例如,您的配置文件可能引用名为NETFILENAME的变量,其中包含网络文件的名称以及以下配置设置。


    
        
    


常用选项

SUMO套件中的应用程序共享多个选项。它们在下面给出。

报告选项

选项 描述
**-v **
**--verbose ** 切换到详细输出;默认值:false**
**--print-options **<书本> 在处理之前打印选项值;默认值:false**
-?
**--help ** 打印此屏幕;默认值:false**
**-V **
**--version ** 打印当前版本;默认值:false**
**-X **
--xml验证 设置XML输入的模式验证方案(“从不”,“自动”或“始终”);默认值:自动**
**--xml-validation.net ** 设置SUMO网络输入的模式验证方案(“从不”,“自动”或“始终”);默认值:从不**
**-W **
**--no-warnings ** 禁用警告输出;默认值:false**
**-l **<文件>
**--log **<文件> 将所有消息写入FILE(表示冗长)
**--message-log **<文件> 将所有非错误消息写入FILE(表示冗长)
**--error-log **<文件> 将所有警告和错误写入FILE

日志选项--log--message-log也启用详细输出,但仅输出到给定的文件中(除非也提供了--verbose)。错误始终会打印到控制台(除了可能的日志文件)。

该XML验证选项使XML模式处理 XML分析器。这将对输入内容进行基本验证,因此强烈建议特别为初学者使用,因为它很容易在输入内容中发现拼写错误,否则可能会被忽略。仅当在输入文件中声明了XML模式时,才执行验证。

随机数选项

这些选项配置如何确定随机数生成器的种子。相同的种子导致相同的生成随机数序列。

默认情况下,种子是硬编码的固定值。因此,只要所有配置设置保持相同,重复模拟运行的输出将相同。要更改此设置,请使用以下选项之一。

选项 描述
--seed <整数> 为随机数生成器设置特定的种子。通过使用不同的值,您可以进行不同但仍可重现的模拟运行。
- 随机 让SUMO选择种子。如果可用,则种子将基于/ dev / urandom的输出,否则种子将从当前系统时间得出。此选项优先于**--seed **选项。

注意:-- random优先于--seed 意味着无法在配置文件中 设置--random并在命令行中使用**--seed **覆盖它。将来可能有解决方案。

生成和读取文件

从SUMO包读取或生成的工具中几乎每个文件都是用XML编写的。在开始使用SUMO之前,您应该熟悉 XML。SUMO允许您从不同来源导入文件,但是“本地” SUMO文件-道路网络描述,路线和/或需求描述,基础结构描述等-是SUMO特定的,不遵循任何标准。可以使用简单的文本编辑器来读取和写入XML文件,我们通常这样做。但是,还存在其他几种工具,并且可以重复使用。

对于SUMO使用的某些文件类型,存在xsd(XML模式定义)。请查阅文件扩展名页面以获取描述的文件格式列表。

使用XML的提示

  • Windows上XML文件的默认查看器是Internet Explorer。它可以用于验证XML文件。如果Internet Explorer可以完全加载XML文件的语法,则该语法应有效。
  • Eclipse允许遵循给定的xsd(XML模式定义)来编写XML文档。

写文件

有几个选项希望将文件名()作为参数写入。在命令行中给出时,假定给定路径是相对于当前工作目录的。当在配置文件中给出文件路径时,假定该文件路径相对于配置文件的路径。当然也可以使用绝对路径。

通常,具有相同名称的现有文件会被覆盖而不会发出警告。该目录必须存在,应在其中写入输出文件。

除了写入文件之外,其他特殊符号还允许:

  • 写入空设备(根本没有输出):使用“ NUL”或“ / dev / null”作为文件名(两种表示法均与平台无关)
  • 写入套接字:使用“ ”作为文件名
  • 写入标准输出(在命令行上打印):使用“ stdout”或“-”作为文件名
  • 写入stderr:使用“ stderr”作为文件名
  • 文件名中的特殊字符串“ TIME”将替换为应用程序的开始时间

目前,无法从套接字或stdin读取输入。

作为修改输出文件名的简单方法,提供了**--output-prefix **选项。给定的字符串将放在应用程序编写的所有文件之前。

注意

允许多个日期源(即检测器定义)写入同一输出文件。

从命令行使用Python工具

SUMO分发的许多工具(在 / 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。

你可能感兴趣的:(城市交通模拟(一):SUMO基础知识/使用命令行应用程序)