def get_stay_points_v2(userid = 1,max_distence = 0.2, max_speed = 2, max_time=15*60): print "Welcome" #units :km #userid = 0 gps_obj_list = dbutils.get_gps_record_time_order(userid, 0,-1) stay_point_list = [] counts = len(gps_obj_list) tmp_point_list = [] i =0 while i < counts : j = i + 1 point_i =gps_obj_list[i] k = 0 #del tmp_point_list[:] tmp_point_list = [] tmp_point_list.insert(0, point_i) while (j < counts) : point_j = gps_obj_list[j] euclidean_distence = base_op.get_distance(point_i, point_j) t_diff = point_j.gps_UTC_unix_timestamp - point_i.gps_UTC_unix_timestamp #print "distence = %f km" % euclidean_distence k = k + 1 tmp_point_list.insert(k, point_j) if t_diff > max_time : #t_diff = point_j.gps_UTC_unix_timestamp - point_i.gps_UTC_unix_timestamp meanSpeed = euclidean_distence / t_diff * 1000 #print "speed = %f m/s" % meanSpeed #if t_diff > max_timethreshold: if meanSpeed < max_speed: #print "distence = %f km" % euclidean_distence #print "speed = %f m/s" % meanSpeed #print "time = %f s" % t_diff tmp_point_list.pop(); s = stay_point.stay_point() s.userid = userid calc_mean_pos(s, tmp_point_list) stay_point_list.append(s) #dbutils.insert_staypoint(s) i = j break else: i = j break; j = j+1 if j == counts : s = stay_point.stay_point() s.userid = userid calc_mean_pos(s, tmp_point_list) stay_point_list.append(s) #dbutils.insert_staypoint(s) i = j # break; #for gps_record in gps_obj_list : # gps_record.show() #print "\n" return stay_point_list
def get_stay_points(userid=1, max_distence=0.2, max_speed=2): print "Welcome" #units :km #userid = 0 gps_obj_list = dbutils.get_gps_record_time_order(userid, 0, -1) stay_point_list = [] counts = len(gps_obj_list) tmp_point_list = [] i = 0 while i < counts: j = i + 1 point_i = gps_obj_list[i] k = 0 #del tmp_point_list[:] tmp_point_list = [] tmp_point_list.insert(0, point_i) while (j < counts): point_j = gps_obj_list[j] euclidean_distence = base_op.get_distance(point_i, point_j) #print "distence = %f km" % euclidean_distence k = k + 1 tmp_point_list.insert(k, point_j) if euclidean_distence > max_distence: t_diff = point_j.gps_UTC_unix_timestamp - point_i.gps_UTC_unix_timestamp meanSpeed = euclidean_distence / t_diff * 1000 #print "speed = %f m/s" % meanSpeed #if t_diff > max_timethreshold: if meanSpeed < max_speed: print "distence = %f km" % euclidean_distence print "speed = %f m/s" % meanSpeed print "time = %f s" % t_diff tmp_point_list.pop() s = stay_point.stay_point() s.userid = userid calc_mean_pos(s, tmp_point_list) stay_point_list.append(s) #dbutils.insert_staypoint(s) i = j break else: i = j break j = j + 1 if j == counts: s = stay_point.stay_point() s.userid = userid calc_mean_pos(s, tmp_point_list) stay_point_list.append(s) dbutils.insert_staypoint(s) i = j # break; #for gps_record in gps_obj_list : # gps_record.show() #print "\n" return stay_point_list
def test(): log_init() print "Welcome filter_points test" i =0 errorCount = 0 beginPoint = getNextRecord(0) beginPoint.show() beginPoint.save("test.txt") currentPoint = beginPoint nextPoint = beginPoint oneUserTotalNum = dbutils.get_record_total_num(0) #dbutils.get_gps_record_time_order(0 , 0, oneUserTotalNum+1) tmp = dbutils.get_gps_record_time_order(0 , oneUserTotalNum+2, 7) if tmp : print "error" else : print "empty"
def test(): log_init() print "Welcome filter_points test" i = 0 errorCount = 0 beginPoint = getNextRecord(0) beginPoint.show() beginPoint.save("test.txt") currentPoint = beginPoint nextPoint = beginPoint oneUserTotalNum = dbutils.get_record_total_num(0) #dbutils.get_gps_record_time_order(0 , 0, oneUserTotalNum+1) tmp = dbutils.get_gps_record_time_order(0, oneUserTotalNum + 2, 7) if tmp: print "error" else: print "empty"
def getNextRecord(userId): global currentRecordList global currentIndex if (not currentRecordList.gps_list) or (currentRecordList.currentPos == \ len(currentRecordList.gps_list)) : currentRecordList.gps_list = \ dbutils.get_gps_record_time_order(userId, currentIndex, 20000) if (not currentRecordList.gps_list) : currentIndex = 0 currentRecordList.gps_list = None raise ValueError,'no more gps record' return None currentRecordList.currentPos = 0 res = currentRecordList.gps_list[currentRecordList.currentPos] currentIndex += 1 currentRecordList.currentPos += 1 return res
def getNextRecord(userId): global currentRecordList global currentIndex if (not currentRecordList.gps_list) or (currentRecordList.currentPos == \ len(currentRecordList.gps_list)) : currentRecordList.gps_list = \ dbutils.get_gps_record_time_order(userId, currentIndex, 20000) if (not currentRecordList.gps_list): currentIndex = 0 currentRecordList.gps_list = None raise ValueError, 'no more gps record' return None currentRecordList.currentPos = 0 res = currentRecordList.gps_list[currentRecordList.currentPos] currentIndex += 1 currentRecordList.currentPos += 1 return res
def main(): userid = 128 gps_obj_list = dbutils.get_gps_record_time_order(userid, 0, -1) dbutils.close_db() print "next" dirName = "%d_points_dir_baidu_pos" % userid if not os.path.exists(dirName): os.mkdir(dirName) distPointList = [] i = 0 j = 0 for p in chunks(gps_obj_list, 100): i = i + 1 distPointList += convert_coordinate.convert_coordinate_post(p) if i >= 1000: savePointsToJson(userid, j, distPointList) distPointList = [] j = j + 1 i = 0 savePointsToJson(userid, j, distPointList)
def main(): userid = 128 gps_obj_list = dbutils.get_gps_record_time_order(userid, 0,-1) dbutils.close_db(); print "next" dirName = "%d_points_dir_baidu_pos" %userid if not os.path.exists(dirName): os.mkdir(dirName) distPointList = [] i = 0 j = 0 for p in chunks (gps_obj_list,100): i = i + 1 distPointList += convert_coordinate.convert_coordinate_post(p) if i >=1000: savePointsToJson(userid, j, distPointList) distPointList = [] j = j + 1 i = 0 savePointsToJson(userid, j, distPointList)