def obte_primera_franja(nom_fitxer, llindar):
    with open(nom_fitxer, 'r') as f:
        trobat = False
        for num_franja, linia in enumerate(f):
            temp = float(linia)
            trobat = temp > llindar
            if trobat:
                break
    if not trobat:
        num_franja = -1
    return num_franja


def obte_estacio_data(nom_fitxer):
    est, data_s = nom_fitxer.removesuffix('.txt').split('-')
    dia = int(data_s[6:])
    mes = int(data_s[4:6])
    any_ = int(data_s[:4])
    return est, dia, mes, any_


def agrega(fitxers, llindars):
    ta = {
        'estació': [],
        'data': [],
        'franja': [],
    }
    for fitxer in fitxers:
        est, dia, mes, any_ = obte_estacio_data(fitxer)
        franja = obte_primera_franja(fitxer, llindars[dia, mes, any_])
        ta['estació'].append(est)
        ta['data'].append((dia, mes, any_))
        ta['franja'].append(franja)
    return ta
