利用TraCI从相扑模拟中获取地理坐标

2024-04-16 15:36:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python中的TraCI库从代码一步一步地启动和控制sumo模拟。 我的问题是,我需要在每一步的模拟车的坐标。我用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'projection not named'"

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

有没有人遇到过类似的问题?你知道吗

问候,谢谢!你知道吗


Tags: 代码infor投影speedlonlat监听器
1条回答
网友
1楼 · 发布于 2024-04-16 15:36:18

问题是,这些网络没有正确地进行地理参考。投影参数必须是“+proj=utm…”,而不是“!”。你知道吗

这意味着您得到的任何fcd输出也以x,y(笛卡尔)网络坐标的形式提供。同样,sumo gui中的左下角和右下角也不会为这样的网络提供正确的lat、lon值。你知道吗

请参阅此issue。你知道吗

相关问题 更多 >