GPlates is a desktop application for the interactive visualisation of plate tectonics.
PyGPlates is a library for accessing GPlates functionality via the Python programming language.
Müller, R. D., Cannon, J., Qin, X., Watson, R. J., Gurnis, M., Williams, S., Pfaffelmoser, T., Seton, M., Russell, S. H. J. ,Zahirovic S. (2018). GPlates: Building a virtual Earth through deep time. Geochemistry, Geophysics, Geosystems, 19, 2243-2261.
Mather, B. R., Müller, R. D., Zahirovic, S., Cannon, J., Chin, M., Ilano, L., Wright, N. M., Alfonso, C., Williams, S., Tetley, M., Merdith, A. (2023) Deep time spatio-temporal data analysis using pyGPlates with PlateTectonicTools and GPlately. Geoscience Data Journal, 00, 1-8.
GPlates is a plate tectonics program with a range of features for visualising and manipulating plate tectonic reconstructions and associated data through geological time. GPlates is developed by an international team of scientists and software developers.
The initial release of GPlates, version 0.5 Beta, debuted on October 30, 2003. Since its inception, GPlates has evolved into a robust software suite encompassing desktop application, Python libraries, web service and application, and mobile app, offering a comprehensive range of functionalities.
For more information please visit the GPlates website.
The documentation includes:
- the GPlates user manual to learn about specific GPlates functionality (such as tools, menus and dialogs),
- GPlates tutorials to learn how to use GPlates in research-oriented workflows,
- pyGPlates library documentation covering installation, sample code and a detailed API reference for pyGPlates,
- pyGPlates tutorials in the form of Jupyter Notebooks that analyse and visualise real-world data using pyGPlates.
There is also a GPlates online forum for the users, developers and researchers to discuss topics related to GPlates and pyGPlates.
Ready-to-use binary packages are available to install GPlates and pyGPlates on Windows, macOS (Intel and Silicon) and Ubuntu. These also include GPlates-compatible geodata.
PyGPlates can also be installed using conda. Please see the pyGPlates documentation for details.
The source code can be compiled on Windows, macOS and Linux. This can be useful for non-Ubuntu Linux users.
The source code is obtained either by:
- downloading from the same download page as the binary packages, or
- checking out a primary branch in this repository.
Instructions for installing the dependencies and compiling GPlates/pyGPlates can be found in the source code, in the files:
- DEPS.Linux and BUILD.Linux (on Linux)
- DEPS.OSX and BUILD.OSX (on macOS)
- DEPS.Windows and BUILD.Windows (on Windows)
GPlates and pyGPlates are licensed for distribution under the GNU General Public License (GPL), version 2.
- Boost 1.35 or above
- CGAL 4.7 or above (preferably 4.12 or above)
- CMake 3.10 or above
- GDAL 1.3.2 or above (preferably 2 or above)
- GLEW
- PROJ 4.6 or above (preferably 6 or above)
- Python 3.7 or above (or 2.7)
- Qt 5.6 - 5.15 (note: 6.x will only be supported for GPlates 3.0)
- Qwt 6.0.1 or above (preferably 6.1 or above)
Public releases and development snapshots can be compiled from the primary branches in this repository.
To compile the latest official public release:
- For GPlates, use the
release-gplates
branch. - For PyGPlates, use the
release-pygplates
branch.
Note: Alternatively, download the source code from the download page.
To compile the latest development snapshot:
- For GPlates, use the
gplates
branch (the default branch). - For PyGPlates, use the
pygplates
branch.
The branching model used in this repository is based on gitflow, with:
- main branches named:
release-gplates
to track the history of GPlates releasesrelease-pygplates
to track the history of pyGPlates releases
Note: To see the list of all public releases on the command-line, type:
git log --first-parent release-gplates release-pygplates
- develop branches named:
gplates
for development of GPlatespygplates
for development of pyGPlatesgplates-3.0-dev
for development of GPlates 3.0- this long-lived branch differs significantly from the
gplates
branch - it includes the replacement of OpenGL with Vulkan (in progress), among other features
- it will eventually be merged back into
gplates
and turned into the GPlates 3.0 release
- this long-lived branch differs significantly from the
Note: The default branch is
gplates
(synonymous with the typical 'main' or 'master' branch in other repositories). - feature branches named:
feature/<name>
for developing a new feature
Note: These short-lived branches are merged back into their parent develop branch (
gplates
,pygplates
, or evengplates-3.0-dev
). - release branches named:
release/gplates-<gplates_version>
for preparing a GPlates releaserelease/pygplates-<pygplates_version>
for preparing a pyGPlates release
Note: These short-lived branches are merged into
release-gplates
orrelease-pygplates
(main branch containing all GPlates or pyGPlates releases) and also merged intogplates
orpygplates
(develop branch). - hotfix branches named:
hotfix/gplates-<gplates_version>
for preparing a GPlates bug fix releasehotfix/pygplates-<pygplates_version>
for preparing a pyGPlates bug fix release
Note: These short-lived branches are merged into
release-gplates
orrelease-pygplates
(main branch containing all GPlates or pyGPlates releases) and also merged intogplates
orpygplates
(develop branch).