如何使用 Julia 读取 GEDCOM 文件?
How to read a GEDCOM file with Julia?
我有一个从 Ancestral Quest 导出的 GEDCOM 文件和我的家谱,它很长,我想对它做一些分析。我想构造一个树结构,递归探索。
是否有任何库可以读取 GEDCOM 文件并创建树结构或某种类型的有向图?
您可以使用 python-gendom 来解析文件并将其转换为 LightGraphs 的图形。随后可以使用 GraphPlot 实际制作绘图。
这是一个工作代码框架:
using PyCall
using Conda
using LightGraphs
run(`$(PyCall.python) -m pip install python-gedcom`)
gedcom = pyimport("gedcom")
gparser = pyimport("gedcom.parser")
gedcom_parser = gparser.Parser()
# download from "https://www.gedcom.org/samples/555SAMPLE.GED"
gedcom_parser.parse_file("c:/temp/555SAMPLE.GED")
g = SimpleDiGraph()
for el in gedcom_parser.get_root_child_elements()
display(el)
# todo populate graph g
# recursively iterate over tree
# see https://pypi.org/project/python-gedcom/ for more details how to read the data
end
# todo use GraphPlot to plot the graph
我有一个从 Ancestral Quest 导出的 GEDCOM 文件和我的家谱,它很长,我想对它做一些分析。我想构造一个树结构,递归探索。
是否有任何库可以读取 GEDCOM 文件并创建树结构或某种类型的有向图?
您可以使用 python-gendom 来解析文件并将其转换为 LightGraphs 的图形。随后可以使用 GraphPlot 实际制作绘图。
这是一个工作代码框架:
using PyCall
using Conda
using LightGraphs
run(`$(PyCall.python) -m pip install python-gedcom`)
gedcom = pyimport("gedcom")
gparser = pyimport("gedcom.parser")
gedcom_parser = gparser.Parser()
# download from "https://www.gedcom.org/samples/555SAMPLE.GED"
gedcom_parser.parse_file("c:/temp/555SAMPLE.GED")
g = SimpleDiGraph()
for el in gedcom_parser.get_root_child_elements()
display(el)
# todo populate graph g
# recursively iterate over tree
# see https://pypi.org/project/python-gedcom/ for more details how to read the data
end
# todo use GraphPlot to plot the graph