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() |