D-Jeffrey / gedcom-to-visualmap

Using GEDCOM in Python, build a map using Folium (heat and line) or kml. It will Geocode different types of places and allow you to update those discovered addresses with GPS values. Includes GUI interface
MIT License
18 stars 3 forks source link
family-tree folium gedcom geneology geocode geocoding kml mapping myheritage python visual-mapping

GitHub Activity License Project Maintenance GitHub Activity

gedcom-to-visualmap

Read a GEDCOM file and translate the locations into GPS addresses. The produces different KML map types which should timelines and movements around the earth. The produces HTML file which is interactive..

This contains two interfaces: command-line and GUI (only tested on Windows)

Orginally forked from [https://github.com/lmallez/gedcom-to-map]

How to Run

Assuming you have Python installed otherwise... https://github.com/PackeTsar/Install-Python#readme

  1. Clone the repository:
    $ git clone https://github.com/D-Jeffrey/gedcom-to-visualmap
    • or -

Alternatively download the zip package of the latest release and unzip the package into a directory (such as gedcom-to-visualmap)

  1. Install dependencies:

    $ cd gedcom-to-visualmap
    $ pip install -r requirements.txt
  2. Run the GUI interface:

    cd gedcom-to-map
    python3 gedcomVisualGUI.py 

Alternate 3. Start the command line (Not recommended as there are so many options)

cd gedcom-to-map
python3 gedcom-to-map.py /users/darren/documents/myhertitagetree.ged myTree -main "@I500003@" 

GUI

img

To use the GUI version, File- > Open and select your .ged file. Set your options in the GUI interface

Once you have selected your options,

Output to HTML using folium

Usage

 usage: gedcom-to-map.py [-h] [-main MAIN] [-format {HTML,KML}] [-max_missing MAX_MISSING] [-max_line_weight MAX_LINE_WEIGHT] [-everyone] [-gpscache] [-nogps] [-nomarker] [-nobornmarker] [-noheatmap]
                        [-maptiletype {1,2,3,4,5,6,7}] [-nomarkstar] [-groupby {0,1,2}] [-antpath] [-heattime] [-heatstep HEATSTEP] [-homemarker] [-born] [-death]
                        input_file output_file

convert gedcom to kml file and lookup GPS addresses

positional arguments:
  input_file            GEDCOM file, usually ends at .ged
  output_file           results file, extension will be added if none is given

optional arguments:
  -h, --help            show this help message and exit
  -main MAIN            if this is missing it will use the first person in the GEDCOM file
  -format {HTML,KML}    type of output result for map format
  -max_missing MAX_MISSING
                        maximum generation missing (0 = no limit)
  -max_line_weight MAX_LINE_WEIGHT
                        Line maximum weight
  -everyone             Plot everyone in your tree

Geocoding:
  -gpscache             Use the GPS cache only
  -nogps                Do not lookup places using geocode to determine GPS, use built in GPS values

Folium Map as HTML (format HTML):
  -nomarker             Turn off the markers
  -nobornmarker         Turn off the markers for born
  -noheatmap            Turn off the heat map
  -maptiletype {1,2,3,4,5,6,7}
                        Map tile styles
  -nomarkstar           Turn off the markers starting person
  -groupby {0,1,2}      1 - Family Name, 2 - Person
  -antpath              Turn on AntPath
  -heattime             Turn on heatmap timeline
  -heatstep HEATSTEP    years per heatmap group step
  -homemarker           Turn on marking homes

KML processing:
  -born                 use place born for mapping
  -death                use place born for mapping

It produces a HTML file which is interactive and shows relationships betwenn childern and parents and where people lived over the years. It includes a heatmap to show busier places. If you zoom in enough you can see the different markers which are overlayed on each other.

cd samples
python3 ..\gedcom-to-map\gedcom-to-map.py input.ged output  -format HTML -groupby 1
python3 ..\gedcom-to-map\gedcom-to-map.py input.ged output -main "@I0000@" -format KML

KML Example revised

img

Go to https://www.google.ca/maps/about/mymaps

The geodat-address-cache.csv file can be edited to feed back in new Addresses for GeoCoding. Just edit or clear any column except the Name column to have it re-lookup that address. Especially useful if you want to make a bad or old style name resolve to a new name/location. If you do not have GPS location in your GEDCOM file, then use -born or -born -death so have it use the place where the person was born and/or died.

img

cd 
python3 ..\gedcom-to-map\gedcom-to-map.py pres2020.ged pres2020 -main "@I1@" -format HTML -groupby 1 -nomarkstar -antpath

img

python3 ..\gedcom-to-map\gedcom-to-map.py pres2020.ged pres2020-2 -main "@I676@" -format HTML -groupby 1 -nomarkstar -antpath

Complex Export of MyHeritage - intereactive map

img

Running on Linux

Other Ideas

Comparing MyHeritage PedigreeMap Heatmap and GedcomVisual Heatmap

I noticed that the MyHeritage has added a heatmap a year or so ago and it has a lot of overlap with the GedcomVisual heatmap.

img and img

TODO

Issues

GUI

Releases

v0.2.4.1

v0.2.1