"""
2020. május: Meteorológiai jelentés
@author Klemand66
"""

print("\n1. feladat\n")

betxt = open("tavirathu13.txt")

meresek=[]
for sor in betxt:
    darsor=sor.strip().split()
    adatsor=[darsor[0],darsor[1][:2],darsor[1][2:],darsor[2][:3],int(darsor[2][3:]),int(darsor[3])]
    #        0: kód  1: óra        2: perc       3: szélirány  4: szélerősség     5: hőmérséklet
    meresek.append(adatsor)
      
betxt.close()
print("A beolvasás és a szövegfájl lezárása sikeresen befejeződött.")



print("\n2. feladat\n")

aktkod=input("Adja meg egy település kódját (Pl. BP, DC, PP, SM)! Település: ").upper()
amek=list(filter(lambda m: m[0]==aktkod ,meresek)) # az aktkódhoz tartozó mérések

print(f'Az utolsó mérési adat a megadott településről {amek[-1][1]}:{amek[-1][2]}-kor érkezett.')



print("\n3. feladat\n")

minh=min(meresek,key=lambda m: m[5])
maxh=max(meresek,key=lambda m: m[5])

print(f'A legalacsonyabb hőmérséklet: {minh[0]} {minh[1]}:{minh[2]} {minh[5]} fok.')
print(f'A legmagasabb hőmérséklet: {maxh[0]} {maxh[1]}:{maxh[2]} {maxh[5]} fok.')



print("\n4. feladat\n")

szelcsendesek=list(filter(lambda m: m[3]=="000" and m[4]==0 ,meresek))

if len(szelcsendesek)>0:
    for sz in szelcsendesek:
        print(f'{sz[0]} {sz[1]}:{sz[2]}')
else:
    print("Nem volt szélcsend a mérések idején.")



print("\n5. feladat\n")

vlista=[]
for m in meresek:
    if m[0] not in vlista:
        vlista.append(m[0])

for v in vlista:
    aktvarosok=list(filter(lambda m: m[0]==v ,meresek))
    print(v,end=" ")
    
    aktidok=list(filter(lambda a: a[1] in ["01","07","13","19"] ,aktvarosok))
    # Előfordulhat, hogy az egyik órában több adat is jött, a másikban egy sem.
    oralista=[]
    for a in aktidok:
        if a[1] not in oralista:
            oralista.append(a[1])
    if len(oralista)==4:
        homersekletek=list(map(lambda i: aktidok[i][5] ,range(len(aktidok))))
        print(f'Középhőmérséklet: {sum(homersekletek)/len(aktidok):.0f};',end=" ")
    else:
        print("NA;",end=" ")
        
    minh=min(aktvarosok,key=lambda a: a[5])
    maxh=max(aktvarosok,key=lambda a: a[5])
    print(f'Hőmérséklet-ingadozás: {maxh[5]-minh[5]}') 



print("\n6. feladat\n")

for v in vlista:
    kitxt = open(f'{v}.txt',"w")
    kitxt.write(f'{v}\n')
    aktvarosok=list(filter(lambda m: m[0]==v ,meresek))
    for a in aktvarosok:
        kitxt.write(f'{a[1]}:{a[2]} {a[4]*"#"}\n')
    kitxt.close()

print("A kiíratás és a szövegfájlok lezárása sikeresen befejeződött.")


input("\nA befejezéshez nyomd meg az ENTER billentyűt!")
