Web app · data project Live · free
An interactive map of every recorded UFO sighting in Denmark from 1946 to the present. 3,236 reports that existed only as written text, split into dates, places, witness counts and durations, then placed on coordinates.
The data
The reports come from SUFOI, Skandinavisk UFO Information, who have collected them since the 1950s. They exist as written accounts, not as a database: free text with the date, place, time, witness count and description mixed together, written by different people over seven decades.
Every report in the set, from 1946 to the present.
354 sightings, more than any other month.
63 sightings, the busiest year on record.
Mean duration of a sighting.
Findings
Most sightings are brief events seen by one person, late in the evening, in the second half of the year.
How it was built
Most of the work was turning inconsistent historical records into something a map could accept. Python scripts scrape the source material, parse locations, dates and details out of text written in very different styles over seventy years, and resolve each place name to a coordinate.
GPT-4 wrote and iterated much of the cleaning logic: date parsing across a dozen formats, location extraction, and handling of records that fit no pattern. The output is one GeoJSON file that the front end loads and clusters.
Python pulls the reports from the source archive, one page at a time.
Dates, places, witness counts, durations and colours parsed out of free prose.
Place names and postcodes resolved to latitude and longitude for Denmark.
One GeoJSON file, clustered and filtered client side with Mapbox GL.
In the map
Credit
All sighting data comes from SUFOI, Skandinavisk UFO Information, who collected and published it. This project structures and maps their archive. It makes no claim about what people saw.
The map code is open source under the MIT licence.