def test_reading(self): all_trips = TripLoader.get_all_trips("test/trips/0/") for trip in all_trips[:10]: m = BusMatcher('test/shapes_up.txt') V=None p={} for location in trip.locations: V,p = m.step((location.latitude,location.longitude),V,p) assert(m.current_shape(V)=="101")
def fromTimeDataUpdateBaseMap(self, form, end): # 删除掉以前的数据 a = ["../temp/matched_trips_directory_1", "../temp/newTripOut"] for folder in a: utils.clean_and_mkdir(folder) trips = Trip_get(form, end, self.trace).load_trip_from_db() self.match_trip_from_db(self.init_graphdb_filename, trips, self.matched_trips_directory_1) # 将中断的点提取出来 作为 下一步的输入 r.getNewTrip(self.matched_trips_directory_1, self.newTripOut, 65) if (not os.listdir(self.newTripOut)): print("\n 没有更新") os._exit(0) trips = TripLoader.load_all_trips(self.newTripOut) self.createMap(trips, self.cell_size, self.gaussian_blur, self.init_graphdb_filename, 3, self.graphdb_filename, 1)
import cv from math import atan2,sqrt,ceil,pi import sys,getopt,os from location import TripLoader from pylibs import spatialfunclib from itertools import tee, izip all_trips = TripLoader.get_all_trips("trips/") ## ## important parameters ## cell_size = 2 # meters mask_threshold = 100 # turns grayscale into binary gaussian_blur = 17 voronoi_sampling_interval = 10 # sample one point every so many pixels along the outline MIN_DIR_COUNT = 10 shave_until = 0.9999 trip_max = len(all_trips) opts,args = getopt.getopt(sys.argv[1:],"c:t:b:s:hn:d:") for o,a in opts: if o == "-c": cell_size=int(a) elif o == "-t": mask_threshold=int(a) elif o == "-b": gaussian_blur = int(a) elif o == "-s": voronoi_sampling_interval = int(a)
ox = int(xscale * (orig.longitude - min_lon)) dy = height - int(yscale * (dest.latitude - min_lat)) dx = int(xscale * (dest.longitude - min_lon)) cv.Line(lines, (ox, oy), (dx, dy), (255), 1, cv.CV_AA) # save the lines cv.SaveImage(prefix + "raw_data.png", lines) print("done.") # print "Intensity map acquired." sys.stdout.write("Smoothing... ") sys.stdout.flush() # # create the mask and compute the contour cv.Smooth(themap, themap, cv.CV_GAUSSIAN, gaussian_blur, gaussian_blur) cv.SaveImage(prefix + "kde.png", themap) print("done.") print("\nKDE generation complete.") if __name__ == '__main__': k = KDE() trips = TripLoader.load_all_trips_from_db("2019-00-01", "2019-08-01") k.create_kde_with_trips(trips, 20, 17) # trips_path="../trips" # prefix="../temp_20190000-20190500-20200000/" # trips = TripLoader.load_all_trips(trips_path) # k.create_kde_with_trips(trips, 1,17)
cv.SaveImage("raw_data.png", lines) print "done." #print "Intensity map acquired." sys.stdout.write("Smoothing... ") sys.stdout.flush() # # create the mask and compute the contour cv.Smooth(themap, themap, cv.CV_GAUSSIAN, gaussian_blur, gaussian_blur) cv.SaveImage("kde.png", themap) print "done." print "\nKDE generation complete." if __name__ == '__main__': opts,args = getopt.getopt(sys.argv[1:],"c:b:p:h") for o,a in opts: if o == "-c": cell_size=int(a) elif o == "-b": gaussian_blur = int(a) elif o == "-p": trips_path = str(a) elif o == "-h": print "Usage: kde.py [-c <cell_size>] [-b <gaussian_blur_size>] [-p <trips_path>] [-h]\n" sys.exit() k = KDE() k.create_kde_with_trips(TripLoader.load_all_trips(trips_path))
(opts, args) = getopt.getopt(sys.argv[1:], "p:v:d:b:r:n:h") for o, a in opts: if o == "-p": max_path_length = int(a) if o == "-v": min_graph_edge_volume = int(a) if o == "-d": location_projection_distance_limit = float(a) if o == "-b": location_bearing_difference_limit = math.cos(math.radians( float(a))) if o == "-r": trip_round = int(a) if o == "-n": trip_max = int(a) if o == "-h": print "Usage: python cao2009_generate_graph.py [-p <max_path_length>] [-v <min_graph_edge_volume>] [-d <location_projection_distance_limit>] [-b <location_bearing_difference_limit>] [-r <clarified_trips_round>] [-n <trip_max>] [-h]\n" exit() all_trips = TripLoader.get_all_trips("clarified_trips/n" + str(trip_max) + "/round" + str(trip_round) + "/") start_time = time.time() g = Graph(all_trips[:trip_max]) g.generate_graph() print "\nGraph generation complete (in " + str(time.time() - start_time) + " seconds).\n"
# default values trip_round = 0 trip_max = 889 (opts, args) = getopt.getopt(sys.argv[1:],"p:v:d:b:r:n:h") for o,a in opts: if o == "-p": max_path_length = int(a) if o == "-v": min_graph_edge_volume = int(a) if o == "-d": location_projection_distance_limit = float(a) if o == "-b": location_bearing_difference_limit = math.cos(math.radians(float(a))) if o == "-r": trip_round = int(a) if o == "-n": trip_max = int(a) if o == "-h": print "Usage: python cao2009_generate_graph.py [-p <max_path_length>] [-v <min_graph_edge_volume>] [-d <location_projection_distance_limit>] [-b <location_bearing_difference_limit>] [-r <clarified_trips_round>] [-n <trip_max>] [-h]\n" exit() all_trips = TripLoader.get_all_trips("clarified_trips/n" + str(trip_max) + "/round" + str(trip_round) + "/") start_time = time.time() g = Graph(all_trips[:trip_max]) g.generate_graph() print "\nGraph generation complete (in " + str(time.time() - start_time) + " seconds).\n"