def test(): coords = [] point = gps_record.gps_record() point.gps_longitude = 116.326624 point.gps_latitude = 39.977897 coords.append(point) point = gps_record.gps_record() point.gps_longitude = 116.326626 point.gps_latitude = 39.977882 coords.append(point) res = convert_coordinate_post(coords) print len(res)
def extract_move_point_batch(): for dirname, dirnames, filenames in os.walk('../data/raw'): for filename in filenames: print dirname, dirnames, filename if filename.endswith('plt'): gpsfile = os.path.join(dirname, filename) move_tracks = extract_move_point(gpsfile) tracks_info = [] print len(move_tracks) for track in move_tracks: coords = [] for point in track: coord = gps_record.gps_record() coord.gps_latitude = float(point[0]) coord.gps_longitude = float(point[1]) coords.append(coord) track = gps_transfer.convert_coordinate_batch(coords) track_info = [] for point in track: gps_info = {} print point gps_info["lat"], gps_info["lng"], gps_info["count"] = round(point.gps_latitude, 6), \ round(point.gps_longitude, 6), 1 track_info.append(gps_info) tracks_info.append(track_info) print len(tracks_info) dir_path = dirname.replace("raw", "move_tracks") file_path = filename.replace("plt", "json") dir_path = dir_path.replace("Trajectory", file_path) print dir_path with open(dir_path, 'w') as outfile: json_file = {} json_file["track"] = tracks_info json.dump(json_file, outfile)
def gen_baidu_data(self, user_id): files = self.__get_raw_data_files_by_id(user_id) raw_gps_datas = [] baidu_gps_data = None for file in files: print file with open(file, 'r') as f: for line in f: datas = line.split(",") if len(datas) == 7: point = gps_record.gps_record() point.gps_longitude = round(float(datas[1]), 6) point.gps_latitude = round(float(datas[0]), 6) raw_gps_datas.append(point) print len(raw_gps_datas) baidu_gps_data = gps_transfer.convert_coordinate_batch(raw_gps_datas) json_dps_datas = [] for point in baidu_gps_data: gps_info = {} gps_info["lng"], gps_info["lat"], gps_info["count"] = str( point.gps_longitude), str(point.gps_latitude), 1 json_dps_datas.append(gps_info) json_path = str(user_id) + ".json" print len(json_dps_datas) with open(os.path.join("../data/baidu_gps", json_path), 'w') as outfile: json_file = {} json_file["gps"] = json_dps_datas json.dump(json_file, outfile)
def insertOneRecord(recordStr, userid): global dbConn i = 0 try: recordObj = gps_record.gps_record.__init_with_txt_record__(gps_record.gps_record(), recordStr, userid) if dbConn == None: dbConn = dbutils.connect_db() # if the connectint closed by mysal server ,then open the connection again while dbutils.insert_gps_record(dbConn, recordObj) == 2 and i < 4: dbConn = dbutils.connect_db() i = i + 1 except ValueError: log_init().warning("GPS Record Value Error " + userid + recordStr)
def insertOneRecord(recordStr, userid): global dbConn i = 0 try: recordObj = gps_record.gps_record.__init_with_txt_record__( gps_record.gps_record(), recordStr, userid) if (dbConn == None): dbConn = dbutils.connect_db() #if the connectint closed by mysal server ,then open the connection again while (dbutils.insert_gps_record(dbConn, recordObj) == 2 and i < 4): dbConn = dbutils.connect_db() i = i + 1 except ValueError: log_init().warning("GPS Record Value Error " + userid + recordStr)
def dump_to_data(self, cluster_points, user_id): coords = [] for point in cluster_points: coord = gps_record.gps_record() coord.gps_latitude = point[0] coord.gps_longitude = point[1] coords.append(coord) coords = gps_transfer.convert_coordinate_batch(coords) gps_datas = [] for coord in coords: gps_info = {} gps_info["lat"], gps_info["lng"], gps_info["count"] = round(coord.gps_latitude, 6), \ round(coord.gps_longitude, 6), 1 gps_datas.append(gps_info) json_path = str(user_id) + ".json" with open(os.path.join("../data/cluster_point_baidu", json_path), 'w') as outfile: json_file = {} json_file["gps"] = gps_datas json.dump(json_file, outfile)
def convert_coordinate_post(orig): coordstr = "" resList = [] for p in orig: coordstr += "%f,%f;" % (p.gps_longitude, p.gps_latitude) ak = "88E1cff5f2d3a260ac4b3864d8a9adde" fromVal = "1" toVal = "5" coords = "%s" % coordstr[0:-1] url = "http://api.map.baidu.com/geoconv/v1/" parm = {'ak': ak, 'from': fromVal, 'to': toVal, 'coords': coords} parm = urllib.urlencode(parm) req = urllib2.Request(url, parm) data = None #print url try: while (not data): response = urllib2.urlopen(req) data = response.read() data = json.loads(data) if (not data): print "sleep 1s" time.sleep(1) #print type(data) plist = data["result"] except: print "Error happen\n" return resList #print len(plist) for p in plist: point = gps_record.gps_record() point.gps_longitude = p["x"] point.gps_latitude = p["y"] resList.append(point) return resList
def convert_coordinate_post(orig): coordstr = "" resList = [] for p in orig: coordstr += "%f,%f;" %(p.gps_longitude,p.gps_latitude) ak = "88E1cff5f2d3a260ac4b3864d8a9adde" fromVal= "1" toVal = "5" coords = "%s" %coordstr[0:-1] url = "http://api.map.baidu.com/geoconv/v1/" parm = {'ak':ak, 'from':fromVal, 'to':toVal, 'coords':coords } parm = urllib.urlencode(parm) req = urllib2.Request(url, parm) data = None #print url try: while (not data): response = urllib2.urlopen(req) data = response.read() data = json.loads(data) if (not data): print "sleep 1s" time.sleep(1) #print type(data) plist= data["result"] except : print "Error happen\n" return resList #print len(plist) for p in plist: point = gps_record.gps_record() point.gps_longitude = p["x"] point.gps_latitude = p["y"] resList.append(point) return resList
def convert_coordinate_get(orig): coordstr = "" resList = [] for p in orig: coordstr += "%f,%f;" %(p.gps_longitude,p.gps_latitude) coords = "coords=%s" %coordstr[0:-1] ak = "ak=88E1cff5f2d3a260ac4b3864d8a9adde" fromVal= "from=1" toVal = "to=5" url = "http://api.map.baidu.com/geoconv/v1/?"+ ak \ + "&"+ fromVal + "&" + toVal + "&" + coords ak = "88E1cff5f2d3a260ac4b3864d8a9adde" data = None #print url try: while (not data): data = urllib2.urlopen(url) data = data.read() data = json.loads(data) if (not data): print "sleep 1s" time.sleep(1) #print type(data) plist= data["result"] except : print "Error happen\n" return None for p in plist: point = gps_record.gps_record() #print p["x"] point.gps_longitude = p["x"] point.gps_latitude = p["y"] resList.append(point) return resList
def convert_coordinate_get(orig): coordstr = "" resList = [] for p in orig: coordstr += "%f,%f;" % (p.gps_longitude, p.gps_latitude) coords = "coords=%s" % coordstr[0:-1] ak = "ak=88E1cff5f2d3a260ac4b3864d8a9adde" fromVal = "from=1" toVal = "to=5" url = "http://api.map.baidu.com/geoconv/v1/?"+ ak \ + "&"+ fromVal + "&" + toVal + "&" + coords ak = "88E1cff5f2d3a260ac4b3864d8a9adde" data = None #print url try: while (not data): data = urllib2.urlopen(url) data = data.read() data = json.loads(data) if (not data): print "sleep 1s" time.sleep(1) #print type(data) plist = data["result"] except: print "Error happen\n" return None for p in plist: point = gps_record.gps_record() #print p["x"] point.gps_longitude = p["x"] point.gps_latitude = p["y"] resList.append(point) return resList
def query_gps( query_str): global dbconn gps_obj_list = [] if (dbconn == None ): dbconn = connect_db() if (dbconn) : try: cur = dbconn.cursor(); count = cur.execute(query_str) #print 'There is %s rows record' %count #result = cur.fetchone() #results = cur.fetchall() results = cur.fetchall() for row in results: gps_obj = gps_record.gps_record.__init_with_query_sql__(gps_record.gps_record(), row) gps_obj_list.append(gps_obj); return gps_obj_list except MySQLdb.Error,e: warnString = " Mysql Error sql = %d %s " % (e.args[0],e.args[1]) log_init().warning(warnString) sys.exit(1)
def query_gps(query_str): global dbconn gps_obj_list = [] if (dbconn == None): dbconn = connect_db() if (dbconn): try: cur = dbconn.cursor() count = cur.execute(query_str) #print 'There is %s rows record' %count #result = cur.fetchone() #results = cur.fetchall() results = cur.fetchall() for row in results: gps_obj = gps_record.gps_record.__init_with_query_sql__( gps_record.gps_record(), row) gps_obj_list.append(gps_obj) return gps_obj_list except MySQLdb.Error, e: warnString = " Mysql Error sql = %d %s " % (e.args[0], e.args[1]) log_init().warning(warnString) sys.exit(1)