Bordeaux in data: maps, a radar, and a vintage that writes itself

Bordeaux in data: maps, a radar, and a vintage that writes itself

bordeaux.guru začínal jako web s degustačními zápisky z En Primeur — tedy z ochutnávek vín, která ještě zrají v sudech. Skóre, texty, château. Jenže víno není jen chuť ve sklenici: je to výsledek počasí, půdy a rozhodnutí, která vinař udělal v konkrétní den konkrétního roku. A přesně tahle část na webu chyběla.

Tohle je první díl série Stavíme bordeaux.guru. Za pět dní práce v tandemu s AI vznikla celá datová vrstva — a ta poslední věc, kterou jsme postavili, se od té doby píše sama.

Nejdřív mapy: patnáct apelací, které nejsou placka

Chtěl jsem mapy, které nejsou dekorace. Takže žádné obrázky apelací, ale skutečné hranice — a nad nimi vrstvy, mezi kterými se dá přepínat.

Vrstvy map na bordeaux.guru — Teplota, Srážky, Vítr, Vlhkost, Slunce, Výpar ET0, Souhrn, Reliéf, Podloží, Tratě, Terasy, Odrůdy

Dvanáct vrstev, jednotné legendy a škály napříč všemi apelacemi — protože srovnatelnost je celé kouzlo. Co v nich je:

Klimatická databáze: 9 veličin, 15 apelací, každý den sezóny

Pod mapami běží tabulka, do které jsme uložili denní klima pro každou apelaci: maximální, minimální a průměrná teplota, srážky, vítr, vlhkost, hodiny slunečního svitu, evapotranspirace a sluneční radiace. Zdroj je ERA5, evropská klimatická reanalýza — model, který dopočítává počasí zpětně na základě všech dostupných měření a sahá do roku 1940.

Klíčové rozhodnutí, které padlo hned na začátku: data se ukládají do databáze, ne jen stahují při buildu. Důvod je jednoduchý — chci se jich umět kdykoliv zpětně zeptat. Až se někdo zeptá, proč má konkrétní víno konkrétní skóre, chci umět odpovědět daty o kvetení, mrazících a suchu v tom roce.

Později přibyla ještě vlhkost půdy ve dvou hloubkách — povrch (0–7 cm) a kořenová zóna (28–100 cm). ERA5 ji poskytuje jen po hodinách, takže se stahují hodinová data a průměrují na dny. A hned první pohled do nich vyprávěl příběh: v srpnu 2026 je povrch v Pauillacu nejsušší ze všech tří měřených let, ale kořenová zóna drží víc vody než loni. Přesně to je datový důkaz vinařské poučky, že staré vinice s hlubokými kořeny suchý rok ustojí — a mladé výsadby trpí.

Radar ročníku: stránka, která se píše sama

Nejzajímavější věc vznikla jako poslední. Sezóna zrání běží právě teď, tak proč nemít stránku, která průběžně ukazuje, jak se letošnímu ročníku daří?

Radar ročníku 2026 — šest signálů: teplo, sucho, vlny veder, jarní mráz, tlak plísní, slunce

Šest signálů, každý se stavem a s výkladem, co znamená pro hrozen. A čísla, která letos vyšla, jsou samy o sobě zpráva:

Tahle historická srovnání nejsou odhad. Stáhli jsme 47 sezón zpětně (1979–2025) a počítáme percentily vždy k témuž dni sezóny — porovnávat srpen s celým rokem by byl nesmysl. Takže když stránka napíše „nejteplejší od roku 1979", je to spočítané, ne pocit.

K tomu čtrnáctidenní předpověď z ECMWF, která se načítá živě přímo v prohlížeči, a fenologie — kdy réva kvetla, kdy zaměkla, kdy se sklízí. Rok 2025 máme doložený z oficiálních brožur château, letošek zatím odhadujeme z tepelného náskoku a poctivě to označujeme šrafovaně, dokud to nedoložíme.

Data, která nejsou, a data, která nikdo nedá

Nejpoučnější část celé práce byl průzkum zdrojů. Ukázalo se, že:

Takže jsme šli cestou, kterou nikdo neobejde: digitalizovat parcelové mapy z oficiálních brožur château. Fotka mapy z brožury, narovnání perspektivy, vzorkování barev odrůd, trasování parcel, georeferencování na skutečné souřadnice, kontrolní dávka ke schválení. Zatím dvě panství — Gazin v Pomerolu (19 parcel) a Brane-Cantenac v Margaux (93 parcel). Každý údaj je označený jako „údaje château", zákres je poctivě popsaný jako orientační.

Mimochodem — právě tahle data jsou důvod, proč má web dvouúrovňový přístup. Otevřená data zůstávají veřejná s atribucí; to, co jsme sami pořídili, je za členstvím. S jednou výjimkou: první digitalizované panství necháváme jako ukázku zdarma. Kdo chce vidět, jak to vypadá, ať to vidí.

