SUMO入门(二) - 基础知识

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gaoruowen1/article/details/83957250

SUMO入门(二) - 基础知识

基础符号

<SUMO_HOME> 将 SUMO-package 保存到的路径

参考文件类型 相关描述
<NETWORK_FILE> NETGENERATENETCONVERT 构建的SUMO网络文件 SUMO network file
<ROUTES_FILE> DUAROUTERJTRROUTER 或 手工建立 的SUMO路由文件 SUMO routes file
<TYPE_FILE> SUMO边缘类型文件 SUMO edge type file,手动构建或下载
<OSM_FILE> 从 OpenStreetMap 导出的 OpenStreetMap 文件

安装SUMO

参考Installing

从命令行运行程序

SUMO由许多用于不同模拟任务的独立程序组成。只有程序sumo-gui.exe SUMO-GUI 具有图形用户界面(GUI)其他程序必须从命令行调用

首先,必须打开命令行。在Windows上,启动“cmd.exe”,出现一个黑色的窗口,即命令行。

命令行允许通过键入程序名称后跟程序选项来启动程序。由于这可以自动化,因此对于重复性任务可能比使用GUI更舒适。命令看起来像这样

netconvert --node-files=hello.nod.xml --edge-files=hello.edg.xml --output-file=hello.net.xml

这里netconvert程序的名称,其余的命令设置了该程序的选项


方法一(start-command-line.bat):
在下载的SUMO文件夹中,有一个目录bin。 该目录包含名为 start-command-line.bat 的批处理文件,该批处理文件启动命令行并确保您可以执行SUMO程序。

1)双击执行 start-command-line.bat
2)使用命令cd(更改目录)导航到包含配置和网络文件的目录
3)输入一个命令,如下

netconvert --node-files=hello.nod.xml --edge-files=hello.edg.xml --output-file=hello.net.xml


方法二(命令行):
要使用命令行,请执行以下步骤

1)开始 - >运行,键入cmd并按Enter键。
2)使用命令cd(更改目录)导航到包含配置和网络文件的目录
3)输入一个命令,如下

netconvert --node-files=hello.nod.xml --edge-files=hello.edg.xml --output-file=hello.net.xml

如果您收到错误,如 command not found 您的计算机不知道去哪里找 netconvert.exe

如果SUMO版本的文件位于C:\ sumo-0.12.2您可以输入netconvert.exe的完整路径,如下所示:

C:\sumo-0.12.2\bin\netconvert --node-files=hello.nod.xml --edge-files=hello.edg.xml --output-file=hello.net.xml


如果您觉得这种方式比较麻烦,但要从命令行轻松运行程序,您必须配置PATH变量SUMO_HOME变量。许多工具都需要将 环境变量SUMO_HOME 设置为sumo安装的基本目录,即包含文件夹bin和tools的目录。操作如下:

右键单击“我的电脑”,然后单击“属性”。
单击“高级”选项卡。
单击环境变量。
在用户变量下选择PATH,然后单击编辑。如果不存在此类变量,则必须使用New-Button创建它
C: \Program Files\sumo-1.0.1\bin 附加到PATH值的末尾(不要删除现有值!)
在用户变量下选择SUMO_HOME,然后单击编辑。如果不存在此类变量,则必须使用New-Button创建它。
C: \Program Files\sumo-1.0.1 设置为SUMO_HOME变量的值

注意:用您的sumo目录替换 C: \Program Files\sumo-1.0.1


使用命令行

SUMO应用程序是普通的可执行文件。 只需从命令行键入其名称即可启动它们。例如,程序NETGENERATE在windows下被调用,如下:

netgenerate.exe

这只是启动应用程序。 由于没有给出参数,应用程序不知道该怎么做,只打印自己的信息:

每个应用程序都有一组程序选项,用于定义应处理或生成哪些文件、或定义应用程序行为的选项。 通常,应用程序至少需要两个参数: 输入文件和输出文件,但总是有更多参数用于细粒度控制。 每个应用程序的选项都在应用程序的描述中进行了描述。


选项Options

SUMO相关Option

在命令行上设置选项
在命令行中设置参数选项由两部分组成:选项名称选项的值。 例如,如果想要模拟加载某个道路网络“mynet.net.xml”,则必须编写以下内容:

–net mynet.net.xml

前面的 “–” 表示该选项的名称是紧随的 “net” 。 在空格之后,必须给出选项的值。 也可以使用’=’ 代替空格

–net=mynet.net.xml

一些经常使用的选项可以缩写。 –net 的缩写是 -n。 以下与上述两个示例具有相同的效果:

-n mynet.net.xml

请注意:缩写用单个“ - ”表示非缩写用两个“-”即“–”表示


配置文件

由于选项列表可能会很长,因此引入了配置文件。
可以设置一个配置文件,其中包含要启动应用程序的所有参数。您必须使用此配置文件启动应用程序

配置文件是具有名为configuration的根元素的XML-file

选项写为元素名称,所需值存储在 value(或v)中;
例如,命令行中给出的选项 –net-file test.net.xml 将在配置文件中变为 net-file value =“test.net.xml”/

对于上面的示例,配置文件(test.sumocfg)如下所示:

<configuration>
    <input>
        <net-file value="test.net.xml"/>
        <route-files value="test.rou.xml"/>
        <additional-files value="test.add.xml"/>
    </input>
</configuration>

一个不那么冗长但等效的版本如下:

<configuration>
    <n v="test.net.xml"/>
    <r v="test.rou.xml"/>
    <a v="test.add.xml"/>
</configuration>

相应的SUMO执行调用:

sumo.exe -c test.sumocfg

这意味着我们只需要使用选项 –configuration-file-c 来代替参数。如果您不想在命令行上提供其他选项,则可以省略“-c”:

sumo.exe test.sumocfg


配置文件的命名约定
根据目标应用程序,配置文件具有不同的扩展名。对于使用SUMO-GUI的仿真配置只能读取名为 * .sumocfg 的仿真配置。

配置文件 vs 命令行参数
除了配置文件之外,还可以在命令行上给出进一步的命令行参数。

如果在配置文件中设置参数的同时,也在命令行上给出了参数,则使用命令行上给出的值(覆盖配置文件中的值)。如果要禁用配置文件中启用的布尔选项,则需要在命令行上显式给出“false”值,如–verbose false


其他

添加模式声明 schema declaration

由其中一个SUMO应用程序写入的文件会自动接收适当的模式声明。 从头开始编写输入文件时,必须手动将模式声明添加到根元素,如下所示:

<ROOT_ELEMENT xmlns:xsi =“http://www.w3.org/2001/XMLSchema-instance”
     xsi:noNamespaceSchemaLocation= “http://sumo.dlr.de/xsd/SCHEMA_FILE”>

其中 ROOT_ELEMENTSCHEMA_FILE 应根据下表进行设置:
在这里插入图片描述

模式文件 Schema Files

可以在SUMO安装的 <SUMO_HOME>/data/xsd 目录中找到模式文件。 如果设置了环境变量SUMO_HOME,则在验证输入时将使用这些文件。

否则,文件将从 http://sumo.dlr.de/xsd/SCHEMA_FILE 加载,这可能会降低应用程序的速度(如果没有Internet连接,则会失败)。



各种官方案例教程参考Tutorials,包括初学者教程案例、高级教程案例、TraCI教程案例等。



猜你喜欢

转载自blog.csdn.net/gaoruowen1/article/details/83957250