View difference between Paste ID: JM0qZSEq and pMf2Qmp8
SHOW: | | - or go back to the newest paste.
1
import requests
2
import pygame
3
4
link = "https://danepubliczne.imgw.pl/api/data/synop/"
5
6
baza = requests.get(link)
7
lista_stacji = baza.json()
8
#print(lista_stacji)
9
i =1 
10
for stacja in lista_stacji:
11
    print(f"{i}. {stacja['stacja']}")
12
    i+=1
13
14
numer_stacji = int(input("Wprowadź numer wybranej stacji meteo: "))
15
wybrana_stacja = lista_stacji[numer_stacji-1]
16
#print(wybrana_stacja)
17
18
stacja = wybrana_stacja['stacja'] 
19
godzina = wybrana_stacja['godzina_pomiaru'] #liczba całkowita
20
temperatura = wybrana_stacja['temperatura'] #st. Celsjusza
21
cisnienie = wybrana_stacja['cisnienie']  #hPa
22
predkosc_wiatru = wybrana_stacja['predkosc_wiatru'] #m/s
23
kierunek_wiatru = wybrana_stacja['kierunek_wiatru'] #w stopniach kątowych ("skąd wieje")
24
#suma_opadu = wybrana_stacja['suma_opadu'] #mm na metr kwadratowy
25
suma_opadu = 12
26
tekst_stacji = f"Pogoda z godziny {godzina} ze stacji meteo w {stacja}"
27
tekst_cisnienia = f"Ciśnienie na poziomie {cisnienie} hPa"
28
tekst_temperatury = f"Temperatura wynosi {temperatura} °C"
29
tekst_wiatru = f"Wiatr wieje z prędkością {predkosc_wiatru} m/s z kierunku {kierunek_wiatru}"
30
tekst_opady = f"Suma opadów wynosi {suma_opadu} mm"
31
32
33
34
#szerokość i wysokość ekranu
35
SZEROKOSC_EKRANU = 1280
36
WYSOKOSC_EKRANU = 900
37
38
pygame.init()
39
pygame.font.init()
40
41
#obiekty ekranu, zegara i tła
42
ekran = pygame.display.set_mode([SZEROKOSC_EKRANU, WYSOKOSC_EKRANU])
43
zegar = pygame.time.Clock()
44
obraz_tla = pygame.image.load('images/background.png')
45
czcionka = pygame.font.SysFont('Comic Sans MS', 35) #nazwa i rozmiar czcionki
46
obraz_strzaly = pygame.image.load('images/arrow.png')
47
obraz_strzaly = pygame.transform.scale(obraz_strzaly, (300,300))
48
obraz_strzaly = pygame.transform.rotate(obraz_strzaly,-1 * int(kierunek_wiatru))
49
50
obraz_pogoda = pygame.image.load('images/clear.png')
51
if float(suma_opadu) > 0.1:
52
    if float(temperatura) > 5:
53
        obraz_pogoda = pygame.image.load('images/rain.png')
54
    else: 
55
        obraz_pogoda = pygame.image.load('images/snow.png')
56
57
#główna pętla
58
program_dziala = True
59
while program_dziala:
60
    for zdarzenie in pygame.event.get():
61
        if zdarzenie.type == pygame.KEYDOWN:
62
            if zdarzenie.key == pygame.K_ESCAPE:
63
                program_dziala = False
64
        elif zdarzenie.type == pygame.QUIT:
65
            program_dziala = False
66
67
    #wyświetl tło
68
    ekran.blit(obraz_tla, (0,0))
69
    
70
    stacja_tekst_pygame = czcionka.render(tekst_stacji, True,(0,0,0))
71
    ekran.blit(stacja_tekst_pygame, (16,16))
72
    cisnienie_tekst_pygame = czcionka.render(tekst_cisnienia, True, (0, 0, 0))
73
    ekran.blit(cisnienie_tekst_pygame, (16,70))
74
    kolor_temperatury = (0,0,0)
75
    if float(temperatura) < 5:
76
        kolor_temperatury = (0, 0, 156)
77
    elif float(temperatura) < 15:
78
        kolor_temperatury = (0, 156, 57)
79
    elif float(temperatura) < 25:
80
        kolor_temperatury = (255, 234, 0)
81
    else:
82
        kolor_temperatury = (255, 0, 0)
83
    temperatura_tekst_pygame = czcionka.render(tekst_temperatury, True, kolor_temperatury)
84
    ekran.blit(temperatura_tekst_pygame, (16,120))
85
    opady_tekst_pygame = czcionka.render(tekst_opady, True, (0, 0, 0))
86
    ekran.blit(opady_tekst_pygame, (16,170))
87
    wiatr_tekst_pygame = czcionka.render(tekst_wiatru, True, (0, 0, 0))
88
    ekran.blit(wiatr_tekst_pygame, (16,220))
89
90
    ekran.blit(obraz_strzaly, (100,300))
91
    ekran.blit(obraz_pogoda, (950,200))
92
    pygame.display.flip()
93
    zegar.tick(30) #liczba klatek na sekunde
94
pygame.quit()