Skip to content
GIS for History

To map changing historical boundaries, store each distinct configuration of an administrative unit as its own polygon carrying a validity interval — a valid_from and valid_to date — so one layer holds the full sequence of changes and you filter by year to see any moment. The hard part is not drawing the shapes; it is keeping dates, sources and topology consistent across hundreds of polygons so the result is defensible. This guide gives the data model and a project checklist.

What is the right data model?

Administrative geography is messy: parishes split, merge, transfer detached parts, and get renamed. Two modelling approaches exist:

  • Time-slice polygons — each unit is fully redrawn for each period it differs. Simple to render, query and dissolve. The standard for historical GIS.
  • Change-event / topology models — store only the edits and reconstruct any date on the fly. Compact but complex, and overkill for most projects.

Choose time-slices. Give every polygon these core attributes:

text
unit_name        TEXT     -- e.g. "Whitby"
unit_type        TEXT     -- parish, township, district
valid_from       DATE     -- ISO 8601, 1851-03-31
valid_to         DATE     -- 1894-12-31 (open period -> a sentinel like 9999-12-31)
predecessor_id   TEXT     -- links to the polygon it derived from
source           TEXT     -- citation
date_confidence  TEXT     -- exact / circa / inferred
geom_confidence  TEXT     -- surveyed / sketched / approximate

How do I query a single year from this layer?

Once every polygon is dated, a single expression returns the geography as it stood on any date. In the QGIS layer filter or a SQL view:

sql
SELECT * FROM parishes
WHERE valid_from <= '1881-04-03'
  AND valid_to   >  '1881-04-03';

That is the payoff of the model: one query, any census year, no separate files to keep in sync.

Which sources should I reuse before drawing?

Drawing boundaries from scratch is slow and error-prone. Reuse authoritative datasets:

RegionSourceCoverage
BritainGB Historical GIS / A Vision of Britainparishes, registration districts
EnglandHistorical Counties datasetsancient/administrative counties
United StatesAtlas of Historical County Boundaries (NHGIS)counties with dated changes

Cite the source per polygon. Where you must digitise from a georeferenced map, trace, then record geom_confidence honestly.

How do I keep the topology clean?

Changing boundaries multiply the chances of slivers and gaps. Within each time-slice, shared edges between neighbours must be coincident.

  1. Enable snapping to the layer's own vertices and segments (tolerance ~5 map units).
  2. Trace shared borders once and reuse the geometry for both neighbours.
  3. Run Vector ▸ Topology Checker with rules: must not overlap, must not have gaps.
  4. Fix every flagged sliver before moving on.

A 2-metre overlap looks invisible but corrupts area statistics and dissolves.

The project checklist

Apply this to every boundary layer before you trust it:

  • [ ] Every polygon has valid_from and valid_to in ISO 8601.
  • [ ] Open-ended periods use a documented sentinel date, not NULL.
  • [ ] Each polygon cites a source.
  • [ ] date_confidence and geom_confidence are filled, never left blank.
  • [ ] Topology Checker passes with zero overlaps and gaps per time-slice.
  • [ ] A spot-check year query returns a complete, non-overlapping coverage.
  • [ ] Renames and transfers link via predecessor_id.
  • [ ] CRS is projected (EPSG:27700 for the UK) so areas compute in real units.

What goes wrong, and why

The recurring failures are predictable: leaving end-dates blank so date-filters drop polygons; joining census data on place names that spelling-vary; and drawing crisp lines for boundaries the sources only describe vaguely. The fix for all three is the same discipline — explicit dates, stable join keys, and recorded confidence.

Key Takeaways

  • Model changing boundaries as dated time-slice polygons with valid_from/valid_to, not separate files per year.
  • Query any historical year with a single date-range filter.
  • Reuse authoritative datasets (GB Historical GIS, NHGIS) and cite sources per polygon.
  • Keep topology coincident — run the Topology Checker and fix every sliver.
  • Record date and geometric confidence explicitly; never leave them blank.
  • Use a projected CRS so area calculations are valid.
  • Run the checklist before trusting any boundary layer.

Frequently Asked Questions

How do I represent a boundary that changes over time in GIS?

Give every polygon a validity interval — a start date and end date column — so a single layer holds many time-slices. Each distinct configuration of a unit becomes its own dated polygon, and you query by date rather than maintaining separate files per year.

Should I store boundaries as time-slices or as change events?

Time-slices (fully drawn polygons per period) are simpler to map and query and are the usual choice for historical work. Change-event models record only the edits and are more compact but harder to render, so most projects use dated time-slice polygons.

What date fields should historical boundary polygons have?

At minimum a valid-from and valid-to date, plus a source citation and a confidence note. ISO 8601 (YYYY-MM-DD) is preferred; use a documented convention for uncertain dates rather than leaving them blank.

How do I keep boundaries topologically clean as they change?

Snap shared edges and run the QGIS Topology Checker for gaps and overlaps within each time-slice. Shared borders between adjacent units must be coincident, or area calculations and dissolves will be wrong.

What are good existing sources for changing boundaries?

For Britain, the GB Historical GIS / A Vision of Britain provides parish and registration-district boundaries; the Historical Counties of England datasets and the Atlas of Historical County Boundaries (US) are comparable. Reuse authoritative layers before drawing your own.

How do I record uncertainty in a historical boundary?

Add explicit fields for date confidence and geometric confidence, and never imply a hard line you do not have evidence for. Document the source and reasoning per polygon so others can judge reliability.