You are running into the operating system limit on maximum open files per process (default 1024). Use 'ulimit -n 2048' to work around this.
Am Di., 9. März 2021 um 20:55 Uhr schrieb Chris Abraham <[email protected] >: > Hi Jakob. I implemented it as you said, but I faced a bug which seems to > come from SUMO. When I run sumo -c run_all_routes.sumocfg, I get the > following error message: > > Error: basic_string::_M_replace_aux > > I think it's because I have such a long value for the "route-files" > attribute in my sumocfg file... It's got 2000 filepaths. I've attached my > sumocfg file, in case you would be able to take a look. > > If I change my sumocfg file by removing all the filepaths except a 2 or 3, > the error does not appear. > > Regards, > Chris > > On Tue, 9 Mar, 2021 at 13:01, Jakob Erdmann <[email protected]> wrote: > > Again, the easiest solution is to put them in the same route file. To > avoid interactions between the vehicles either space out their depart times > by a few hours (depending on network size and maximum travel time) or set > option --max-num-vehicles 1 (this will make the next vehicle start once the > predecessor has arrived). > > Am Di., 9. März 2021 um 12:43 Uhr schrieb Chris Abraham < > [email protected]>: > >> Thank you Jakob! I wish I had thought of that! Alas, I already >> implemented it with net.getShortestPath. >> >> However, now that I've generated the 2000 route files, I am facing a >> similar problem with simulating each of them. I want to simulate each of >> them iteratively, without sumo re-loading the network each time. Is it >> possible? >> >> Regards, >> Chris >> >> On Tue, 9 Mar, 2021 at 08:59, Jakob Erdmann <[email protected]> >> wrote: >> >> Hello, >> The fastest and most efficient): call duarouter once will all the trip >> files. >> duaIterate does the same thing using subprocess.call but it does this >> seperately for each file. >> The only downside is that you have to use your own code the seperate the >> trips into separate files (if needed) since duarouter will create a single >> output file. >> Note, that net.getShortestPath only considers distances not speeds. This >> could lead to unexpected routes if there are some slow shortcuts in your >> network. >> You can also build routes using traci.simulation.findRoute >> >> regards, >> Jakob >> >> >> >> Am Mo., 8. März 2021 um 13:06 Uhr schrieb Chris Abraham < >> [email protected]>: >> >>> After scouring the docs the whole day, the only solution I can think of >>> is to use getShortestPath() from sumolib.net.Net >>> <https://sumo.dlr.de/daily/pydoc/sumolib.net.html#Net>, and build a >>> rou.xml file from its outputs. Does that sound possible? I was hoping >>> for an easier way. Also I wanted to double check that the function is >>> maintained >>> before I start coding. >>> >>> Chris >>> >>> On Mon, 8 Mar, 2021 at 07:37, Chris Abraham <[email protected]> wrote: >>> >>> Hello all, >>> >>> I currently have around 2000 trip files, each describing the trip that a >>> vehicle makes via a series of stops, as follows: >>> >>> <trip id="Taxi1_Day1" type="eTaxi" depart="53564" from="173819953" >>> to="802374502#1"> >>> <stop lane="173819953_0" until="53565"/> >>> <stop lane="68612608#0_0" until="53650"/> >>> ⋮ >>> </trip> >>> >>> Each trip file has around 750 stops. My aim is to generate a simulation >>> corresponding to each trip file, which routes between the stops of that >>> trip file. All the trip files correspond to the same network file, which >>> is around 480 MB big. I want to do the route generation from Python >>> preferably. >>> >>> My current approach is to run duaIterate.main() (from $SUMO_TOOLS/assign) >>> for each of the trips. However, this is taking very long. I think the >>> problem is that duaIterate.main() takes a lot of time to load the >>> network each time. It also takes almost all of my RAM to load the >>> network, so I can't run the process for multiple trip files concurrently. >>> It would be great if duaIterate.main() provided a way to pass in the >>> network *object* (i.e. sumolib.net.Net), rather than the *path* to the >>> network file. >>> >>> If I could do that, I think it would take much quicker, and I could >>> run multiple duaIterate processes concurrently, without running out of ram. >>> Do you know if it is possible, or if there is a better approach? >>> >>> Regards, >>> Chris >>> >>> _______________________________________________ >>> sumo-user mailing list >>> [email protected] >>> To unsubscribe from this list, visit >>> https://www.eclipse.org/mailman/listinfo/sumo-user >>> >> _______________________________________________ >> sumo-user mailing list >> [email protected] >> To unsubscribe from this list, visit >> https://www.eclipse.org/mailman/listinfo/sumo-user >> > _______________________________________________ > sumo-user mailing list > [email protected] > To unsubscribe from this list, visit > https://www.eclipse.org/mailman/listinfo/sumo-user >
_______________________________________________ sumo-user mailing list [email protected] To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/sumo-user
