/GPlates

GPlates is a plate tectonics program. Manipulate reconstructions of geological and paleogeographic features through geological time. Interactively visualize vector, raster and volume data. PyGPlates is the GPlates Python library. Get fine-grained access to GPlates functionality in your Python scripts.

Primary LanguageC++OtherNOASSERTION

GPlates Logo

GPlates is a desktop application for the interactive visualisation of plate tectonics.

PyGPlates Logo

PyGPlates is a library for accessing GPlates functionality via the Python programming language.

Anaconda-Server Badge

Citations:

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.

Introduction

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.

Documentation

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.

Installation

Binary packages

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.

Source code

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:

Instructions for installing the dependencies and compiling GPlates/pyGPlates can be found in the source code, in the files:

GPlates and pyGPlates are licensed for distribution under the GNU General Public License (GPL), version 2.

Dependencies

  • 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)

Repository

Public releases and development snapshots can be compiled from the primary branches in this repository.

Primary branches

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.
Development branching model

The branching model used in this repository is based on gitflow, with:

  • main branches named:
    • release-gplates to track the history of GPlates releases
    • release-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 GPlates
    • pygplates for development of pyGPlates
    • gplates-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

    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 even gplates-3.0-dev).

  • release branches named:
    • release/gplates-<gplates_version> for preparing a GPlates release
    • release/pygplates-<pygplates_version> for preparing a pyGPlates release

    Note: These short-lived branches are merged into release-gplates or release-pygplates (main branch containing all GPlates or pyGPlates releases) and also merged into gplates or pygplates (develop branch).

  • hotfix branches named:
    • hotfix/gplates-<gplates_version> for preparing a GPlates bug fix release
    • hotfix/pygplates-<pygplates_version> for preparing a pyGPlates bug fix release

    Note: These short-lived branches are merged into release-gplates or release-pygplates (main branch containing all GPlates or pyGPlates releases) and also merged into gplates or pygplates (develop branch).