Terroir jako deset signálů — a co z nich plyne pro hrozen

Sebelepší graf je k ničemu, když u něj nestojí, co znamená. Proto má stránka o terroiru deset signálů — každý je mini-mapa z reálných dat, číslo a věta, proč rozhoduje. Ne pro meteorologa: pro člověka, který chce vědět, jestli si to víno koupit.

Deset signálů, které dělají ročník — mini-mapy s reálnými čísly a výkladem

A protože sezóna běží, přibyla i upoutávka, která ukazuje aktuální ročník proti dvěma předchozím — na titulce i na terroiru:

Upoutávka radaru sezóny na titulní stránce — křivka tepelného součtu tří sezón

Co mě na tom baví nejvíc: běží to samo

Celá klimatická vrstva by byla k ničemu, kdyby ji někdo musel každý týden ručně aktualizovat. Takže se aktualizuje sama: naplánovaná úloha jednou týdně stáhne čerstvá data a zapíše je do databáze. Skript má jediné právo — psát do jedné tabulky s klimatem, nikam jinam. Když stahování selže, databáze zůstane nedotčená.

A mezi běhy? ERA5 má zhruba pětidenní zpoždění, takže posledních pár dní si stránka dopočítá živě z předpovědního modelu a označí je. Radar je tak vždy aktuální ke dnešku, i když databáze o pár dní zaostává.

Poučení, která bych si chtěl zapamatovat

Co z toho plyne dál

Tohle nebyla práce na hezčí web. Byla to příprava terénu: v databázi teď leží tisíce dní klimatu, výškopis, půdy, parcely a fenologie — všechno provázané na konkrétní vína a château. Nad tím vzniká asistent, který na otázku „proč má tohle víno tohle skóre" umí odpovědět daty o tom, jak probíhala sezóna.

A sezóna 2026 se zatím píše sama: nejteplejší od roku 1979, sušší než 98 % sezón, hrozen zdravý. Jestli bude velká, rozhodne září.

Radar ročníku je veřejný na bordeaux.guru/season, mapy na bordeaux.guru/maps. Zdroje dat: Copernicus ERA5 přes Open-Meteo, Copernicus DEM, IGN/INAO, Etalab (DGFiP), BRGM. Máte-li vlastní zkušenost se stavěním datových vrstev nad otevřenými zdroji, napište mi na LinkedIn.

', 'cs', 0, NULL, N'/assets/blog/bordeaux-v-datech-cover.jpg', N'bordeaux-in-data-maps-radar-weather', N'' ); GO -- ---------- Článek — anglicky ---------- INSERT INTO BlogPosts (Slug, Title, Perex, Body, Lang, IsPublished, PublishedAt, CoverImage, PairSlug, Tldr) VALUES ( N'bordeaux-in-data-maps-radar-weather', N'Bordeaux in data: maps, a radar, and a vintage that writes itself', N'In five days we turned a set of tasting notes into a data platform: living maps of fifteen appellations, a climate database built on the European ERA5 reanalysis, and a 2026 vintage radar that updates itself every week. It shows this season is the warmest in Pauillac since 1979. Part one of the Building bordeaux.guru series.', N'

bordeaux.guru started as a site for En Primeur tasting notes — wines tasted while they still age in barrel. Scores, texts, châteaux. But wine is not just the flavour in the glass: it is the result of weather, soil, and decisions a winemaker made on a specific day of a specific year. And that part was missing.

This is part one of the Building bordeaux.guru series. Five days of work in tandem with AI produced an entire data layer — and the last thing we built has been writing itself ever since.

Maps first: fifteen appellations that are not flat

I wanted maps that are not decoration. So no pictures of appellations, but real boundaries — with switchable layers on top of them.

Map layers on bordeaux.guru — temperature, rainfall, wind, humidity, sunshine, ET0, overlay, relief, soil, plots, terraces, varieties

Twelve layers, with one shared legend and scale across every appellation — because comparability is the whole point. What is in them:

The climate database: 9 variables, 15 appellations, every day of the season

Under the maps sits a table holding daily climate for every appellation: maximum, minimum and mean temperature, rainfall, wind, humidity, sunshine hours, evapotranspiration and solar radiation. The source is ERA5, the European climate reanalysis — a model that reconstructs past weather from all available measurements and reaches back to 1940.

One decision was made right at the start: store the data in the database, do not just fetch it at build time. The reason is simple — I want to be able to ask it questions later. When someone asks why a particular wine earned a particular score, I want to answer with data about flowering, frost and drought in that year.

Later came soil moisture at two depths — topsoil (0–7 cm) and the root zone (28–100 cm). ERA5 only provides it hourly, so we fetch hourly data and average it into days. The very first look at it told a story: in August 2026 the topsoil in Pauillac is the driest of all three measured years, yet the root zone holds more water than last year. That is the data proof of the old wine adage that old vines with deep roots ride out a dry year — and young plantings suffer.

