Features
Rain Viewer Compatible
Drop-in v2 API replacement. Works with any app or library that supports Rain Viewer tiles.
Multi-Region Radar
Real radar composites via NOAA MRMS (US), MSC (Canada), EUMETNET OPERA (Europe, 24 countries) plus DPC for native Italian coverage, MARN/SNET (El Salvador), CWA QPESUMS (Taiwan), JMA HRPN (Japan), and MET Malaysia (Peninsular Malaysia + Borneo + Singapore).
Regional NWP Chain
High-resolution rapid-refresh NWP layered specificity-first: HRRR (CONUS + Alaska), HRDPS (Canada), DMI DINI + ICON-EU (Europe), AROME Outre-Mer (Caribbean, French Guiana, SW Indian Ocean, New Caledonia, French Polynesia), WRF-SMN (Argentina), and JMA MSM (Japan + Korean Peninsula + Taiwan). 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.
Real Satellite Imagery
NOAA GMGSI hourly global mosaic (GOES-East + GOES-West + Meteosat-9 + Meteosat-10 + Himawari-9), rendered as a VIS-over-LW composite with a natural day/night terminator. Daytime shows continents and clouds as they appear from space; night side falls through to longwave IR cloud tops.
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. The model side is taken from the active NWP chain — HRRR over CONUS, ICON-EU/DINI over Europe, WRF-SMN over the S. American Cone, JMA MSM over Japan + adjacent East Asia, 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. Regional NWPs (HRRR, WRF-SMN, DMI DINI, ICON-EU, JMA MSM) classify natively from their own 2-metre temperature field; ECMWF IFS snowfall ratio fills everywhere else.
13 Color Schemes
All Rain Viewer color schemes (NEXRAD III, Universal Blue, TITAN, Dark Sky, Rainbow, and more), the discrete 5-dBZ stepped Datameteo Valerio scale contributed by Datameteo Educational, and the high-resolution Viper HD palette by Ben Mitchell of WxTools, plus the MRMS CREF operational palette and the 33/40 Max Storm stepped palette.
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 (NOAA GMGSI VIS-over-LW composite)
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}/10/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}/10/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). Italy is not in the OPERA station list, so Italian airspace is covered separately by DPC below.
- DPC (Dipartimento della Protezione Civile) — Italian national VMI composite (24 radars: 11 DPC-direct C-band & X-band + 13 partner radars from regional ARPAs, PAA Trento, ENAV, Aeronautica Militare). Open Radar-DPC v2 REST API, 5-min cadence, GeoTIFF format, attribution "Radar-DPC" required under CC-BY-SA 4.0
- MARN / SNET — El Salvador San Andrés radar 120 km product (Servicio Nacional de Estudios Territoriales), reproduced with attribution per MARN's open-data terms
- CWA QPESUMS (Taiwan) — Central Weather Administration 7-radar composite reflectivity product
O-A0059-001, licensed under the Open Government Data License v1.0 - JMA HRPN (Japan) — Japan Meteorological Agency High-Resolution Precipitation Nowcast (気象庁ナウキャスト), 20 C-band Doppler radars + AMeDAS rain-gauge network composited as gauge-corrected QPE. Analysis leg only; JPCOMP nowcast frames come from LibreWXR's internal optical-flow extrapolation blended with JMA MSM as the regional model overlay. Ingested under the JMA Public Data License v1.0 (CC-BY equivalent, commercial reuse explicitly permitted with attribution to the Japan Meteorological Agency)
- MET Malaysia — Jabatan Meteorologi Malaysia 12-radar national composite covering Peninsular Malaysia, Borneo, Brunei, Singapore, and N. Sumatra, licensed under CC-BY-4.0 (Radar data © Jabatan Meteorologi Malaysia / METMalaysia)
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 Outre-Mer — 2.5 km, five overseas variants from the OVH Swift PNT distribution: Antilles (Guadeloupe + Martinique), Guyane (French Guiana), Indien (Réunion + Mayotte + Comoros + Madagascar + SW Indian Ocean), Nouvelle-Calédonie (New Caledonia + Vanuatu), and Polynésie (French Polynesia)
- SMN Argentina WRF-DET — 4 km LCC, covers the South American Cone via AWS Open Data
- JMA MSM (Mesoscale Model) — 5 km regular lat/lon over Japan + Korean Peninsula + Taiwan + Yellow Sea, republished via the Open-Meteo AWS Open Data mirror. Pairs with the JMA HRPN radar composite to give Japan a real mesoscale NWP forecast instead of falling through to global IFS
Global base layer:
- ECMWF IFS via Open-Meteo — 9 km global precipitation and snowfall. The global base of the NWP chain, covering every pixel the regional models don't reach (CC-BY-4.0)
Satellite imagery:
- NOAA GMGSI — Global Mosaic of Geostationary Satellite Imagery, composited by NESDIS from GOES-East, GOES-West, Meteosat-9, Meteosat-10, and Himawari-9. Longwave IR + visible channels rendered as a VIS-over-LW composite with natural day/night terminator. Hourly cadence; coverage to ±72.7° latitude
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, with one carve-out) — 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, MARN/SNET El Salvador, CWA Taiwan, JMA Japan, MET Malaysia, ECMWF IFS, NOAA GMGSI) 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.
Italy (ITCOMP region only) is the exception: tiles that include native Italian radar data from DPC inherit the upstream CC-BY-SA 4.0 share-alike obligation. If you redistribute or build derivative works from DPC-derived tiles, you must do so under the same CC-BY-SA 4.0 terms and credit "Radar-DPC" as the data source. This is the only source in the LibreWXR stack with a share-alike clause; every other layer is permissive.
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.