Skip to content
Library for handling diffs for geospatial data
Python C++ Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
geodiff
pygeodiff
scripts
.gitignore
.travis.yml
LICENSE
MANIFEST.in
README.md
appveyor.yml
pyproject.toml
setup.py

README.md

Build Status CircleCI Build status Coverage Status PyPI version

geodiff

Library for handling diffs for geospatial data

Use case 1: user has a GeoPackage with some data, then creates a copy and modifies it. Using this library it is possible to create a "difference" (delta) file that contains only changes between the original and the modified GeoPackage. The library can also take the original file and the generated diff file and produce the modified file.

Use case 2: two users start with the same copy of GeoPackage file which they modify independently. This may create conflicts when trying to merge edits of the two users back into one file. The library takes care of resolving any potential conflicts so that the changes can be applied cleanly.

The library is used by Mergin - a platform for easy sharing of spatial data.

Envirmonment

Output messages could be adjusted by GEODIFF_LOGGER_LEVEL environment variable. See header for details

Install

pip3 install pygeodiff

if you got error ModuleNotFoundError: No module named 'skbuild' try to update pip with command python -m pip install --upgrade pip

Publishing

PyPi

run python3 ./scripts/update_version.py --version x.y.z and push to GitHub

tag the master on github and it will be automatically published!

Development

  • Compile geodiff shared library
  mkdir build
  cd build
  cmake ../geodiff
  make

Run tests and check it is ok ./test_geodiff

  • run pygeodiff tests for python module, you need to setup GEODIFFLIB with path to .so/.dylib from step1
  GEODIFFLIB=`pwd`/../build/libgeodiff.dylib nose2

Dependencies & Licensing

Library uses its own copy of

You can’t perform that action at this time.