首页 > 解决方案 > 使用 TraCI 从相扑模拟中获取 GEO 坐标

问题描述

我在 python 中使用 TraCI 库从代码中逐步启动和控制相扑模拟。我的问题是我需要在 lat, lon UTM 模拟的每一步中的车辆坐标。我使用 TraCI 侦听器从模拟的每一步中获取 x,y 坐标,然后尝试将这些值转换为 lat 和 lon:

for vehicleId in traci.vehicle.getIDList():
        speed = traci.vehicle.getSpeed(vehicleId)
        x, y = traci.vehicle.getPosition(vehicleId)
        lon, lat = traci.simulation.convertGeo(x, y)
        lon, lat = self.net.convertXY2LonLat(x, y)

两种转换都不起作用,第一个返回相同的值,第二个通常会引发错误:

“运行时错误:b'未命名的投影'”

我猜这是因为网络文件中没有正确描述投影。这里的问题是没有一个场景在这里工作,即使其中一些可以做 fcd 输出(投影坐标)。

有没有人遇到过类似的问题?

问候和感谢!

标签: pythonsimulationsumo

解决方案


问题是没有正确地理参考的网络。需要投影参数是“+proj=utm ...”而不是“!”。

这意味着您获得的任何 fcd 输出也以 x,y(笛卡尔)网络坐标的形式提供。同样, sumo-gui 中的左下角不会为此类网络提供正确的纬度、经度值。

参考这个问题


推荐阅读