The weather app
Introduction
Several weather servers provide weather data and forecasts that can be used by a
weather app. Here are the two I had a look into:
openweathermap is probably the more powerful one but you must register (for free) to be able to use it, while you can get weather data from metaweather.com also without registration.
Both sites have their own API (
Application
Programming
Interface) and return the weather data in form of a json string, which must be decoded.Both sites provide a number of icons representing the different weather conditions.
metaweather.com
In order to get weather data from
metaweather.com you must perform an HTTP GET request on URL:
https://www.metaweather.com/api/location/{woeid}/
where
woeid is the "where on earth id", an integer number corresponding to the place for which you want the weather data. In order to get the
woeid you can make a query giving the GPS coordinates of this place:
https://www.metaweather.com/api/location/search/?lattlong={latt},{long}
For my place in Austria the GPS data are
- lattitude: 47.52637
- longitude: 9.74882
and sending the request:
https://www.metaweather.com/api/location/search/?lattlong=47.53,9.75
returns:
This shows that the nearest city for which I can get a woeid is Zürich with the id:784794
Sending the request,using the method
reponse =
urequests.get(url) with the url below
https://www.metaweather.com/api/location/784794/
returns a json string of this type, from which you can pick the information of interest to you:
response.status_code gives you the http return code (should be 200 if successful).
data = response.json() gets the json data for you and converts it into a Python dictionary from which you must extract the information relevant to you. I pick up this information and put it into a friendly GUI:
If you compare this with the json string, you should find back the information. Only the wind speed is different because I convert the units from mph to kph. You can also see that it is really cold here in Switzerland in February!
openweathermap.org
The basic way for getting weather data from openweathermap.org is the same as described above. However the url string is different following a different API. On openweathermap.org you don't need the woeid, but you can use a city name or the GPS data directly. On the other hand you need an extra apikey, which you get with your registration.
--
Uli Raich - 2021-02-07
Comments