Usage

You usually want to customize your input filename, output filenames, the root family and the depth of the graph visitor. You can provide these either by using command-line arguments (see ged2dot.py --help) or by using a configuration file (see ged2dotrc.sample). When using both, the command-line arguments overwrite configuration values.

A typical flow looks like this with a provided test input:

./ged2dot.py --input tests/happy.ged --output test.dot --rootfamily F1 --familydepth 3
dot -Tsvg -o test.svg test.dot

At this point you can open test.svg in your web browser and check the result. Mouse tooltips on the marriage nodes give you family IDs. You can change the familydepth parameter to include less or more nodes around the root family.

Layout

The layout does a Breadth First Search (BFS) traversal on the graph, from the starting family.

This has several benefits over explicitly trying to guess which family belongs to which generation. Some example more tricky cases, which are handled by ged2dot:

  • root family → husband → sister → showing her kids

  • root family → wife → cousin → showing her kid

  • root family → husband → grand father → showing both wives with the matching kids

  • marrying cousins

(ged2dot <= 7.0 allowed multiple layouts, none of them supported the above more tricky cases.)

GEDCOM files don't contain images, but you can put images next to the GEDCOM file, and in that case ged2dot will try to pick them up when generating dot output. The expected location is images/Given Family 1234.jpg, relative to the GEDCOM file. For example, there is a person called Ray Smith in the above screenshot. The birth year string is Y, so the image location has to be images/Ray Smith Y.jpg.

Bugs

For ged2dot, in case a given input results in a runtime crash, it's considered a bug. If you have a fix for it, pull requests on GitHub are welcome. Make sure to run make check before submitting your changes.

For the LibreOffice extension, in case you get an error during opening:

  • For Windows, the log file location is something like:
C:/Users/John/Application Data/LibreOffice/4/user/Scripts/python/log.txt
  • For Linux, start LibreOffice from a terminal, the log is printed to the standard error.

  • For Mac, start LibreOffice from Terminal:

cd /Applications/LibreOffice.app/Contents/program
./soffice --nologo /path/to/test.ged

then the log is printed to the standard error as well.

Icons

Icons are from WPZOOM, in case placeholders have to be used for missing images.

Resources