Category Archives: GIS

GIS data used in the emigration map project

Data for the emigration map project was – except for the genealogical data – all from public sources. Interestingly enough there is also a relative wealth of sources with relevant historical GIS data.

  • Genealogical data from Swiss Buehrer Web Site as of October 2011 ( For practical reasons (notably less work for georeferencing) all persons not linked to the main family tree were removed as well as substantial irrelevant side lines like the Finney emigration from Ireland.
  • Digital Elevation Model DEM (30” resolution) from U.S. Geological Survey ( provided the base for the fairly easy looking smoothed hillshade layer that proved to be the most difficult to produce.
    The four 30” DEM tiles delimited by longitude/latitude (W140N90, W140N40, W100N90 and W100N40) that cover the United States were merged into a single DEM file which was subsequently reprojected and downsampled, all in QGIS.
    In GRASS a moving average was applied to the DEM which was exported as a GeoTIFF. From there, gdaldem was used to generate a hillshade GeoTIFF that received final blurring in Photoshop. Anything but easy.
  • Physical features (1:10 million scale) ocean, coastline, land, rivers and lakes from Natural Earth (
  • US counties from the US Census Bureau (
  • Historical state boundaries (filtered as of 1870) from the Atlas of Historical County Boundaries Project (
  • Historical US railroads (1870) from the Railroads and the Making of Modern America Project (
  • Historical US census data (1870) from the National Historical Geographic Information System NHGIS of the Minnesota Population Center ( The custom download data included e.g. the number of Swiss-born citizens per county and other interesting data that was not yet used in the project.


Software used for the family tree/GIS mapping project

The MacFamilyTree software from Synium ( was used to import, modify, consolidate and analyse the genealogical data. It was also used for the normalization, completion and geocoding of places. Except for MacFamilyTree all other mentioned software are open source.

Data was exported from MacFamilyTree’s underlying SQLLite database as SQL import script with the help of the SQLite Database Browser ( and subsequently imported into a PostgreSQL database ( with a PostGIS extension to add support for geographic objects. Unfortunately there seems to be no high quality GEDCOM-based parser/importer into SQL databases. Data handling and SQL scripts was done using pgAdmin3 (

The very flat data structure from MacFamilyTree was subsequently transformed into a more intuitive data model (“person”, “family”, “place”, “person_event” etc.) that served as a base for the extensive coded analysis and transformation logic in PostgreSQL’s procedural language PL/pgSQL.

All logic (and some data patching) were applied in roughly 40 sequential scripts per object. This repeatable processing proved to be a key success factor given the large number of methodological, coding and data errors encountered in the process that forced reprocessing.

Screenshot of the QGIS project for the emigration map
Screenshot of the QGIS project for the emigration map

All mapping and layout was done in QGIS (, with key features for the project becoming available only in QGIS 2.2. Data came from either PostGIS layers in PostgreSQL or shapefiles from various sources. The original approach to create a raw map that would receive its finish in a vector-based editor was dumped in favour of end-to-end map production in QGIS. This reflects on one hand the growing maturity of QGIS on one side, but also the difficulties to process the incredible amount of paths in its vector-based output in other programs.

The map – generalization challenges to preserve map readability

Symbology and family references in square brackets are explained in the legend.

Map detail showing ranking-driven labels
Map detail showing ranking-driven labels in the main immigration area around Fulton county

Styling of the map was inspired by the Schweizer Weltaltas (

  • Migration paths from/to overseas were displayed as point decorations with arrows, with label position and orientation calculated. To minimize clutter in the area in northwestern Ohio all arrows were demoted by a fixed distance and aligned on a circle grouped by destination and origin. Internal migration paths in contrast were real lines. All migration paths made extensive use of data-defined properties to control colour (emigration generation), dashing (person scope), line width (number of persons) as well as the label styling.
  • The number of distinct Bührer persons per county and common ancestry is indicated by the circle size. Distinct common male ancestors having a different colour that increases with their presumed emigration period going from red (early emigrants) to blue (late emigrants).
    Counties with Bührers from different ancestry have an additional transparent circle with bold lines to indicate the sum of Bührers. Given the restrictions in QGIS with overlay charts a representation as pie chart was not possible nor practical, given the large number of Bührer persons evidenced e.g. in Fulton County.
  • A custom label ranking for places was calculated to prevent label cluttering above all in Ohio and to ensure that place names representing the largest Bührer population will prevail.
  • Certain label information such as place names in red with first migration evidence in a certain region or labels for first-time migration paths between regions were forced to be always displayed. Label positioning in general and the label text of migration paths in particular was extensively manually tweaked to optimize the map.

Improving content and readability is probably best explained by comparing the final result with an earlier one-map version in QGIS 1.8 where point decorations with arrows were not yet supported.

Emigration map - first version with QGIS 1.8
An earlier version of the map project done with QGIS 1.8. The “missile attack” immigration paths obscure most of the map. Note the GIS data artifacts e.g. around the Great Lakes prior using superior Natural Earth GIS data.