Exemplo n.º 1
0
def analyze(dataBase):
    analysis = {
        'trips': dataBase['trips'],
        'vertices': Analysis.numVertices(dataBase),
        'edges': Analysis.numEdges(dataBase),
        'Clusters': Analysis.numClusters(dataBase)
    }
    return analysis
def rutaTuristica(dataBase, lon1, lat1, lon2, lat2):
    startStation = Analysis.nearbyStations(dataBase, lon1, lat1)
    endStation = Analysis.nearbyStations(dataBase, lon2, lat2)
    route = Analysis.nearbyRoute(dataBase, startStation, endStation)
    return {
        'start': Analysis.getStation(dataBase, startStation)['name'],
        'end': Analysis.getStation(dataBase, endStation)['name'],
        'route': route[0],
        'time': secondsToTime(route[1])
    }
def mejorHorario(database, area1, area2, time1, time2):
    area1 = area1 + '.0'
    area2 = area2 + '.0'
    time1 = Date.newTime(time1)
    time2 = Date.newTime(time2)
    trip = Analysis.getBestTime(database, area1, area2, time1, time2)
    return Date.secondsToTime(trip[0]), trip[1]
def IdentificarBicicletas(dataBase, bikeID, date):
    date = datetime.strptime(date, '%Y-%m-%d')
    tracking = Analysis.bikeTracking(dataBase, bikeID, date.date())

    tracking['stopTime'] = secondsToTime(tracking['stopTime'])
    tracking['useTime'] = secondsToTime(tracking['useTime'])

    return tracking
def mvpDia(database, date, n):
    date = Date.newDate(date)
    wallets = Analysis.getPoints(database, date)
    values = []
    while (n > len(values)) and (not lt.isEmpty(wallets)):
        wallet = lt.removeFirst(wallets)
        values.append((wallet.id, wallet.points))
    return values
def mvpRango(database, date1, date2, m):
    date1 = Date.newDate(date1)
    date2 = Date.newDate(date2)
    wallets = Analysis.getPointsV2(database, date1, date2)
    values = []
    while (m > len(values)) and (not lt.isEmpty(wallets)):
        wallet = lt.removeFirst(wallets)
        values.append((wallet['id'], wallet['points']))
    return values
def EstacionesParaPublicidad(dataBase, target):
    analysis = Analysis.topTarget(dataBase, target)
    analysis = listiterator.newIterator(analysis)

    topList = list.newList()

    maxVal = 0
    switch = True
    element = None
    if listiterator.hasNext(analysis):
        element = listiterator.next(analysis)
        maxVal = element['weight']
    while switch and listiterator.hasNext(analysis):
        element['vertexA'] = Analysis.getStation(dataBase,
                                                 element['vertexA'])['name']
        element['vertexB'] = Analysis.getStation(dataBase,
                                                 element['vertexB'])['name']
        list.addLast(topList, element)
        element = listiterator.next(analysis)
        switch = maxVal == element['weight']

    return topList
def estacionesCriticas(dataBase) -> dict:
    top3In = list.newList()
    top3Out = list.newList()
    bot3 = list.newList()

    analysis = Analysis.topViajes(dataBase)

    i = 0
    while i < 3:
        list.addLast(top3In, list.removeFirst(analysis[0]))
        list.addLast(top3Out, list.removeFirst(analysis[1]))
        list.addFirst(bot3, list.removeLast(analysis[2]))
        i += 1
    del analysis

    return (top3In, top3Out, bot3)
def rutasCirculares(dataBase, tiempoi, tiempof, estacioni):
    analisis = Analysis.rutasCirculares(dataBase, tiempoi, tiempof, estacioni)
    return analisis
def ClustersViajes(dataBase, id1, id2) -> dict:
    respuesta = {
        'clusters': Analysis.numClusters(dataBase),
        'conected': Analysis.sameCluster(dataBase, id1, id2)
    }
    return respuesta
Exemplo n.º 11
0
def ejecutarRutasCirculares(database)->None:
    tiempoi = int(input('Ingrese el primero tiempo del rango que desea: '))
    tiempof = int(input('Ingrese el segundo tiempo del rango que desea: '))
    station1 = input('Ingrese la estacion inicial: ')
    analysis = Analysis.rutasCirculares(database, tiempoi, tiempof, station1)
    print(f'\n\tSe han encontrado {analysis[0]} rutas circulares las cuales son: {analysis[1]}')