Computing homelands

Computing geo-coordinates for homelands of language groups, i.e. languoids of level family.

Various ways of computing “homelands” for language groups have been proposed in the literature since Sapir 1916. This module provides implementations of some of the simpler algorithms.

pyglottolog.homelands.compute(api, method)[source]

Compute homelands for applicable Glottolog subgroups using a method implemented in this module or any callable with appropriate signature.

Parameters:
Return type:

typing.Dict[str, typing.Tuple[decimal.Decimal, decimal.Decimal]]

pyglottolog.homelands.md(langs)[source]

Compute homeland coordinates for a language group (and its subgroups) as described as “md” method in “Testing methods of linguistic homeland detection using synthetic data” by Søren Wichmann and Taraka Rama https://doi.org/10.1098/rstb.2020.0202

Wichmann and Rama 2021:

In the third approach, abbreviated ‘md’ for ‘minimal distance’, we compute the average distance (as the crow flies) from each language to all the other languages. The location of the language that has the smallest average distance to the others is equated with the homeland.

We use the pyproj.Geod.inv method to compute the great-circle distance between two points.

Parameters:

langs (typing.List[pyglottolog.languoids.languoid.Languoid]) –

Return type:

typing.Dict[str, typing.Tuple[decimal.Decimal, decimal.Decimal]]

pyglottolog.homelands.recursive_centroids(langs)[source]

Recursively compute homelands of subgroups from the homelands of their immediate children in the classification.

  1. The homeland of a single language is its geographic coordinate.

  2. The homeland of a set of coordinates (for homelands or languages) is computed as nearest point on land of the centroid of the convex hull for the set of coordinates.

Parameters:

langs (typing.List[pyglottolog.languoids.languoid.Languoid]) –

Return type:

typing.Dict[str, typing.Tuple[decimal.Decimal, decimal.Decimal]]