public void LoadEvents(string path) { //var eventsPath = Path.Combine(path, "500.events.xml"); //var eventsPath = Path.Combine(path, "event_sample.xml"); //matSimEvents = MatsimEvents.Load(eventsPath); matSimEvents = MatsimEvents.ReadXml(path); //Debug.Log("events loaded!"); //Debug.Log(matSimEvents.lines[0]); //Debug.Log(matSimEvents.lines[1]); }
public static void SaveMatSimEventFile() { string outputPath = @"C:\Users\admgaming\Desktop\Jay\output"; if (Directory.Exists(outputPath)) { var events = new MatsimEvents(); events.CreateTestEvents(); events.Save(Path.Combine(outputPath, "test_output_events.xml")); //events = MatsimEvents.Load(Path.Combine(outputPath, "test_output_events.xml")); events = MatsimEvents.ReadXml(Path.Combine(outputPath, "test_output_events.xml")); events.DebugLog(); } }
public static void ReadMatSimEventFile() { ClearMatSimLinks(); string outputPath = @"C:\Users\admgaming\Desktop\Jay\output"; if (Directory.Exists(outputPath)) { //var container = new MatSimContainer(); //container.LoadEvents(outputPath); //var xmlPath = Path.Combine(outputPath, "event_sample.xml"); var xmlPath = Path.Combine(outputPath, "500.events.xml"); var events = MatsimEvents.ReadXml(xmlPath); Debug.Log(events.matsimEvents.Count); var vehEvents = events.FindEvents("Veh140021"); foreach (var ev in vehEvents) { Debug.Log(ev.ToString()); } //events.DebugLog(); } }
public static MatsimEvents ReadXml(string path) { if (!File.Exists(path)) { return(null); } using (XmlReader reader = new XmlTextReader(path)) { var events = new MatsimEvents() { matsimEvents = new List <MatsimEvent>() }; while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: if (reader.Name.Equals("event")) { float time; if (!float.TryParse(reader.GetAttribute("time"), out time)) { continue; } switch (reader.GetAttribute("type")) { case "TransitDriverStarts": events.AddEvent(new MatsimDriverStarts(time, reader.GetAttribute("type"), reader.GetAttribute("driverId"), reader.GetAttribute("vehicleId"), reader.GetAttribute("transitLineId"), reader.GetAttribute("transitRouteId"), reader.GetAttribute("departureId")) ); break; case "departure": events.AddEvent(new MatsimDeparture(time, reader.GetAttribute("type"), reader.GetAttribute("person"), reader.GetAttribute("link"), reader.GetAttribute("legMode")) ); break; case "arrival": events.AddEvent(new MatsimArrival(time, reader.GetAttribute("type"), reader.GetAttribute("person"), reader.GetAttribute("link"), reader.GetAttribute("legMode")) ); break; case "PersonEntersVehicle": events.AddEvent(new MatsimEntersVehicle(time, reader.GetAttribute("type"), reader.GetAttribute("person"), reader.GetAttribute("vehicle")) ); break; case "PersonLeavesVehicle": events.AddEvent(new MatsimLeavesVehicle(time, reader.GetAttribute("type"), reader.GetAttribute("person"), reader.GetAttribute("vehicle")) ); break; case "vehicle leaves traffic": events.AddEvent(new MatsimLeavesTraffic(time, reader.GetAttribute("type"), reader.GetAttribute("person"), reader.GetAttribute("link"), reader.GetAttribute("vehicle"), reader.GetAttribute("networkMode"), float.Parse(reader.GetAttribute("relativePosition"))) ); break; case "wait2link": events.AddEvent(new MatsimWait2Link(time, reader.GetAttribute("type"), reader.GetAttribute("person"), reader.GetAttribute("link"), reader.GetAttribute("vehicle"), reader.GetAttribute("networkMode"), float.Parse(reader.GetAttribute("relativePosition"))) ); break; case "entered link": events.AddEvent(new MatsimEnterLink(time, reader.GetAttribute("type"), reader.GetAttribute("person"), reader.GetAttribute("link"), reader.GetAttribute("vehicle")) ); break; case "left link": events.AddEvent(new MatsimLeftLink(time, reader.GetAttribute("type"), reader.GetAttribute("person"), reader.GetAttribute("link"), reader.GetAttribute("vehicle")) ); break; case "waitingForPt": events.AddEvent(new MatsimWaitingForPt(time, reader.GetAttribute("type"), reader.GetAttribute("agent"), reader.GetAttribute("atStop"), reader.GetAttribute("destinationStop")) ); break; case "actstart": events.AddEvent(new MatsimActStart(time, reader.GetAttribute("type"), reader.GetAttribute("person"), reader.GetAttribute("link"), reader.GetAttribute("actType")) ); break; case "actend": events.AddEvent(new MatsimActStart(time, reader.GetAttribute("type"), reader.GetAttribute("person"), reader.GetAttribute("link"), reader.GetAttribute("actType")) ); break; case "VehicleArrivesAtFacility": events.AddEvent(new MatsimVehicleArrivesAtFacility(time, reader.GetAttribute("type"), reader.GetAttribute("vehicle"), reader.GetAttribute("facility"), float.Parse(reader.GetAttribute("delay"))) ); break; case "VehicleDepartsAtFacility": events.AddEvent(new MatsimVehicleDepartsAtFacility(time, reader.GetAttribute("type"), reader.GetAttribute("vehicle"), reader.GetAttribute("facility"), float.Parse(reader.GetAttribute("delay"))) ); break; case "travelled": events.AddEvent(new MatsimTravelled(time, reader.GetAttribute("type"), reader.GetAttribute("person"), double.Parse(reader.GetAttribute("distance"))) ); break; case "stuckAndAbort": var linkStr = reader.GetAttribute("link"); var legStr = reader.GetAttribute("legMode"); var perStr = reader.GetAttribute("person"); if (!string.IsNullOrEmpty(perStr)) { if (!string.IsNullOrEmpty(linkStr) && !string.IsNullOrEmpty(legStr)) { events.AddEvent(new MatsimStuck(time, reader.GetAttribute("type"), linkStr, legStr, perStr)); } else { events.AddEvent(new MatsimStuck(time, reader.GetAttribute("type"), perStr)); } } break; } } break; case XmlNodeType.EndElement: Debug.Log("Events loaded."); break; } } return(events); } }