The vintage radar: a page that writes itself

The most interesting thing came last. The ripening season is running right now, so why not have a page that continuously shows how this vintage is doing?

The 2026 vintage radar — six signals: heat, drought, heat waves, spring frost, disease pressure, sunshine

Six signals, each with a status and a reading of what it means for the fruit. And this year the numbers are a story in themselves:

These historical comparisons are not estimates. We pulled 47 seasons back (1979–2025) and compute percentiles always to the same day of the season — comparing August with a full year would be nonsense. So when the page says "the warmest since 1979", it is computed, not felt.

On top of that: a fourteen-day ECMWF forecast loaded live in the browser, and phenology — when the vine flowered, when veraison happened, when picking starts. 2025 is documented from official château brochures; this year we still estimate from the thermal lead and honestly mark it hatched until we can confirm it.

Data that does not exist, and data nobody will give you

The most instructive part of the whole job was the source research. It turned out that:

So we took the one road nobody can shortcut: digitising parcel maps from official château brochures. Photograph the map, correct the perspective, sample the variety colours, trace the parcels, georeference them onto real coordinates, then a control batch for approval. Two estates so far — Gazin in Pomerol (19 parcels) and Brane-Cantenac in Margaux (93 parcels). Every figure is labelled "château data" and the rendering is honestly described as indicative.

Incidentally, this data is exactly why the site has two access levels. Open data stays public with attribution; what we acquired ourselves sits behind membership. With one exception: the first digitised estate stays free as a sample. If someone wants to see what it looks like, let them see it.

Terroir as ten signals — and what they mean for the grape

The best chart is useless if nothing next to it says what it means. So the terroir page carries ten signals — each a mini-map from real data, a number, and a sentence on why it decides. Not for a meteorologist: for someone deciding whether to buy the wine.

Ten signals that make a vintage — mini-maps with real numbers and their reading

And since the season is running, a teaser now shows the current vintage against the two previous ones — on the homepage and on the terroir page:

Season radar teaser on the homepage — cumulative heat curves of three seasons

What I enjoy most: it runs on its own

The whole climate layer would be worthless if someone had to refresh it manually every week. So it refreshes itself: a scheduled task pulls fresh data once a week and writes it into the database. The script has exactly one privilege — writing into the single climate table, nowhere else. If the download fails, the database is left untouched.

And between runs? ERA5 lags by about five days, so the page fills the last few days live from the forecast model and marks them. The radar is therefore always current as of today, even when the database is a few days behind.

Lessons I want to remember

What follows from all this

This was not work on a prettier website. It was groundwork: the database now holds thousands of days of climate, elevation, soils, parcels and phenology — all tied to specific wines and châteaux. On top of it we are building an assistant that can answer "why does this wine have this score" with data about how the season actually went.

And the 2026 season is writing itself so far: the warmest since 1979, drier than 98 % of seasons, healthy fruit. Whether it turns out great will be decided in September.

The vintage radar is public at bordeaux.guru/season, the maps at bordeaux.guru/maps. Data sources: Copernicus ERA5 via Open-Meteo, Copernicus DEM, IGN/INAO, Etalab (DGFiP), BRGM. If you have your own experience building data layers on open sources, message me on LinkedIn.

Addendum, 11 September: what has been added in three weeks

I wrote this text in mid-August, and the database has changed enough since then that the numbers in it would now mislead. So here is what has been added — because that is precisely what this work is: data does not get finished, it keeps being collected.

There are now 284 tastings instead of the 145 back then. That splits into 169 en primeur notes from the barrel and 115 from the bottle. The second half is new: we used to publish only what we tasted from barrel in Bordeaux each spring, and now bottles opened at home are being added — wines at the moment someone actually drinks them. They are two different things and the site does not mix them.

Hard technical data straight from the châteaux has arrived. From the 2025 technical sheets I now hold the blend, alcohol, pH, yield per hectare, share of new oak, ageing time and harvest dates for 110 wines. That is the kind of figure that used to be guessed from an impression in the glass — and it is exactly what allowed me, a month later, to disprove the widespread theory that Michelin punishes new oak. More on that in part three.

Pages have started growing out of the data itself. "The wine year" walks through the season from bud to bottle, taking harvest dates from individual châteaux' technical sheets. A quiz on classifications tests whether a reader can tell an 1855 growth from a Saint-Émilion tier. And "My cellar" with a wishlist works out what a member paid for their bottles at the Czech National Bank rate on the purchase date, and how that compares with today's quotes — it is editorial record-keeping, not investment advice, and we do not hold per-wine market prices and do not claim to.

The 2026 vintage radar has meanwhile kept running on its own. The season in Pauillac closed at 214 days of measurement, and the autumn will decide whether the wine in the glass confirms what those numbers say about an exceptional year. That, though, is material for another text.