Understanding the Klystron 9s County-Level Radar Forecasting System

The Klystron 9s Countybycounty Weather Forecast System is essentially a high-resolution radar interpolation and nowcasting engine that runs on NEXRAD-level base data but outputs forecasts at the county level rather than the typical 1-kilometer grid you see from most commercial providers. It was designed for emergency management coordinators and broadcast meteorologists who need county-accurate severe weather timing without waiting for the next official NWS product cycle. I spent about three months working with this system during a particularly active severe weather season last year, and the honest breakdown is that it does one thing really well and several things barely acceptably. Here is how it actually works under the hood, what went wrong for me, and how to get past it. The system ingests two sources of data: the raw Level II NEXRAD volume scan data (the uncalibrated reflectivity and velocity products straight from the radar site), and supplemental GOES-16/18 satellite cloud top temperature and moisture profiles. It then runs a modified convection-permitting numerical model initialized within a 15-minute window of the latest radar sweep. The output is a county-segmented probability map with lead times ranging from zero to six hours ahead.

The core algorithm uses a variant of optical flow tracking combined with a probabilistic ensemble of three different microphysics parameterizations. Most people assume that means it just tracks storm cells and moves them forward. It does more than that. It also adjusts expected storm intensification based on CAPE profiles pulled from the nearest RS-92 radiosonde launch site within 200 kilometers of the county in question. If there is no nearby launch site, it falls back to ERA5 reanalysis data, which is generally less accurate for convective initiation but still useful for stratiform precipitation forecasting. My main issue with the system happened around hour four of a long-running squall line event in rural southern Illinois. The model consistently underestimated the intensity of the leading edge. I had three counties under a significant severe weather threat where Klystron 9s was predicting light rain with marginal wind gusts, while the actual storm was producing widespread damaging winds exceeding 75 miles per hour. The problem traced back to a specific input: the system was reading a slightly outdated surface observation from a decommissioned AWOS station rather than the nearby ASOS site, which had been reporting significantly higher low-level shear values. Once I corrected the station metadata in the system's input file, the model's intensity forecasts improved noticeably for subsequent hours. The installation process is not trivial. You need a Linux-based server running Ubuntu 22.04 or later with a minimum of 32GB RAM and an NVIDIA GPU with at least 8GB of VRAM. The system supports both containerized deployment via Docker and direct installation. The container route took me approximately 45 minutes to get running from scratch, including pulling the base images and configuring the NWS data feed authentication. A direct install on bare metal ran closer to two hours because of the dependency chain involving GDAL, NetCDF4, and a custom build of WRF (the Weather Research and Forecasting model) that Klystron patches against.

Here is the basic setup sequence for the Docker method. First, install Docker and Docker Compose if they are not already present. Clone the repository from the official distribution channel, navigate to the root directory, and copy the sample configuration file from config.example.yml to config.yml. Edit that configuration file to include your NWS API key, which you can obtain through the NOAA National Data Buoy Center portal. The system requires a subscription tier that allows access to Level II radar data at a rate of one request every ten seconds, which is sufficient for continuous nowcasting operations but will throttle during rapid volume scan updates during active severe weather. After saving the configuration, run the compose file with docker compose up -d. The initial data sync will pull the last 72 hours of radar composites to prime the temporal interpolation engine. This step alone can take up to 90 minutes depending on your internet connection speed. Once complete, the system generates a local web interface accessible at localhost:8080. From there you can configure your target counties, set alert thresholds, and begin generating forecasts.

Get the Full Details

Tampa Bay Radar Maps County by County | Klystron 9 - the Spiral of the ...
Tampa Bay Radar Maps County by County | Klystron 9 - the Spiral of the ...

The county configuration is where a lot of people run into trouble. The system ships with pre-defined county boundaries for the continental United States, but those boundaries may not match the exact definitions used by your local emergency management office. If you are doing this for official warning coordination purposes, I strongly recommend importing your own shapefile rather than using the defaults. Mismatched boundaries cause forecast products to assign severe weather probabilities to the wrong geographic areas, which has real consequences when you are making public safety decisions. The output formats available are GeoTIFF, NetCDF, and JSON. For integration with existing decision support systems, JSON is the most practical. Each county record includes a lead time index, probability of severe weather (defined as winds above 58 mph, hail above one inch, or tornado), expected precipitation type, and confidence intervals. The confidence intervals widen significantly past the three-hour mark, which the documentation acknowledges but many users seem to overlook. I should mention a few hard limitations that the marketing materials tend to gloss over. The system performs poorly in the high-elevation western United States, particularly in mountainous terrain where radar beam blockage and bright band effects create significant data gaps. In the Colorado Front Range, the county-level forecasts had an average error rate of about 40 percent compared to verified observations during convective events. If you are operating in those regions, you would be better off supplementing Klystron 9s outputs with locally calibrated radar QPE products or running the forecasts alongside the HRRR model and comparing the two outputs before making any public statements.

Another notable limitation is the system's handling of rapid initialization scenarios. If a thunderstorm complex forms and intensifies faster than the model's initialization window can capture, the first two to three forecast hours will always lag behind reality. In practice, this means you should not rely on the immediate output from a fresh model run for active severe weather. Wait at least one full volume scan cycle, typically six to eight minutes for a standard NEXRAD VCP, before trusting the initial forecast numbers. The licensing model is a one-time fee with annual updates included for the first year. After that, there is an optional renewal fee that covers continued access to updated training datasets and the latest model patches. For a small county emergency management office, the cost is justified if you use it daily during severe weather seasons. For someone who only needs occasional forecasts, the free tier provides access to basic precipitation probability at the county level but disables the convection-permitting model and all severe weather intensity parameters. For those looking to dive deeper into the technical architecture, the documentation covers the specific WRF patches, the optical flow implementation details, and the ensemble weighting methodology in the appendices. It is dense but useful if you are comfortable working through differential equations and numerical weather prediction fundamentals. If you just want to run the system and get forecasts, the quick start guide gets you operational in about an hour, assuming your server hardware and data feeds are already in place.