public static City LoadCity(string ConfigFile) { City city = new City(); var text = File.ReadAllText(ConfigFile); var files = JsonConvert.DeserializeObject <Dictionary <string, string> >(text); city.LandUse = Layer <LandUseModel> .Deserialize(NYCConst.LandUse_Layer); city.CensusTract = Layer <CensusTractModel> .Deserialize(NYCConst.CensusTracts_Layer); city.TaxiZone = Layer <TaxiZoneModel> .Deserialize(NYCConst.TaxiZones_Layer); // load lattice file city.Lattice = GeoLattice.Load(files[City.LatticeFile]); // load primary file text = File.ReadAllText(files[City.PrimaryLookupFile]); city.PrimaryLookup = JsonConvert.DeserializeObject <Dictionary <int, int> >(text); // load data file text = File.ReadAllText(files[City.DataLookupFile]); city.DataLookup = JsonConvert.DeserializeObject <Dictionary <int, RegionData> >(text); // load adjacency matrix file text = File.ReadAllText(files[City.AdjacencyMatrixFile]); city.AdjacencyMatrix = JsonConvert.DeserializeObject <Dictionary <string, Edge> > (text); return(city); }
public static List <Trip.Attr> ComputeNearestCentroid(GeoLattice lattice, List <TripDataModel> Rows) { Stopwatch stopwatch = new Stopwatch(); List <Trip.Attr> Trips = lattice.ComputeNearestCentroid(Rows); Console.WriteLine("Time Elapsed: {0} Seconds\n", (float)stopwatch.ElapsedMilliseconds / 1000); return(Trips); }
public static GeoLattice ComputeLattice() { Stopwatch stopwatch = new Stopwatch(); printLn(">>Enter cell dimentions in meters (n x n):"); int x = int.Parse(Console.ReadLine()); GeoLattice geoLattice = GeoLattice.ComputeLattice(x); Console.WriteLine("Time Elapsed: {0} Seconds\n", (float)stopwatch.ElapsedMilliseconds / 1000); return(geoLattice); }
public static List <Trip.Attr> GetTrips(GeoLattice lattice) { printLn(">>Enter Start Date (format: YYYY-MM-DD):"); DateTime from = ParseDate(Console.ReadLine()); printLn(">You entered: " + from.ToString()); printLn(">>Enter End Date (format: YYYY-MM-DD):"); DateTime to = ParseDate(Console.ReadLine()); printLn(">You entered: " + to.ToString()); printLn(">>Enter Day of Week (e.g. Saturday):"); DayOfWeek day = ParseDay(Console.ReadLine()); printLn(">You entered: " + day); return(GetTrips(lattice, from, to, day, false)); }
public static void RunCommand(EnumCommands iCommand) { if (Commands.ContainsKey(iCommand)) { switch (iCommand) { case EnumCommands.ComputeLattice: printLn(">>Compute Lattice"); lattice = ComputeLattice(); break; case EnumCommands.GetRoute: printLn(">>Get Route"); printLn(">>Source Location (lat, long):"); double[] source = ParseLocation(Console.ReadLine()); printLn(">>Destination Location (lat, long):"); double[] destination = ParseLocation(Console.ReadLine()); string result = RoutingService.Service.GetRoute(source, destination); string path = Path.Combine(saveFile, "route.geojson"); File.WriteAllText(path, result); printLn("Route saved to : " + path); break; case EnumCommands.GetTrips: if (lattice == null) { RunCommand(EnumCommands.ComputeLattice); } printLn(">>Get Trips"); trips = GetTrips(lattice); break; case EnumCommands.ComputeProbDist: if (trips.Count == 0) { RunCommand(EnumCommands.GetTrips); } if (trips.Count > 0) { printLn(">>Save distribution results As:"); string file = Console.ReadLine(); printLn(">>Compute Probability Distribution"); TripStats.DistributionOfRequests(trips, file); } else { printLn("No trips available. Please check parameters."); } break; case EnumCommands.SaveAsBinary: printLn(">>Enter File Name:"); string binfile = Console.ReadLine(); printLn(">Saving Trip Data<"); //TODO //ToBinary.CsvToBinary(trips, Path.Combine(saveFile, binfile + ".dat")); printLn(string.Format("{0} Trips Saved", trips.Count)); break; case EnumCommands.SaveAsCSV: printLn(">>Enter File Name:"); string csvfile = Console.ReadLine(); printLn(">Saving Raw Trip Data<"); TripFunctions.Save(tripsDB, Path.Combine(saveFile, csvfile + ".csv")); printLn(string.Format("{0} Trips Saved", tripsDB.Count)); break; default: break; } } }