2.4.模式
方括号”[ ]”表示里面的信息是可选的,尖括号”<>”表示这里需插入你自己的值。
2.5.数据类型
?
?
?
以下是禁止使用字符但并不完全: ?
?
?
? <2D-POSITION>:逗号分隔的浮点数二元组(
?<2D-BOUNDING_BOX>:逗号分隔的浮点数四元组
(
?
参考文件类型:
?
?
2.6.安装SUMO
你需要明确你是简单使用它,还是打算扩展它。 1):如果你仅想使用SUMO,下载解压后可以直接使用,运行SUMO所需要的所有文件已经包含进来了。Tools文件夹里的一些额外脚本会需要Python 和 Perl语言支持。
2):如果你还打算扩展SUMO,你可以下载源码分发包并构建SUMO。如果你在没有安装我们的二进制分发包的机器上构建了软件包,请通知我们,这样我们可以把它包含进来。
2.6.1.安装二进制版本(windows平台)
下载名为sumo-winbin-
在这个目录下,找到bin的文件夹,里面是可执行程序,你可以双击GUISIM并看下data/examples目录下的例子。所有其他的应用(如(DUAROUTER, DFROUTER等)必须在命令行下运行。
从0.9.7版开始,我们使用Microsoft Visual Studio 2005 SP1构建,这导致需要安装Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)并配置。如果你无法运行任何一个SUMO应用,请首先试着安装这些包。
2.6.2.编译构建应用(Windows平台)
这里介绍如何使用可以免费使用的工具构建Sumo(这不意味着开源)。请在开始构建前阅读完所有文档,这里有一些使用说明和缩写。
如果你不需要GUI,就可以跳过所有与Fox相关的东西。如果你不需要精确的地理数据转换,就可以跳过与GDAL,Proj和FWTools相关的东西。
1):下载Visual C++ 2005 Express Edition (or a newer one)和the Platform SDK 并安装。确定正确配置Visual Studio,以找到平台包含的文件和库。
2):下载Python并安装,这用来动态包含SVN版本到编译。(编译构建可以不依赖它工作,但是你会发现令人讨厌的警告,甚至编辑窗口崩溃)。
Python 3 不能工作,Python 2.6可以工作但是还未测试。 1):为你的Visual Studio version分别下载Xerces-C预编译包(对VS 2005 需要windows-vc-8.0.zip;Visual Studio 2008 (9.0)),Fox 源码(1.6.36版确定可以工作),FWTools(版本1.1.3可以工作,2.4.7会无端出错)或者PROJ,GDAL源码。
2):注意安装路径:MSVC如果使用包含空格的路径可能有问题,所以试着避免安装到含空格的路径。
以上描述的仅对当前的SVN有效,或者使用一个更新版本(0.9.5以后的)。请谨记从SVN编译你必须:1)安装Python,2)取消src/windows_config.h文件中的HAVE_VERSION_H定义。
类库:
Xerces-C
Xerces-c是一套健壮、强大(同时也很庞大)的 XML 解析库。
截止(包括)0.10.3版本(确切是到SVN6993版次),SUMO默认使用xerces-c 2.8,现在使用xerces-c 3.0.1.使用不同xerces版本编译需要的改变被限制在src/windows_config.h, build/msvc8/Win32.vsprops and / or build/msvc8/x64.vsprops。
1):你仅需要安装Xerces3.0.1的二进制分发版,或者它的64位版本(做64位编译)。 2):创建一个环境变量XERCES,指向你的xerces-c目录,例如:
set XERCES=D:\\libs\\xerces-c-3.0.1-x86-windows-vc-8.0.
%XERCES%\\bin\\xerces-c_3_0.dll和
%XERCES%\\bin\\xerces-c_3_0D.dll 到PATH下的目录 (终极手段:复制到windows' system32 目录).
4):对于 64bit build 环境变量名师XERCES_64
3):复制dll文件
Fox
1):如果不需要GUI,可以跳过这个部分
2):截止(包括)0.10.3版本(确切是到SVN 7025版次) sumo使用 fox 1.4, 现在使用fox 1.6. 构建指令时相同的,仅在需要时把1.6替换1.4,或者FOX16替换FOX14。 3):定位到fox的目录,打开VC工程。例如: D:\\libs\\fox-1.6.36\\windows\\vcpp\\win32.dsw. 4):确定转换到VC8.0,构建foxdll工程作为发行和测试版本(如果你想使用VisualStudio debugger)。如果你想构建64位平台的程序,你需要使用Configuration Manager为foxdll工程添加新的配置。
5):你可能会得到大约240个警告和1个错误,但这些可以忽略。 6):未找到windows.h的错误意味着SDK未正确安装 7):创建环境变量FOX16指向fox目录,例如:
set FOX16=D:\\libs\\fox-1.6.36.
8):复制dll文件 %FOX16%\\lib\\FOXDLL-1.6.dll 和
%FOX16%\\lib\\FOXDLLD-1.6.dll到PATH下的目录 (终极手段:复制到windows' system32 目录).
PROJ 和GDAL
如果不需要转换地理坐标,可以通过src/windows_config.h,
build/msvc8/Win32.vsprops 和 / or build/msvc8/x64.vsprops文件使proj和gdal不可用,并跳过这个部分。否则你可以下载FWTools的二进制分发包或者自己编译。自己编译仅在以下情况下是需要的:1):当你需要构建64位应用 2):你想传送(ship)SUMO可执行程序的一个拷贝,但不需要传送FWTools。 FWTools
? 运行可执行文件,并选择一个目标目录。
?创建环境变量 PROJ_GDAL 指向那个目录,例如:
set PROJ_GDAL=D:\\libs\\FWTools1.1.3.
? 添加 %PROJ_GDAL%\\bin 到 PATH变量
从源码构建
如果由于某些原因你需要自己构建 PROJ 和 GDAL ,请遵循PROJ 和 GDAL 的相关构建指令。然后你应把它安装到通用目录,并使PROJ_GDAL变量指向这个目录。你同样需要复制proj.dll 和 gdal*.dll到你的PATH.
如果是64位的构建,环境变量名应该是PROJ_GDAL_64.
SUMO软件
配置
1) 如果安装了所有的库,并正确设置了环境变量,则不需要进一步的配置,这个部分可以跳过。
2) Visual Studio使用build/msvc8子目录里的.vsprops文件进行build配置。如果更改了这些设置将会影响到所有的子工程(可以使用文本编辑器进行编辑),确定编辑这些文件而不是编辑工程配置(.vcproj)
3) 如果你不想通过环境变量来定义包含文件和类库的位置,你可以把位置直接输入到?x64.vsprops或者Win32.vsprops(或者两者都用,这依赖于你的目标平台)。也可以通过这些文件使得PROJ 和 GDAL不可用,这通过设置\为空值来实现。
构建(Build)
? 打开工程 sumo\\build\\msvc8\\prj.sln ,构建你需要的配置.
?64位的构建仍处于试验阶段,这个构建不使用Proj, GDAL and Fox,所以不构建guisim.
故障处理(Troubleshooting)
Linker reports something similar to \
你可能把类库安装到含有空格的路径中了,相关的环境变量应嵌入在引号内。 例如:set FOX=\
预构建事件失败(Failure on pre-build event)
如果Visual Studio pre-build event 失败,你完全可以忽略,除非你从SVN仓库构建,这种情况你需要正确安装 Python.
2.6.3.构建文档
Windows平台不支持文档生成,但是Windows的二进制分发包里已经有了一个Pdf文档。
3.使用命令行程序
目前SUMO包里的大多数应用程序都是命令行工具,除了GUISIM工具。我们注意到使用命令行程序不是很流行,尤其对那些非信息领域的科学家,下面简要介绍一下。但这并不是完全的命令行使用指南,仅仅是SUMO使用的简要介绍。
3.1.基础
3.1.1.开启命令行窗口
首先需要打开命令行窗口。Windows平台,可以这样启动:开始—>运行-->cmd.exe,出现的黑色窗口即是命令行。Linux平台:通过开启终端。
3.1.2.从命令行使用SUMO程序
SUMO程序是普通的可执行文件,可以在命令行下输入条码的名字来启动它们;例如NETGEN程序调用:
Netgen.exe Windows平台 Netgen Linux平台
这个操作简单地启动程序,因为没有给出参数,程序不知道要做什么,所以仅仅打印出自己的相关信息:
SUMO netgen Version
(c) DLR 2001-2010; http://sumo.sourceforge.net
Use --help to get the list of options.
3.2.参数
每个应用程序都有一个参数列表,这些参数定义了哪些文件需要处理、生成,或者定义了程序的行为。一般情况下,一个程序需要至少两个参数:一个输入文件,一个输出文件。但多数情况下需要更多的参数。每个程序的参数描述出现在应用程序描述里面。下面的描述说明怎么设置参数。
3.2.1.命令行下设置参数
有两种参数:布尔参数和带值参数。前者不需要参数值,当且仅当该参数出现是它被设置为“true”。在命令行下设置带值参数包括两部分:参数名字和参数值。例如:如果想载入指定的路网”mynet.net.xml”,必须这样写:
--net mynet.net.xml
前面的“--“表示后面跟的是参数的长名字,在空格之后必须紧跟参数值。也可以使用”=”代替空格: --net=mynet.net.xml
一些常用参数可以被简写,参数--net简写为-n。下面的和以上两个例子有相同效果:
-n mynet.net.xml 请注意“-”表示简写参数名
3.2.2.参数值类型
SUMO应用程序知道哪种值是它们期望的,例如:NETGEN允许你设置默认车道数,必须是整型值。也就是说,如果给了字符串或其他类型的值将被忽略,并且应用程序给出错误信息。
列表是值类型的特殊情况,例如:要载入到仿真程序的附加文件列表。当给出的文件多于一个时,文件之间必须用逗号分隔。
3.3.配置文件
参数列表可能很长,所以引入了配置文件。你可以设置一个配置文件,里面包含了你要启动的应用程序的所有参数。仅给出这个配置文件,你就可以启动这个应用程序。
配置文件是XML文件,有个名为 对于上面的例子,配置文件如下(保存为“test.sumo.cfg”):