An interactive weather map for Denmark, built only on official DMI forecasts. Live at vindy.dk.
Weather maps like Windy, Ventusky and Zoom Earth are lovely to use, but none of them show DMI's model — the one Denmark's own forecasts are based on. Vindy does: every forecast layer comes from DMI's HARMONIE model at 2 km detail over Denmark, updated every three hours and reaching 60 hours ahead. Radar and satellite imagery come from EUMETNET and EUMETSAT. It is a private, non-commercial hobby project.
- Forecast layers: wind, gusts, rain, accumulated rain, temperature, dew point, cloud cover, low clouds, pressure, humidity, visibility, thunderstorms (CAPE) and waves
- Oversigt: temperature with radar on top, continuing with the rain forecast for hours the radar doesn't reach
- Observations: European radar composite and satellite imagery for the last 3 hours, plus live measurements from DMI's stations
- Overlays: animated wind and wave particles, isobars with highs and lows, automatically derived weather fronts, forecast values at towns, and a value grid
- Point forecast: click anywhere for an hour-by-hour meteogram, including waves at sea
- Multikort: slå Multikort til under Indstillinger i vejrlagsmenuen og vis
flere kort ved siden af hinanden. Plus-knappen i højre kant tilføjer en kolonne, den
under kortene en række (op til 3×3). Hver række har et ✕ i venstre kant og hver kolonne
et ✕ under kortene, så en hel række eller kolonne fjernes ad gangen og alle rækker og
kolonner altid er lige store. Hvert kort har sit eget vejrlag, og position og zoom følger
hinanden, så alle kort viser det samme udsnit. Samme sted nulstiller en knap til ét kort.
Adressen gemmer opstillingen, fx
/wind,rain;temp,gust/55.68,12.57,9 - Export: save the map as an image (PNG) or as an animation (MP4 or GIF) over a period you choose — a grid is saved as one image with every map side by side
- Progressice Web App: works offline for the interface, with shortcuts to radar, wind and rain
- Search for Danish places and addresses, and shareable links like
/wind/55.68,12.57,9 - Danish interface, light or dark theme (follows your device by default, or pick one under Indstillinger), no accounts and no ads
With Docker, which is the recommended way to run it on a server:
docker compose up -d --buildThen open http://localhost:5173. The weather data needs no account: the server fetches it from the open sources itself. The first start takes about 30 seconds while it indexes the newest model run; after that, data is cached on disk (about 350 MB).
The Danish basemap needs a free token. Create an account at
dataforsyningen.dk, make a token under your profile, and set
it as DATAFORSYNINGEN_TOKEN in docker-compose.yml. The browser requests the map tiles
directly, so tie the token to your own domain in Dataforsyningen's self-service. Without a
token everything still works — the map just falls back to the Esri basemap everywhere.
Other settings: PORT and CACHE_DIR when running locally, and PREFETCH in
docker-compose.yml to control how much of each model run is prepared in advance.
For HTTPS and a domain, put a reverse proxy such as Caddy in front.
Feature requests, bug reports and ideas are very welcome: please open an issue on GitHub. Pull requests are welcome too — for larger changes, open an issue first so we can talk it through.
- Weather data © DMI (terms for DMI's open data)
- Radar © EUMETNET OPERA via Open Radar Data (CC BY 4.0)
- Satellite imagery © EUMETSAT (EUMETView, MTG-I FCI True Colour RGB)
- Basemap over Denmark: Skærmkortet dæmpet © Dataforsyningen (needs a free token, see below); elsewhere © Esri, HERE, Garmin, © OpenStreetMap contributors
- Coastlines and borders: GSHHG (Wessel & Smith, NOAA/SOEST) and Dataforsyningen (DAGI)
- Place and address search: Dataforsyningen and Photon (OpenStreetMap, ODbL)
- Map rendering: Leaflet
Vindy is not affiliated with DMI, EUMETNET or EUMETSAT. Don't use it as your only basis for safety-critical decisions.
