使用TraCI从相扑仿真中获取GEO坐标

时间:2018-11-20 14:49:48

标签: python simulation sumo

我正在python中使用TraCI库逐步地从代码中启动和控制相扑仿真。 我的问题是我需要在模拟的Ut lon lat步骤中的车辆坐标。我使用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)

两次转换均无效,第一次转换返回相同的值,第二次转换通常会引发错误:

  

“ RuntimeError:b'投影未命名””

我想这是因为网络文件中没有正确描述投影。这里的问题是,即使其中某些方案可以执行fcd输出(投影坐标),也没有一种方案可以在这里工作。

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

致谢,谢谢!

1 个答案:

答案 0 :(得分:0)

问题在于网络未正确地进行地理参考。需要projection参数为“ + proj = utm ...”而不是“!”。

这意味着您获得的任何fcd输出也将根据x,y(笛卡尔)网络坐标来提供。同样,sumo-gui的左下角和右下角将无法提供此类网络的正确纬度值。

请参阅此issue