kart
Distributed version-control for geospatial and tabular data
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.5%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
Distributed version-control for geospatial and tabular data
Basic Info
- Host: GitHub
- Owner: koordinates
- License: other
- Language: Python
- Default Branch: master
- Homepage: https://kartproject.org
- Size: 108 MB
Statistics
- Stars: 637
- Watchers: 26
- Forks: 41
- Open Issues: 54
- Releases: 38
Topics
Metadata Files
README.md

Kart: Distributed version-control for datasets
Installing
Upgrading to v0.16.1
See the v0.16.1 release notes for changes, upgrading, and compatibility notes.
Windows
Download the .msi installer from the release page.
If Windows Defender SmartScreen says "it prevented an unrecognized app from starting" after downloading, you'll need to click "Run anyway".
macOS
Download the .pkg installer from the release page;
Or use Homebrew to install: brew install koordinates/kart/kart
Linux
For Debian/Ubuntu-based distributions, download the .deb package from the release page and install via dpkg -i kart_*.deb.
For RPM-based distributions, download the .rpm package from the release page and install via rpm -i kart-*.rpm.
Source
For Kart development see the Contributing Notes.
Usage
See the documentation for tutorials and reference.
If you're new to git
Configure the identity you will use for Kart commits with:
console $ kart config --global user.email "you@example.com" $ kart config --global user.name "Your Name"
Quick Start
- Export a GeoPackage from Koordinates with any combination of vector layers and tables.
- Create a new Kart repository and import the GeoPackage (eg.
kx-foo-layer.gpkg).console $ kart init myproject --import GPKG:kx-foo-layer.gpkg $ cd myprojectUse this repository as the directory to run all the other commands in. This will also create a working copy asmyproject/myproject.gpkgto edit. - Editing the working copy in QGIS/etc:
- will track changes in the internal
karttables - additions/edits/deletes of features are supported
- changing feature PKs is supported
- schema changes should be detected, but aren't supported yet (will error).
- Use F5 to refresh your QGIS map after changing the underlying working-copy data using
kart.
- will track changes in the internal
- With your working copy,
kartcommands should work if run from themyproject/folder. Check--helpfor options, the most important ones are supported. In some cases options are passed straight through to an underlying git command:kart diffdiff the working copy against the repository (no index!)kart commit -m {message}commit outstanding changes from the working copykart logreview commit historykart branch&kart checkout -bbranch managementkart fetchfetch upstream changes.kart statusshow working copy state.kart mergemerge. Supports--ff/--no-ff/--ff-onlyfrom one merge source.kart switchswitch to existing or new branches.kart reset&kart restorediscard changes in the working copy.kart tag ...kart remote .... Remember simple remotes can just be another local directory.kart push/kart pullkart cloneinitialise a new repository from a remote URL,
License
GPLv2 with linking exception
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation.
In addition to the permissions in the GNU General Public License, the authors give you unlimited permission to link the compiled version of this file into combinations with other programs, and to distribute those combinations without any restriction coming from the use of this file. (The General Public License restrictions do apply in other respects; for example, they cover modification of the file, and distribution when not linked into a combined executable.)
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
Owner
- Name: Koordinates
- Login: koordinates
- Kind: organization
- Email: support@koordinates.com
- Location: New Zealand
- Website: https://koordinates.com
- Twitter: koordinates
- Repositories: 92
- Profile: https://github.com/koordinates
A geospatial data management platform inspired by cracking GIS data out of vendor silos. You can host, manage, share, publish, access, and build apps.
Citation (CITATION)
To cite Kart in publications use:
Kart contributors (2023). Kart geospatial data version-control software.
URL https://kartproject.org
A BibTeX entry for LaTeX users is
@Manual{,
title = {{Kart} geospatial data version-control software},
author = {{Kart contributors}},
year = {2023},
url = {https://kartproject.org},
}
GitHub Events
Total
- Create event: 58
- Release event: 2
- Issues event: 21
- Watch event: 82
- Delete event: 36
- Issue comment event: 37
- Push event: 167
- Pull request review comment event: 27
- Pull request review event: 53
- Pull request event: 72
- Fork event: 2
Last Year
- Create event: 58
- Release event: 2
- Issues event: 21
- Watch event: 82
- Delete event: 36
- Issue comment event: 37
- Push event: 167
- Pull request review comment event: 27
- Pull request review event: 53
- Pull request event: 72
- Fork event: 2
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Andrew Olsen | a****n@k****m | 1,252 |
| Craig de Stigter | c****g@d****z | 505 |
| rcoup | r****p@k****m | 369 |
| dependabot[bot] | 4****] | 57 |
| Peter Wilkinson | pw@t****u | 36 |
| elena | e****o@k****m | 31 |
| Amal Thundiyil | a****l@g****m | 30 |
| dependabot-preview[bot] | 2****] | 21 |
| OrangeOranges | o****s@g****m | 16 |
| user | u****r@u****e | 8 |
| Hamish Campbell | h****l@g****m | 2 |
| Elena Fedchenko | 4****h | 1 |
| Jonathan Stanger | a****e | 1 |
| Leigh Hunt | l****h@v****z | 1 |
| TrellixVulnTeam | c****d@t****m | 1 |
| enrico ferreguti | f****e@c****t | 1 |
| Zumitify | s****3@g****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 33
- Total pull requests: 87
- Average time to close issues: 6 months
- Average time to close pull requests: 7 days
- Total issue authors: 14
- Total pull request authors: 5
- Average comments per issue: 1.91
- Average comments per pull request: 0.31
- Merged pull requests: 75
- Bot issues: 0
- Bot pull requests: 17
Past Year
- Issues: 12
- Pull requests: 59
- Average time to close issues: 5 days
- Average time to close pull requests: 2 days
- Issue authors: 4
- Pull request authors: 5
- Average comments per issue: 1.25
- Average comments per pull request: 0.29
- Merged pull requests: 53
- Bot issues: 0
- Bot pull requests: 10
Top Authors
Issue Authors
- craigds (9)
- olsen232 (8)
- Kaessham (3)
- hamishcampbell (2)
- andreatitolo (2)
- FelixEickeler (1)
- rhysallister (1)
- rcoup (1)
- joaov03 (1)
- Henrik-AFRY (1)
- sorokine (1)
- josephduchesne (1)
- afrigeri (1)
- SrNetoChan (1)
- vbjay (1)
Pull Request Authors
- craigds (57)
- olsen232 (37)
- dependabot[bot] (28)
- rcoup (10)
- hamishcampbell (2)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- ATiltedTree/setup-rust v1 composite
- actions/cache v3 composite
- actions/checkout v3 composite
- actions/download-artifact v3 composite
- actions/setup-python v4 composite
- actions/upload-artifact v3 composite
- apple-actions/import-codesign-certs v1 composite
- ilammy/msvc-dev-cmd v1 composite
- lukka/get-cmake latest composite
- lukka/get-cmake arm64-win-linux composite
- lukka/run-cmake v10 composite
- lukka/run-vcpkg v10 composite
- maxim-lobanov/setup-xcode v1 composite
- softprops/action-gh-release v1 composite
- ghcr.io/baosystems/postgis * docker
- mcr.microsoft.com/mssql/server * docker
- mysql * docker
- APPEND *
- BYPRODUCTSliccheck-report.txt *
- CAUTIOUS-s *
- COMMAND *
- COMMENT *
- DEPENDSliccheckEnvpy-dependencies *
- DEPENDSpip-compile-upgrade.stamp *
- DEPENDSpip-compile.stamp *
- DEPENDSrequirementsEnv *
- OUTPUTpip-compile-upgrade.stamp *
- OUTPUTpip-compile.stamp *
- PARENT_SCOPE *
- VERBATIM *
- WORKING_DIRECTORY *
- add_custom_command *
- add_custom_target *
- cffi *
- createvirtualenvironment *
- cryptography *
- endforeach *
- foreach *
- gdal *
- include *
- psycopg2 *
- py-license-check *
- py-requirements *
- py-requirements-upgrade *
- pygit2 *
- pysqlite3 *
- reflink *
- set *
- string *
- appnope * development
- colorama * development
- ipdb * development
- ipython * development
- pexpect >4.3 development
- appnope ==0.1.3 development
- asttokens ==2.2.1 development
- backcall ==0.2.0 development
- colorama ==0.4.6 development
- decorator ==5.1.1 development
- executing ==1.2.0 development
- ipdb ==0.13.11 development
- ipython ==8.10.0 development
- jedi ==0.18.2 development
- matplotlib-inline ==0.1.6 development
- parso ==0.8.3 development
- pexpect ==4.8.0 development
- pickleshare ==0.7.5 development
- prompt-toolkit ==3.0.36 development
- ptyprocess ==0.7.0 development
- pure-eval ==0.2.2 development
- pygments ==2.13.0 development
- six ==1.16.0 development
- stack-data ==0.6.2 development
- traitlets ==5.7.1 development
- wcwidth ==0.2.5 development
- sphinx-autobuild *
- sphinx-rtd-theme *
- alabaster ==0.7.12
- babel ==2.11.0
- certifi ==2022.12.7
- charset-normalizer ==2.1.1
- colorama ==0.4.6
- docutils ==0.17.1
- idna ==3.4
- imagesize ==1.4.1
- jinja2 ==3.1.3
- livereload ==2.6.3
- markupsafe ==2.1.1
- packaging ==22.0
- pygments ==2.13.0
- pytz ==2022.6
- requests ==2.31.0
- six ==1.16.0
- snowballstemmer ==2.2.0
- sphinx ==5.3.0
- sphinx-autobuild ==2021.3.14
- sphinx-rtd-theme ==1.1.1
- sphinxcontrib-applehelp ==1.0.2
- sphinxcontrib-devhelp ==1.0.2
- sphinxcontrib-htmlhelp ==2.0.0
- sphinxcontrib-jsmath ==1.0.1
- sphinxcontrib-qthelp ==1.0.3
- sphinxcontrib-serializinghtml ==1.1.5
- tornado ==6.3.3
- urllib3 ==1.26.16
- Pygments *
- boto3 >=1.29.1
- certifi *
- click *
- docutils <0.18
- jsonschema >=4.3
- msgpack *
- pymysql *
- rst2txt *
- shellingham *
- sqlalchemy *
- tqdm *
- attrs ==22.1.0
- boto3 ==1.29.6
- botocore ==1.32.6
- certifi ==2022.12.7
- click ==8.1.4
- docutils ==0.17.1
- jmespath ==1.0.1
- jsonschema ==4.17.3
- msgpack ==0.6.2
- pycparser ==2.21
- pygments ==2.13.0
- pymysql ==1.0.2
- pyodbc ==5.0.1
- pyrsistent ==0.19.2
- python-dateutil ==2.8.2
- rst2txt ==1.1.0
- s3transfer ==0.7.0
- shellingham ==1.5.0
- six ==1.16.0
- sqlalchemy ==1.4.45
- tqdm ==4.64.1
- urllib3 ==1.26.16
- atomicwrites >=1.0 test
- colorama * test
- html5lib * test
- pytest * test
- pytest-benchmark * test
- pytest-cov * test
- pytest-helpers-namespace * test
- pytest-mock * test
- pytest-profiling * test
- pytest-shard * test
- pytest-sugar * test
- pytest-xdist * test
- aspectlib ==2.0.0 test
- atomicwrites ==1.4.1 test
- attrs ==22.1.0 test
- colorama ==0.4.6 test
- coverage ==6.5.0 test
- execnet ==1.9.0 test
- fields ==5.0.0 test
- gprof2dot ==2022.7.29 test
- html5lib ==1.1 test
- iniconfig ==1.1.1 test
- packaging ==22.0 test
- pluggy ==1.0.0 test
- py-cpuinfo ==9.0.0 test
- pytest ==7.2.0 test
- pytest-benchmark ==4.0.0 test
- pytest-cov ==4.0.0 test
- pytest-helpers-namespace ==2021.12.29 test
- pytest-mock ==3.10.0 test
- pytest-profiling ==1.7.0 test
- pytest-shard ==0.1.2 test
- pytest-sugar ==0.9.6 test
- pytest-xdist ==3.1.0 test
- six ==1.16.0 test
- termcolor ==2.1.1 test
- webencodings ==0.5.1 test
- cffi ==1.16.0
- cryptography ==41.0.6
- gdal ==3.8.0
- psycopg2 ==2.9.9
- pygit2 ==1.12.1
- pyodbc ==5.0.1
- pysqlite3 ==0.5.2
- reflink ==0.2.2
- json-c *
- libgeotiff *
- pkgconf *
- proj *
- tiff *
- vcpkg-cmake *
- vcpkg-cmake-config *
- vcpkg-pkgconfig-get-modules *
- zlib *
- http-parser *
- vcpkg-cmake *
- vcpkg-cmake-config *
- zlib *
- geos *
- libiconv *
- libxml2 *
- proj *
- sqlite3 *
- vcpkg-pkgconfig-get-modules *
- zlib *
- curl *
- gdal *
- libgeotiff *
- libxml2 *
- nanoflann *
- nlohmann-json *
- pdal *
- vcpkg-cmake *
- vcpkg-cmake-config *
- curl *
- gdal *
- libffi *
- libgit2 *
- libpq *
- libspatialite *
- openssl *
- pcre2 *
- pdal *
- proj *
- python3 *
- sqlite3 *
- tiff *
- unixodbc *