An open API service indexing awesome lists of open source software.

https://github.com/oduerr/weather

Simple weather app to be viewed in the browser.
https://github.com/oduerr/weather

Last synced: 2 days ago
JSON representation

Simple weather app to be viewed in the browser.

Awesome Lists containing this project

README

          

# โ›… Weather App

A mobile-friendly weather forecast app with multiple models, interactive charts, a calendar overview, and observed data integration. Deployed as a static page โ€” no server needed.

๐Ÿ”— **Live**: https://oduerr.github.io/weather/

---

## Panels

| Panel | Description |
|---|---|
| ๐Ÿ”€ **Compare** *(default)* | Overlay multiple forecast models side by side with temperature, rain, wind, UV, symbols |
| ๐ŸŒก๏ธ **Temperature** | Hourly temperature, precipitation, cloud cover, humidity, visibility with observed overlays |
| โ˜€๏ธ **UV & Wind** | UV index and wind speed/gusts with Beaufort scale; wind direction shown as arrows on the wind trace |
| ๐Ÿ“… **Overview** | Calendar grid (Monโ€“Sun weeks); today highlighted; weekends tinted; past days filled with BrightSky observed data |
| ๐Ÿ“ **Actuals** | Side-by-side comparison of observed values (DWD station, BrightSky) vs current forecast |

---

## Features

- **Multi-model forecast**: Best Match, ICON D2/EU/Global, MeteoSwiss CH1/CH2, ECMWF, GFS, AROME and many more
- **Compare panel**: Toggle any combination of models and parameters (symbols, temperature, rain, wind, UV, humidity, dew point, clouds, visibility)
- **Calendar overview**: Weekly Monโ€“Sun grid with today highlighted; past days of the current week show BrightSky observed data with "Obs." badge (Konstanz only)
- **Rain Radar**: Opens an animated radar map (`radar.html`) centred on the selected location
- **Observed data** (Konstanz): DWD station via BrightSky (temperature, wind, humidity, precipitation, pressure) + HTWG fogcast station (air + lake water temperature)
- **Swipe navigation**: Swipe left/right to pan time axis; swipe up/down to cycle panels
- **Keyboard shortcuts**: `1` `2` `5` `a` for view range, `t` `u` `c` `o` for panels, `r` for Radar, `?` for help
- **Mobile-optimised**: Compact axis layout on screens <768px; touch-friendly controls
- **URL-driven state**: Full app state shareable as a URL

---

## URL Parameters

| Parameter | Values | Description |
|---|---|---|
| `lat` | float | Latitude |
| `lon` | float | Longitude |
| `name` | string | Location display name |
| `model` | model id | Weather model (see list in app) |
| `panel` | `compare` `temperature` `uv_wind` `overview` `actuals` | Active panel |
| `view` | `1d` `2d` `5d` `all` | Time range |

### Example links

```
# Konstanz โ€” Compare panel
https://oduerr.github.io/weather/?lat=47.6952&lon=9.1307&name=Konstanz&panel=compare

# Zurich โ€” Temperature, 2-day view, MeteoSwiss CH1
https://oduerr.github.io/weather/?lat=47.3769&lon=8.5417&name=Zurich&model=meteoswiss_icon_ch1&panel=temperature&view=2d

# Espoo โ€” 5-day overview
https://oduerr.github.io/weather/?lat=60.2055&lon=24.6559&name=Espoo&panel=overview&view=5d
```

### Saved locations

| Location | Link |
|---|---|
| ๐Ÿ‡ฉ๐Ÿ‡ช Konstanz | https://oduerr.github.io/weather/?lat=47.6952&lon=9.1307&name=Konstanz |
| ๐Ÿ‡จ๐Ÿ‡ญ Zurich | https://oduerr.github.io/weather/?lat=47.3769&lon=8.5417&name=Zurich&model=meteoswiss_icon_ch1 |
| ๐Ÿ‡จ๐Ÿ‡ญ ICON CH1 Chรคserrugg | https://oduerr.github.io/weather/?lat=47.1549&lon=9.3128&name=Chรคserrugg&model=meteoswiss_icon_ch1 |
| ๐Ÿ‡จ๐Ÿ‡ญ Wildhaus | https://oduerr.github.io/weather/?lat=47.2033&lon=9.3505&name=Wildhaus&model=meteoswiss_icon_ch1 |
| ๐Ÿ‡ซ๐Ÿ‡ฎ Espoo | https://oduerr.github.io/weather/?lat=60.2055&lon=24.6559&name=Espoo |
| ๐ŸŒฒ Fischbach | https://oduerr.github.io/weather/?lat=48.1577&lon=8.4876&name=Fischbach |

---

## Keyboard Shortcuts

| Key | Action |
|---|---|
| `1` `2` `5` `a` | View range: 1d / 2d / 5d / All |
| `t` | Temperature panel |
| `u` | UV & Wind panel |
| `c` | Compare panel |
| `o` | Overview panel |
| `r` | Open Radar in new tab |
| `โ†` `โ†’` | Pan time axis |
| `โ†‘` `โ†“` | Cycle panels |
| `Esc` | Show / hide controls |
| `?` | Keyboard shortcuts help |

---

## Data Sources

| Source | Data | Coverage |
|---|---|---|
| [Open-Meteo](https://open-meteo.com/) | Forecast (all models) | Worldwide |
| [BrightSky / DWD](https://brightsky.dev/) | Observed: temp, wind, precip, humidity, pressure | Konstanz |
| [HTWG fogcast station](https://fogcast.in.htwg-konstanz.de/) | Observed: air temp + Lake Constance water temp | Konstanz |
| [RainViewer](https://www.rainviewer.com/) | Animated radar tiles | Europe / World |

---

## Development

Static HTML/CSS/JS โ€” no build step, no bundler. Open `index.html` directly or serve from any static host.

```bash
# Local development โ€” just open the file
open index.html

# Or with any static server
python3 -m http.server 8080
```

See [`AGENTS.md`](AGENTS.md) for architecture notes intended for AI coding assistants.