def getaccidentrange(analyzer,minkey,maxkey):
    accidentsdate=analyzer['dateIndex']
    dates= om.values(accidentsdate,minkey,maxkey)
    categoria=lt.newList()
    categoriamax=None
    lt.addLast(categoria,0)
    lt.addLast(categoria,0)
    lt.addLast(categoria,0)
    lt.addLast(categoria,0)
    
    cantidad=0
    for i in range(1,lt.size(dates)+1):
        fecha=lt.getElement(dates,i)
        for a in range(1,lt.size(fecha)+1):
            cantidad += 1
            accidente=lt.getElement(fecha,a)
            severidad=int(accidente['Severity'])
            value=lt.getElement(categoria,severidad)
            lt.insertElement(categoria, value+1,severidad)
            if cantidad==1:
                categoriamax=severidad 
            elif value+1>lt.getElement(categoria,categoriamax):
                categoriamax=severidad
                
    return categoria,cantidad,categoriamax
Esempio n. 2
0
def plotMinimumCostPathMap(analyzer, vertexa, vertexb):
    """
    Crea un mapa interactivo de la ruta de costo mínimo entre dos
    puntos de conexión
    """
    lstvertexs = controller.getMinimumCostPathVertexs(analyzer, vertexb)
    lstcoordinates = controller.getPathCoordinates(analyzer, lstvertexs)
    origincoords = lt.firstElement(lstcoordinates)
    destcoords = lt.lastElement(lstcoordinates)
    originpos = lt.isPresent(lstcoordinates, origincoords)
    destpos = lt.isPresent(lstcoordinates, destcoords)
    lt.removeFirst(lstcoordinates)
    lt.removeLast(lstcoordinates)
    map = folium.Map(origincoords, zoom_start=2.5)
    for location in lt.iterator(lstcoordinates):
        folium.Marker(location).add_to(map)
    lt.insertElement(lstcoordinates, origincoords, originpos)
    lt.insertElement(lstcoordinates, destcoords, destpos)
    folium.Marker(origincoords,
                  str(vertexa.replace('-', ', ')),
                  icon=folium.Icon(icon='flag', color='red')).add_to(map)
    folium.Marker(destcoords,
                  str(vertexb.replace('-', ', ')),
                  icon=folium.Icon(icon='flag', color='red')).add_to(map)
    folium.PolyLine(lstcoordinates['elements'],
                    color="grey",
                    weight=2.5,
                    opacity=0.75).add_to(map)
    map.save("map3.html")
Esempio n. 3
0
def insert(heap, element):
    """
    Guarda la pareja llave-valor en el heap. Lo guarda en la última
    posición y luego hace swim del elemento

    Args:
        heap: El arreglo con la informacion
        element: El elemento a guardar
    Returns:
        El heap con el nuevo elemento
    Raises:
        Exception
    """
    try:
        heap['size'] += 1
        lt.insertElement(heap['elements'], element, heap['size'])
        swim(heap, heap['size'])
        return heap
    except Exception as exp:
        error.reraise(exp, 'heap:insert')
Esempio n. 4
0
def insert(iheap, key, index):
    """
    Inserta la llave key con prioridad index

    Args:
        iheap: El heap indexado
    Returns:
       El iheap con la nueva paraja indexada
    Raises:
        Exception
    """
    try:
        if not map.contains(iheap['qpMap'], key):
            iheap['size'] += 1
            lt.insertElement(iheap['elements'], {
                'key': key,
                'index': index
            }, iheap['size'])
            map.put(iheap['qpMap'], key, iheap['size'])
            swim(iheap, iheap['size'])
        return iheap
    except Exception as exp:
        error.reraise(exp, 'indexheap:newindexheap')
def getaccidenthourrange (analyzer,minkey,maxkey):
    accidentshour=analyzer['hourIndex']
    mintime = (60*int(minkey[0:2]))+int(minkey[3:5])
    maxtime = (60*int(maxkey[0:2]))+int(maxkey[3:5])

    hours= om.values(accidentshour,mintime,maxtime)
    
    categoria=lt.newList()
    lt.addLast(categoria,0)
    lt.addLast(categoria,0)
    lt.addLast(categoria,0)
    lt.addLast(categoria,0)
    cantidad=0
    for i in range(1,lt.size(hours)+1):
        hora=lt.getElement(hours,i)
        
        for a in range(1,lt.size(hora)+1):
            cantidad += 1
            accidente=lt.getElement(hora,a)
            severidad=int(accidente['Severity'])
            valor=lt.getElement(categoria,severidad)
            lt.insertElement(categoria,valor+1,severidad)
   
    return categoria,cantidad
def test_insertElement_array(alt, books):
    assert lt.isEmpty(alt) is True
    assert lt.size(alt) == 0
    lt.insertElement(alt, books[0], 1)
    assert lt.size(alt) == 1
    lt.insertElement(alt, books[1], 2)
    assert lt.size(alt) == 2
    lt.insertElement(alt, books[2], 1)
    assert lt.size(alt) == 3
    book = lt.getElement(alt, 1)
    assert book == books[2]
    book = lt.getElement(alt, 2)
    assert book == books[0]
Esempio n. 7
0
def estacionesCriticas(analyzer):

    cuenta= 0
    estaciones= gr.vertices(analyzer["graph"])
    listaEntrada= lt.newList("ARRAY_LIST", comparestations)
    listaSalida= lt.newList("ARRAY_LIST", comparestations)
    listaSolitarias= lt.newList("ARRAY_LIST", comparestations)
    entradasConcurridas= lt.newList("ARRAY_LIST", compareSizes)
    salidasConcurridas= lt.newList("ARRAY_LIST", compareSizes)
    estacionesSolitarias= lt.newList("ARRAY_LIST", compareSizes)
    while cuenta<lt.size(estaciones):
        estacion= lt.getElement(estaciones, cuenta)
        entrada= gr.indegree(analyzer["graph"], estacion)        
        lt.addFirst(entradasConcurridas,entrada)
        salida= gr.outdegree(analyzer["graph"], estacion)
        lt.addFirst(salidasConcurridas,salida)
        bidireccional= gr.degree(analyzer["graph"], estacion)
        lt.addFirst(estacionesSolitarias,bidireccional)
        cuenta+= 1

    entradasOrg= sel.selectionSort(entradasConcurridas,lessequal)
    salidasOrg= sel.selectionSort(salidasConcurridas,lessequal)
    solitariasOrg= sel.selectionSort(estacionesSolitarias,lessequal)

    for conteo in range(0,3):
        if entrada == lt.getElement(entradasOrg, conteo):
            lt.insertElement(listaEntrada, estacion, conteo)
        if salida == lt.getElement(salidasOrg, conteo):
            lt.insertElement(listaSalida, estacion, conteo)
        if bidireccional == lt.getElement(solitariasOrg, conteo):
            lt.insertElement(listaSolitarias, estacion, conteo)
    if lt.size(listaEntrada) > 3:
        lt.removeLast(listaEntrada)
    if lt.size(listaSalida) > 3:
        lt.removeLast(listaSalida)
    if lt.size(listaSolitarias) > 3:
        lt.removeLast(listaSolitarias)

    return (listaEntrada, listaSalida, listaSolitarias)
def insertelement(lst, element, pos):
    return lt.insertElement(lst, element, pos)
Esempio n. 9
0
def insertarElemento(lst, elemento, pos):
    lt.insertElement(lst, elemento, pos)