Features
Rain Viewer Compatible
Drop-in v2 API replacement. Works with any app or library that supports Rain Viewer tiles.
Multi-Region Radar
Quality-controlled radar composites via NOAA MRMS (US, Alaska, Hawaii, Puerto Rico, Guam) with MSC blending (Canada) and OPERA (Europe, ~155 radars across 24 countries).
Regional NWP Chain
High-resolution rapid-refresh NWP layered specificity-first: HRRR (CONUS + Alaska), HRDPS (Canada), DMI DINI + ICON-EU (Europe), AROME Antilles (Caribbean), and WRF-SMN (Argentina). Soft-feathered at every domain edge.
Global ECMWF IFS Coverage
ECMWF IFS 9 km data forms the global base of the NWP chain — covering every pixel the regional models don't reach, plus snow detection and the cloud satellite layer.
Satellite Imagery
IFS-derived cloud cover tiles approximating infrared satellite imagery. Up to 12 hours of hourly animation with persistent disk caching.
Weather Alerts
Global WMO CAP weather alerts (severe storm warnings, watches, advisories) returned as GeoJSON for any map library. NWS point-endpoint integration for US locations surfaces non-polygon alerts too.
Precipitation Nowcasting
Experimental 60-minute forecast using optical flow radar extrapolation with configurable blend modes: pure radar, blended radar-to-model, or pure model. Uses HRRR over CONUS, ICON-EU/DINI over Europe, IFS elsewhere.
Motion Arrows
Dark Sky-style arrows showing storm movement direction and speed, derived from optical flow. Available globally for both radar and ECMWF data.
Snow Detection
Per-pixel snow and rain classification using ECMWF IFS snowfall data.
9 Color Schemes
All Rain Viewer color schemes including NEXRAD III, Universal Blue, TITAN, Dark Sky, and more.
Multi-Worker Deployment
Optional production mode splits the data pipeline from a pool of render workers that share state via memmap. Scales tile rendering across every core in the rack — no GIL bottleneck.
Memory Efficient
Radar frames, NWP grids, cloud, and nowcast data all use memory-mapped files. Smart fetch skips redundant downloads, saving ~90% of bandwidth per cycle.
Privacy First
Zero client logging. No IPs, user agents, or request details are recorded. You control the data.
No GDAL Required
Pure Python with numpy. No system geo libraries needed. Simple Docker deployment.
Free & Open Data
Radar data from this API is available under CC-BY-4.0. Free to use with attribution to LibreWXR.
Quick Start
Deploy your own instance with Docker in under a minute. Pick the mode that matches your hardware:
Single-container (personal / small-scale):
git clone https://github.com/JoshuaKimsey/LibreWXR.git
cd LibreWXR
cp .env.example .env
docker compose up -d
One process handles fetching, nowcasting, and tile rendering. Best for laptops, small VPSes, and home servers.
Multi-worker (production / multi-core):
git clone https://github.com/JoshuaKimsey/LibreWXR.git
cd LibreWXR
cp .env.example .env
docker compose -f docker-compose.multiworker.yml up -d
The data pipeline runs as a sidecar process while N tile-server workers share state via memmap — scaling tile rendering across every core in the rack with no GIL bottleneck. Defaults target an 80-core / 32 GB rack.
Either way, the server starts in about 6 seconds and begins serving tiles immediately. Historical frames backfill in the background.
Using the API
LibreWXR exposes a Rain Viewer v2 compatible API, plus a few extensions of its own (weather alerts, motion arrows). Point any Rain Viewer client at your instance:
# Metadata endpoint (timestamps + tile paths)
GET https://api.librewxr.net/public/weather-maps.json
# Radar tile
GET https://api.librewxr.net/v2/radar/{timestamp}/{size}/{z}/{x}/{y}/{color}/{smooth}_{snow}.png
# Satellite tile (IFS-derived cloud cover)
GET https://api.librewxr.net/v2/satellite/{timestamp}/{size}/{z}/{x}/{y}/0/0_0.png
# Weather alerts (GeoJSON FeatureCollection — global by default, lat+lon, or bbox)
GET https://api.librewxr.net/v2/alerts
GET https://api.librewxr.net/v2/alerts?lat=39.7&lon=-104.9
GET https://api.librewxr.net/v2/alerts?bbox=-95,30,-90,35
# Health check
GET https://api.librewxr.net/health
For Leaflet, the tile URL pattern is:
# Radar tiles
https://api.librewxr.net/v2/radar/{timestamp}/256/{z}/{x}/{y}/7/1_1.png
# With motion arrows (light for dark maps, dark for light maps)
https://api.librewxr.net/v2/radar/{timestamp}/256/{z}/{x}/{y}/7/1_1.png?arrows=light
# Satellite tiles (timestamps from satellite.infrared in metadata)
https://api.librewxr.net/v2/satellite/{timestamp}/256/{z}/{x}/{y}/0/0_0.png
See the full documentation for a web integration guide, configuration reference, and Rain Viewer migration instructions. Try the interactive examples to see LibreWXR in action, or browse the source on GitHub.
Data Sources
Radar composites:
- NCEP MRMS — Multi-Radar/Multi-Sensor quality-controlled radar composites (US regions + Canadian radar ingest, default source)
- Iowa Environmental Mesonet (IEM) — NEXRAD radar composites (US regions, fallback for MRMS)
- ECCC MSC GeoMet — Canadian weather radar composite
- EUMETNET OPERA — Pan-European radar composite via MeteoGate (~155 radars, 24 countries)
Regional NWP models (layered ahead of global IFS):
- NOAA HRRR — CONUS (3 km, 15-min subh) + Alaska (3 km, hourly) via NOAA Open Data
- ECCC HRDPS-Continental — 2.5 km rotated lat/lon, covers Canada and the northern fringe of CONUS
- DMI HARMONIE-AROME DINI — 2 km LCC, covers most of populated Europe via AWS Open Data
- DWD ICON-EU — ~7 km, fills the European remainder DINI doesn't reach
- Météo-France AROME Antilles — 1.3 km, covers the eastern Caribbean via data.gouv.fr
- SMN Argentina WRF-DET — 4 km LCC, covers the South American Cone via AWS Open Data
Global base layer + satellite:
- ECMWF IFS via Open-Meteo — 9 km global precipitation, snowfall, and cloud cover. The global base of the NWP chain and the source for the satellite cloud layer (CC-BY-4.0)
Weather alerts:
- WMO Severe Weather — Global CAP weather alerts, polled every 5 minutes
- MeteoAlarm — European geocodes for resolving regional alert polygons
- NWS Alerts API — Used for US point lookups to surface non-polygon alerts (Tornado Watches, etc.)
All data sources are freely available from government-funded institutions. ECMWF IFS data is provided by Open-Meteo under the CC-BY-4.0 license.
Data Licensing
API Data (CC-BY-4.0) — Radar data, satellite tiles, and all other data served by the public LibreWXR API at api.librewxr.net is available under the Creative Commons Attribution 4.0 International (CC-BY-4.0) license. You are free to use, share, and adapt this data for any purpose, including commercial use, provided you give appropriate credit to LibreWXR. The underlying data from government agencies (NCEP MRMS, IEM, ECCC, EUMETNET OPERA, ECMWF IFS) is public domain or freely available under their respective terms — the CC-BY-4.0 license applies to the aggregated composite data as served by this API instance, not to the original government data.
Software (AGPL-3.0-or-later) — The LibreWXR software itself is licensed under AGPL-3.0-or-later. If you modify and host LibreWXR, you must make your source code changes available under the same terms.
Self-Hosted Instances — You may choose your own data licensing terms for data served by your own LibreWXR instance. The AGPL-3.0-or-later license for the software applies regardless.
Open Source
LibreWXR is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). Contributions are welcome on GitHub.