Weather 2016 programming project - BCCN-Prog/weather_2016 GitHub Wiki

Useful link: Top 10 weather APIs

Data sources

cities_table = {"berlin": 1, "hamburg": 2, "muenchen": 3, "koeln": 4, "frankfurt": 5, "stuttgart": 6, "bremen" :7, "leipzig": 8, "hannover": 9, "nuernberg": 10, "dortmund": 11, "dresden": 12, "kassel": 13, "kiel": 14, "bielefeld": 15, "saarbruecken": 16, "rostock": 17, "freiburg": 18, "magdeburg": 19, "erfurt": 20}

provider_list = { 'timeanddate_com': 0, 'wetter_com': 1, 'owm': 2, 'wetter_de': 3, 'accuweather': 4, 'wunderground': 5, 'historical': 6}

Potential weather web sites (and their data source if known)

Which of the following are now working on the server?

  • openweathermap.org + API - [Claus]
  • wetter.com (ecmwf) - [Jan]
  • timeanddate.com/weather (customweather) - [Alicja]
  • wetter.de (meteogroup) - [Greg]
  • wunderground + API - [Ines]
  • accuweather [Denis]
  • (weather.com [Claudia] - abandoned)
  • (yahoo weather + API - abandoned)
  • (wetter24.de (meteogroup) - abandoned)
  • (wetter.info (meteogroup + DWD) - abandoned)

FYI: Weather.com and Wunderground need to be accessed via their APIs. We did not succeed in scraping them. They do however share the same parent company and now use a single API scheme for data access (despite having different data).

variables of interest

  • air temperature
  • precipitation
  • humidity
  • air pressure (?)
  • wind speed
  • wind direction
  • hours of sunshine
  • cloud cover

Data representation

Structure of the dictionary:
{'site' : (String) e.g. 'Wetter.de'
'city' : (String)
'date' : int
'prediction_time': int

'hourly': {'00' (String) : { *see 'hourly' below }
'01' (String) : { ... }
...
'24' (String) : { ... }

'daily': {'0' (String) : { *see 'daily' below }
: {'1' (String): {...}
...
: {'10' (): {...}
}

for each hour:
'hourly' {'00' : {
'temp' : Celsius
'humidity' : %
'pressure' : hPa
'wind_speed': m/s
'rain_amt': mm = liter/m²
'rain_chance': %
'cloud_cover': %
}

for each day:
'daily': {'0': {
'high': Celsius
'low': Celsius
'rain_chance': %
'rain_amt': mm = liter/m²
'pressure': hPa (ave)
'cloud_cover': % (ave)
}

Datatypes:

  • float for all numbers
  • int for time and date on the highest dict level
  • string for texts and all keys (also number keys)
  • date format: 'YYYYMMDD'
  • prediction_time format: 'YYYYMMDDHHMM'
  • NaN or none for void values (has to be figured out still)
  • For forecasts:
    Day 1 = 1 day in the future
    Day 0 = Same day
  • Void or no data: None
  • Hourly index denotes hour of the day, e.g. 19 for 7pm

Things to figure out:

  • Shall we also use double digits for the daily keys?
  • Shall we aim for including day/hour 0?

Query interface

Reports and Visualisations

Fancy statistical analysis

Seaborn Python data visualisation

Google maps API

OpenStreetMaps web map API

HERE maps API

HERE Data Lens map visualization toolkit

Protocols: For each session can be found [here] (https://github.com/BCCN-Prog/weather_2016/tree/master/protocols) (now in codebase)

⚠️ **GitHub.com Fallback** ⚠️