Dating airport buildings from old aerial photos

A terminal gets an opening ceremony, a press release and a line in the official gazette. A taxiway, a hangar or a fuel depot usually gets nothing. To rebuild an airport year by year, Chronotopia needs a year for all of them: 2,437 dated features at El Prat and 753 at Ibiza. Only 92 of those, between the two airports, have a date a source gives us.

The rest are dated from aerial photographs. Spain has flown and published them since the 1940s, and if a building is missing in one flight and present in the next, it went up in between. This article is about how that works in practice, the two cases where the photos changed the story, and what the ”≈” badge in the app means. It builds on the introduction to the project.

The photos that exist

An orthophoto is an aerial photograph corrected so that it lines up with a map, which means you can lay today’s OpenStreetMap outlines on a 1956 flight and see what was already there. The regional cartographic services publish their archives as web map services, one layer per flight.

For El Prat, the Catalan cartographic institute (ICGC) has flights from 1945 onwards, but many of its layers are blank over the airport. The app’s method text lists the 15 that show it: 1945, 1956-57, 1975, 1977, 1987, 1990, 1993, 1994, 2000, 2003, 2004, 2006, 2008, 2009 and 2025. A later audit of the dates also used the 2012, 2015, 2018 and 2021 flights, which the method text doesn’t mention yet.

For Ibiza, the Balearic government’s IDEIB service has 1956, 1984, 1989, 2002, 2006, 2008, 2010, 2012, 2015, 2021 and 2023, and the IGN’s national archive fills two holes: 1997-98, and 2018, when the IDEIB layer is blank over the airport.

The gaps matter more than the photos:

Orthophoto flights over El Prat and Ibiza from 1940 to 2030: El Prat has no flight between 1957 and 1975, Ibiza none between 1956 and 1984; below, Ibiza's 1964 terminal (1964-1985, from texts) and the general aviation terminal dated 1994 between the 1989 and 1997-98 flights

El Prat has no photo for 18 years, from 1957 to 1975, the years of its 1965 extension and the 1968 terminal. Ibiza has none for 28 years, from 1956 to 1984, which is almost its whole history as an airport: in 1956 it’s a grass field, and in 1984 it has today’s runway, a parallel taxiway, an apron and a terminal. Everything in between comes from written sources.

Some layers also cover more than one year. A flight labelled 1956-57 or 1997-98 is a mosaic of photos taken over two summers, so a building in it could be from either.

Three ways to get a year

Every feature gets its year in one of three ways, in this order.

A source gives it. T1 opened on 16 June 2009, so T1 is 2009. The 2007 control tower, the Iberia hangar, the three runways and the Miró mural all have dates we can cite. These are the only features without the ≈ badge: 64 at El Prat and 28 at Ibiza.

The photos bracket it. About 60 buildings, aprons and taxiways at El Prat were dated one by one against the flights. The code comment in scripts/sites/barcelona-elprat.mjs gives the rule:

the year is the midpoint between the last photo without the building and the first photo with it.

A building absent in 2004 and present in 2006 becomes 2005, give or take a year. The farmhouses between the runways, which are in the 1975 photo but not the 1957 one, become 1966, which really means “somewhere between 1957 and 1975”. Both carry the same badge.

The zone decides. Everything else, most of the airport, is dated by where it is. Each site has a dateFeature() function with rules drawn from the photos: at El Prat, anything east of runway 02/20 is from the 2004 Plan Barcelona works, the west cargo zone is 1975 because the hangar and fuel farm appear in that year’s photo, and the “airport city” block north of the T2 access road is 2006, because it’s farmland until 2003 and built up between 2004 and 2009. A feature dated by a zone rule is always marked approximate.

The zones are coarse on purpose, and some are very coarse. Every road outside the airport, at both sites, is dated 1975: one approximate year for the whole regional road network. It’s the single largest group of dates in the model.

Checking against the photo

Two small Python scripts do the checking. scripts/ortho.py fetches a crop of any flight for a bounding box and draws a latitude and longitude grid over it, so positions can be read off the photo. scripts/overlay.py draws every feature the model has for a given year on top of that crop, in one colour per kind: aprons, terminals, taxiways and runways. If the 1987 overlay shows an apron where the 1987 photo shows fields, the apron’s date is wrong.

That check is what the El Prat audit was. Commit 5d8efae went through the flights from 1975 to 2025 and changed a lot:

It is a visual check, done by a person looking at two images, not an automated test.

The terminal that moved

The clearest case is at Ibiza. In 1964 the airport got a second passenger building, described at the time as “provisional”, with a pergola and gardens. From 1974 it housed the airport’s technical and administrative offices. According to the Enciclopèdia d’Eivissa i Formentera, it burned down in May 1985 and a functional building was put up in its place.

The first version of the model put the 1964 terminal in a small building west of the 1973 terminal, inferred from the 1984 photo, with a note saying so. The problem appeared in the next flight: that small building is still standing in 1989, so it can’t be the one that burned in 1985.

The answer came from the other end, the present. The aerodrome parking chart in ENAIRE’s official aeronautical publication shows a “technical block” between the control tower and the fire station, a building round a courtyard that isn’t in OpenStreetMap and is now the business-aviation terminal. It’s absent in the 1989 photo and present in the 1997-98 one. And its footprint is exactly that of a long, flat-roofed block visible in the 1984 photo, with strips of garden running down to the apron, gardens that are still there today.

So the 1964 terminal moved east in the model (commit 1cbe8fb), onto the footprint of the 1984 block. It stands from 1964 to 1985, both dates from the texts. The technical block that replaced it is dated 1994, between the two flights that bracket it, with the ≈ badge and a note on how it was placed.

The chronology drawer at El Prat in 1992, with approximate dates such as "Feb 1992 ≈" and "1995 ≈" next to the events

When the photo and the text disagree

Sometimes they simply don’t match, and the model has to choose.

What ”≈” means

The badge reads “Approximate date or position”, and it covers more than it seems to:

About 97% of the dated features at El Prat, and 96% at Ibiza, carry the badge. That number would drop fastest with photos we don’t have, especially of Ibiza between 1956 and 1984, and with dated construction documents for the smaller buildings. If you have either, send it to us: the model says in each card what it’s based on, so a better source can replace it directly.