TigerJython | xx für Gymnasien |
Für die Darstellung der aktuellen Wetterlage in einem Turtle-Fenster kann man Wetter-Sprites verwenden. Das aktuelle Wetter kann im Internet abgefragt werden. Das Modul weather stellt Befehle zur Verfügung, mit welchen Browserabfragen von Wetterdaten auf dem Wetterdatenserver https://openweathermap.com durchgeführt werden können. Der Wetterdatenserver sammelt die Wetterdaten in über 200 000 Städten der ganzen Welt und aktualisiert sie jede Stunde. |
Beispiel 1: Wetterkarte In diesem Beispiel wird das Wetter in den Städten Genf, Lausanne, Bern Luzern, Basel, Zürich, Winterthur, Chur und Locarno mit Hilfe von Wetter-symbolen
dargestellt. Die passenden Wetter-Sprites und eine einfache Schweizerkarte können Sie unter sprites.zip herunterladen. Packen Sie diese zip-Datei aus und speichern Sie den Ordner sprites im Unterverzeichnis /bin des Installationsverzeichnisses. Dann werden die Bilder automatisch in Ihre Programme eingefügt. Falls Sie eine andere Landeskarte brauchen, speichern Sie diese in der Grösse von max. 800x600 Pixel im Untererzeichnis /bin/sprites des Installationsverzeichnisses.
|
Erklärungen zum Programmcode:
Die Schweizerkarte wird mit drawImage("sprites/ch.gif") in das Turtlefenster eingefügt, wobei die Datei ch.gif in der Sprites-Bibliothek enthalten ist. Falls Sie eine andere Landeskarten benötigen, speichern sie diese im png- oder gif-Formal im Unterverzeichnis /bin/sprites des Installationsverzeichnisses. Dann wird sie automatisch in Ihren Programm eingeführt. | |
setPos(-365, -155) setzt die Turtle an die gegebene Position im Turtlefenster, welches 800x600 Pixel gross ist- (0, 0) ist in der Mitte des Fensters. |
Beispiel 2: Wetterdaten aus dem Internet Das Modul weather stellt Befehle zur Verfügung, mit welchen Browserabfragen auf dem Wetterdatenserver https://openweathermap.com durchgeführt werden können. Der Wetterdatenserver sammelt die Wetterdaten in über 200 000 Städten der ganzen Welt und aktualisiert sie jede Stunde. Folgende Daten können abgefragt werden: |
"temp" | Temperatur in °C |
"pressure" | Luftdruck in hPa |
"humidity" | Luftfeuchtigkeit in % |
"temp_min" | Tagesminimum der Temperatur |
"temp_max" | Tagesmaximum der Temperatur |
"description" | Wetterlage in Worten |
"sunrise" | Sonnenaufgang in Ortszeit |
"sunset" | Sonnenuntergang in Ortszeit |
"datetime" | Datum und Zeit des Ortes |
In diesem Beispiel wird die aktuelle Temperatur, Luftfeuchtigkeit und Wetterlage in einigen Schweizer Städten abgefragt und im Ausgabefenster angezeigt. Dabei wird der defaultKey verwendet.
|
# WeatherEx2.py from gturtle import * import weather def printWeather(city): info = weather.request(city) print(city,": temp =",info["temp"]," humidity =",info["humidity"],"% ",info["description"]) cities = ["Genf","Bern","Zuerich","Luzern","Basel","Winterthur","Lausanne","Lugano","Chur"] for city in cities: printWeather(city) delay(100)
Programmcode markieren
|
Erklärungen zum Programmcode:
import weather: Importiert das Modul weather | |
info = weather.request(city): Wetterabfrage mit dem Standardschlüssel liefert eine Liste mit den Werten temp, pressure, humidity usw. |
In der Landeskarte werden die Wetter-Symbole mittels der aktuellen Daten, die bei jedem Programmstart automatisch vom Wetterserver abgefragt werden, angezeigt. Um den Programmcode zu strukturieren, verwendet man die Funktionen printWeather(city), drawWeather(city) und pos(city), die man für jede Stadt der Liste cities aufrufen kann.
|
Erklärungen zum Programmcode:
def drawWeather(city) bestimmt aufgrund des Ergebnisses info["description"] welches Wetterbild angezeigt wird | |
def pos(city) jeder Stadt der Liste cities werden die Koordinaten im Turtlefenster zugeordnet |
Aufgaben: Serie 20 |
1)
|
Erweitere das Beispiel 1 mit weiteren Städten. Die Koordinaten kannst du durch "probieren" bestimmen. Dabei kannst du das unten stehende Programm verwenden. Bei jedem Mausklick in der Schweizerkarte werden die Koordinaten im Ausgabefenster angezeigt. from gturtle import * def onMousePressed(x, y): print(x, y) setPos(x, y) dot(20) makeTurtle(mousePressed = onMousePressed) hideTurtle() drawImage("sprites/ch.gif") |
2)
|
Suche im Internet eine einfache Europa-Karte und speichere diese ca. in der Grösse 800x600 Pixel auf deinem Computer im Unterverzeichnis /bin/sprites des Installationsverzeichnisses. Erstelle eine Wetterkarte für einige europäische Städte. |