LibreWXR – Self-Hosted Weather Radar Data API

ChrisArchitect1 pts0 comments

LibreWXR - Self-Hosted Weather Radar

Self-Hosted Weather Radar

LibreWXR is a free, open-source weather radar API you can host yourself. It's a drop-in replacement for Rain Viewer with real radar composites, a chain of regional high-resolution NWP models, ECMWF IFS for worldwide coverage, and global WMO weather alerts.

Loading frames...

Arrows

Locate Me

Loading...

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.

10 Color Schemes

All Rain Viewer color schemes (NEXRAD III, Universal Blue, TITAN, Dark Sky, Rainbow, and more) plus the discrete 5-dBZ stepped Datameteo Valerio scale contributed by Datameteo Educational.

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<br>cd LibreWXR<br>cp .env.example .env<br>docker compose up -d<br>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<br>cd LibreWXR<br>cp .env.example .env<br>docker compose -f docker-compose.multiworker.yml up -d<br>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)<br>GET https://api.librewxr.net/public/weather-maps.json

# Radar tile<br>GET https://api.librewxr.net/v2/radar/{timestamp}/{size}/{z}/{x}/{y}/{color}/{smooth}_{snow}.png

# Satellite tile (NOAA GMGSI VIS-over-LW composite)<br>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)<br>GET...

radar librewxr weather data rain tile

Related Articles