示例#1
0
def breakPath(fid, row, db):
    br_time = row[0]
    new_fid = fid + chr(ord('a') + path_ctr)
    qry = "update flight set fid='{0}' where fid='{1}' and rec_time<'{2}'".format(
        new_fid, fid, br_time)
    print('executing query: ' + qry)
    getRes(qry, db)
示例#2
0
def getFidsBwStations(src, dest, db):
    qry = (
        "select fid, ttime from journeys where src={0} and dest={1} order by ttime asc;"
    ).format(src, dest)
    res = getRes(qry, db)
    fids = [x[0] for x in res]
    ttimes = [x[1] for x in res]

    print(fids)
    return fids, ttimes
示例#3
0
def addRoute(fid, clr, db, m):
    query = ("select lat, lon from flight where fid='{0}' order by rec_time;"
             ).format(fid)
    res = getRes(query, db)
    # print(res)
    for i in range(0, len(res) - 1):
        a = [float(x) for x in res[i]]
        b = [float(x) for x in res[i + 1]]
        # print(i)
        m.drawgreatcircle(a[1],
                          a[0],
                          b[1],
                          b[0],
                          linewidth=1,
                          color=clr,
                          label=fid)
    print('plotted route of ' + fid + ' with color ' + clr)
示例#4
0
    query = 'select fid, min(rec_time) as s_time, max(rec_time) as e_time from flight group by fid order by fid limit 1000;'
    csr.execute(query)
    r = csr.fetchone()
    tree = buildTree()
    values = []
    ctr = 0
    while r is not None:
        ctr += 1
        try:
            fid = r[0]
            dtime = int((r[2] - r[1]).total_seconds())
            # print(dtime)
            query = (
                'select fid,lat,lon from flight where fid="{0}" AND rec_time="{1}"'
            ).format(r[0], r[1])
            res1 = getRes(query, db)[0]
            spos = (float(res1[1]), float(res1[2]))

            query = (
                'select fid,lat,lon from flight where fid="{0}" AND rec_time="{1}"'
            ).format(r[0], r[2])
            res1 = getRes(query, db)[0]
            epos = (float(res1[1]), float(res1[2]))

            s_air = getAirport(spos, tree, db)
            e_air = getAirport(epos, tree, db)

            dist = haversine(spos, epos)
            print(ctr, fid, dtime, spos, epos, s_air, e_air, dist)
            # query = ('insert into journeys values ("{0}",{1},{2},{3},{4})').format(fid,s_air,e_air,dtime,dist)
            query = """insert into journeys values (%s,%s,%s,%s,%s)"""
示例#5
0
def getAirport(p, tree, db):
	pos=getNrPoint(p, tree)
	query=('select * from airports where lat={0} and lon={1}').format(pos[0], pos[1])
	res=getRes(query, db)[0]
	return int(res[0])
示例#6
0
def breakPath(fid, row, db):
    br_time = row[0]
    new_fid = fid + chr(ord('a') + path_ctr)
    qry = "update flight set fid='{0}' where fid='{1}' and rec_time<'{2}'".format(
        new_fid, fid, br_time)
    print('executing query: ' + qry)
    getRes(qry, db)


db = getConn()
thresh = 20 * 60
threshSpeed = 0.05
# fid='AAL1078'
qry = 'select fid from journeys limit 1000;'
res = getRes(qry, db)
fids = ['AAL1366']
for fid in fids:
    try:
        print('checking for fid: ' + fid)
        qry = "select * from flight where fid='{0}' order by rec_time asc;".format(
            fid)
        res = getRes(qry, db)
        path_ctr = 0
        for i in range(1, len(res)):
            dtime = (res[i][0] - res[i - 1][0]).total_seconds()
            ddist = haversine((res[i][4], res[i][5]),
                              (res[i - 1][4], res[i - 1][5]))
            speed = ddist / dtime
            if (dtime > thresh and speed < threshSpeed):
                print(ddist / dtime)
示例#7
0
def getAirport(p, tree, db):
    pos = getNrPoint(p, tree)
    query = ('select * from airports where lat={0} and lon={1}').format(
        pos[0], pos[1])
    res = getRes(query, db)[0]
    return int(res[0])
示例#8
0
def breakPath(fid, row, db):
	br_time=row[0]
	new_fid=fid+chr(ord('a')+path_ctr)
	qry="update flight set fid='{0}' where fid='{1}' and rec_time<'{2}'".format(new_fid, fid, br_time);
	print('executing query: '+qry)
	getRes(qry, db)
示例#9
0
from haversine import haversine

def breakPath(fid, row, db):
	br_time=row[0]
	new_fid=fid+chr(ord('a')+path_ctr)
	qry="update flight set fid='{0}' where fid='{1}' and rec_time<'{2}'".format(new_fid, fid, br_time);
	print('executing query: '+qry)
	getRes(qry, db)


db=getConn()
thresh=20*60
threshSpeed=0.05
# fid='AAL1078'
qry='select fid from journeys limit 1000;'
res=getRes(qry, db)
fids=['AAL1366']
for fid in fids:
	try:
		print('checking for fid: '+fid)
		qry="select * from flight where fid='{0}' order by rec_time asc;".format(fid)
		res=getRes(qry, db)
		path_ctr=0
		for i in range(1, len(res)):
			dtime=(res[i][0]-res[i-1][0]).total_seconds();
			ddist=haversine((res[i][4], res[i][5]), (res[i-1][4], res[i-1][5]))
			speed=ddist/dtime
			if(dtime>thresh and speed<threshSpeed):
				print(ddist/dtime)
				breakPath(fid, res[i], db)
				path_ctr+=1