Picking up where I left off: earlier this year I built a project called sitian, which analyzes weather processes from a sequence of synoptic charts over a period of time. Using it myself and backtesting it against historical weather, I found that combined analysis across multiple data sources did not work well.
Take one example: a region is about to be affected by a typhoon, and the relevant data includes:
- Radiosonde soundings around the typhoon’s track
- Model forecast data
- Satellite observations
- Radar data
- Surface observations as supporting context
The previous setup made it awkward to handle fairly complex combinations of input data. It also meant maintaining and integrating several data sources. So the sitian project has, in practice, stopped running.
In late August this year I started working on a new project, xue. Its goal was simple: smooth playback of animated weather maps through a custom binary format, bypassing tiles and other traditional approaches. It worked well, but as iteration continued I added chunking, compression, and similar mechanisms, and the binary layer effectively became a distant cousin of zarr. So I later switched the data format to zarr and paired it with STAC for dataset management.
Once that was done, I realized sitian’s problem had solved itself. The STAC spec itself tells the LLM directly which regions have which data and which variables, and since the raw data are all standard zarr and jsonl files, analysis over a specific spatiotemporal slice becomes easy. The data xue produces in its day-to-day operation is now an out-of-the-box source for near-real-time meteorological analysis.
Here is an analysis report on Typhoon Dujuan as it approaches Tokyo: Tokyo Typhoon Weather Process Analysis.
The accompanying data-analysis SKILLS file is available here: synoptic-analysis.