Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- import pygame
- link = "https://danepubliczne.imgw.pl/api/data/synop/"
- baza = requests.get(link)
- lista_stacji = baza.json()
- #print(lista_stacji)
- i =1
- for stacja in lista_stacji:
- print(f"{i}. {stacja['stacja']}")
- i+=1
- numer_stacji = int(input("Wprowadź numer wybranej stacji meteo: "))
- wybrana_stacja = lista_stacji[numer_stacji-1]
- #print(wybrana_stacja)
- stacja = wybrana_stacja['stacja']
- godzina = wybrana_stacja['godzina_pomiaru'] #liczba całkowita
- temperatura = wybrana_stacja['temperatura'] #st. Celsjusza
- cisnienie = wybrana_stacja['cisnienie'] #hPa
- predkosc_wiatru = wybrana_stacja['predkosc_wiatru'] #m/s
- kierunek_wiatru = wybrana_stacja['kierunek_wiatru'] #w stopniach kątowych ("skąd wieje")
- #suma_opadu = wybrana_stacja['suma_opadu'] #mm na metr kwadratowy
- suma_opadu = 12
- tekst_stacji = f"Pogoda z godziny {godzina} ze stacji meteo w {stacja}"
- tekst_cisnienia = f"Ciśnienie na poziomie {cisnienie} hPa"
- tekst_temperatury = f"Temperatura wynosi {temperatura} °C"
- tekst_wiatru = f"Wiatr wieje z prędkością {predkosc_wiatru} m/s z kierunku {kierunek_wiatru}"
- tekst_opady = f"Suma opadów wynosi {suma_opadu} mm"
- #szerokość i wysokość ekranu
- SZEROKOSC_EKRANU = 1280
- WYSOKOSC_EKRANU = 900
- pygame.init()
- pygame.font.init()
- #obiekty ekranu, zegara i tła
- ekran = pygame.display.set_mode([SZEROKOSC_EKRANU, WYSOKOSC_EKRANU])
- zegar = pygame.time.Clock()
- obraz_tla = pygame.image.load('images/background.png')
- czcionka = pygame.font.SysFont('Comic Sans MS', 35) #nazwa i rozmiar czcionki
- obraz_strzaly = pygame.image.load('images/arrow.png')
- obraz_strzaly = pygame.transform.scale(obraz_strzaly, (300,300))
- obraz_strzaly = pygame.transform.rotate(obraz_strzaly,-1 * int(kierunek_wiatru))
- obraz_pogoda = pygame.image.load('images/clear.png')
- if float(suma_opadu) > 0.1:
- if float(temperatura) > 5:
- obraz_pogoda = pygame.image.load('images/rain.png')
- else:
- obraz_pogoda = pygame.image.load('images/snow.png')
- #główna pętla
- program_dziala = True
- while program_dziala:
- for zdarzenie in pygame.event.get():
- if zdarzenie.type == pygame.KEYDOWN:
- if zdarzenie.key == pygame.K_ESCAPE:
- program_dziala = False
- elif zdarzenie.type == pygame.QUIT:
- program_dziala = False
- #wyświetl tło
- ekran.blit(obraz_tla, (0,0))
- stacja_tekst_pygame = czcionka.render(tekst_stacji, True,(0,0,0))
- ekran.blit(stacja_tekst_pygame, (16,16))
- cisnienie_tekst_pygame = czcionka.render(tekst_cisnienia, True, (0, 0, 0))
- ekran.blit(cisnienie_tekst_pygame, (16,70))
- kolor_temperatury = (0,0,0)
- if float(temperatura) < 5:
- kolor_temperatury = (0, 0, 156)
- elif float(temperatura) < 15:
- kolor_temperatury = (0, 156, 57)
- elif float(temperatura) < 25:
- kolor_temperatury = (255, 234, 0)
- else:
- kolor_temperatury = (255, 0, 0)
- temperatura_tekst_pygame = czcionka.render(tekst_temperatury, True, kolor_temperatury)
- ekran.blit(temperatura_tekst_pygame, (16,120))
- opady_tekst_pygame = czcionka.render(tekst_opady, True, (0, 0, 0))
- ekran.blit(opady_tekst_pygame, (16,170))
- wiatr_tekst_pygame = czcionka.render(tekst_wiatru, True, (0, 0, 0))
- ekran.blit(wiatr_tekst_pygame, (16,220))
- ekran.blit(obraz_strzaly, (100,300))
- ekran.blit(obraz_pogoda, (950,200))
- pygame.display.flip()
- zegar.tick(30) #liczba klatek na sekunde
- pygame.quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement