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)
Beispiel #2
0
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)
Beispiel #3
0
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)
Beispiel #6
0
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)
Beispiel #8
0
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
Beispiel #11
0
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)
Beispiel #13
0
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)