【问题标题】:Is there any way to select some of values for SUMO to write to the output file有什么方法可以为 SUMO 选择一些值以写入输出文件
【发布时间】:2021-12-25 21:10:15
【问题描述】:

我想在 SUMO 中生成 FullOutput 文件,但是在 https://sumo.dlr.de/docs/Simulation/Output/FullOutput.html 我们可以看到,FullOutput 文件看起来像这样:

<full-export>
    <data timestep="<TIME_STEP>">

    <vehicles>
        <vehicle id="<VEHICLE_ID>" eclass="<VEHICLE_ECLASS>" co2="<VEHICLE_CO2>" co="<VEHICLE_CO>" hc="<VEHICLE_HC>"
        nox="<VEHICLE_NOX>" pmx="<VEHICLE_PMX>" fuel="<VEHICLE_FUEL>" electricity="<VEHICLE_ELECTRICITY>" noise="<VEHICLE_NOISE>" route="<VEHICLE_ROUTE>" type="<VEHICLE_TYPE>"
        waiting="<VEHICLE_WAITING>" lane="<VEHICLE_LANE>" pos_lane="<VEHICLE_POS_LANE>" speed="<VEHICLE_SPEED>"
        angle="<VEHICLE_ANGLE>" x="<VEHICLE_POS_X>" y="<VEHICLE_POS_Y>"/>

        ... more vehicles ...

    </vehicles>

    <edges>

        <edge id="<EDGE_ID>" traveltime="<EDGE_TRAVELTIME>">

        <lane id="<LANE_ID>" co="<LANE_CO>" co2="<LANE_CO2>" nox="<LANE_NOX>" pmx="<LANE_CO>"
        hc="<LANE_HC>" noise="<LANE_NOISE>" fuel="<LANE_FUEL>" electricity="<LANE_ELECTRICITY>" maxspeed="<LANE_MAXSPEED>" meanspeed="<LANE_MEANSPEED>"
        occupancy="<LANE_OCCUPANCY>" vehicle_count="<LANE_VEHICLES_COUNT>"/>

            ... more lanes of the edge if exists

        </edge>

            ... more edges of the network

    </edges>

    <tls>
        <trafficlight id="0/0" state="GgGr"/>
        ... more traffic lights

    </tls>

</data>

... the next timestep ...

</full-export>

输出的.xml文件太大,一般1GB以上,包含很多值,比如

eclass="<VEHICLE_ECLASS>" co2="<VEHICLE_CO2>" co="<VEHICLE_CO>" hc="<VEHICLE_HC>"
        nox="<VEHICLE_NOX>" pmx="<VEHICLE_PMX>" fuel="<VEHICLE_FUEL>"

我不需要。

所以我想知道,有没有办法选择我需要输出的一些值?

【问题讨论】:

    标签: file-io sumo


    【解决方案1】:

    你有不同的选择:

    1. 使用不同的输出。也许 fcd-output 已经足够了。它包含所有车辆位置,如果您愿意,您通常可以自己将其聚合到边缘。此外,fcd-output 还可以使用--fcd-output.attributes 给出要写入的属性列表(完整输出没有此功能)。
    2. 直接过滤输出。您可以提供套接字连接,而不是提供输出文件,相扑会将输出定向到那里。有关示例,请参阅 https://github.com/eclipse/sumo/blob/main/tests/complex/sumo/socketout/runner.py
    3. 如果您使用的是 Linux,请使用命名管道 Example of using named pipes in Linux shell (Bash) 并自行过滤
    4. 将输出重定向到 xml2csv.py 脚本,该脚本至少可以消除 XML 开销,并且可能更容易根据您的设置删除 csv 文件中的列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-07
      • 1970-01-01
      • 1970-01-01
      • 2013-04-17
      • 1970-01-01
      • 2015-06-25
      相关资源
      最近更新 更多