Sources and editions

Primary texts, as used.

The Traversette papers and their critics.

Terrain, climate and astronomy.

Modern scholarship on the pass. The works consulted, with how much of each could be read, are listed in the accompanying notes (dossiers/scholarship.md); the principal ones are named in the candidates section above. The public-domain studies from Whitaker (1794) to Torr (1924) were read from scanned copies. The books of de Beer, Walbank, Hoyte, Proctor, Lazenby, Seibert, Lancel, Prevas, Hunt and Mahaney are in copyright and were obtained only as abstracts, catalogue records or search snippets.

Reproducing the results

The code, data and texts behind this page are kept together in one folder. dossiers/ holds the working notes of the four strands (the sources, the terrain, the geoarchaeology and the scholarship), texts/ the editions and papers, data/ the outputs, and code/ the scripts, which run in this order. The network is needed only for the downloads.

cd code
pip install rasterio numpy pillow skyfield ephem
python3 download_dem.py          # 20 Copernicus GLO-90 tiles
python3 geocode.py               # places -> data/places.json
python3 fetch_rivers.py          # river centrelines for the map
python3 routes.py                # least-cost paths, profiles, distance tables (about 3 min)
python3 viewshed.py              # Po-plain visibility from every col and descent (about 20 min)
python3 pleiades.py de406.bsp    # Pleiades phases in 218 BC (JPL DE406, 300 MB download)
python3 figures.py               # map, profiles, viewshed panels
python3 report_tables.py         # data/terrain_tables.md
python3 calibrate.py             # IntCal20 recalibration of the Traversette dates
python3 evidence_model.py 20000  # the evidence model and every variant
python3 make_chart.py; python3 make_tables.py; python3 make_extra_tables.py
python3 make_map_report.py; python3 make_profiles_report.py; python3 make_viewshed_fig.py
python3 build_report.py          # assembles this page from report_body.html

To change a judgement, edit the range in code/evidence_table.py and run the last two lines again. To test another col, add its waypoints to routes.py and its saddle to viewshed.py.