Advertisement
PrezesSmoku

Pogoda dodatki

May 31st, 2023 (edited)
737
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.45 KB | None | 0 0
  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()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement