Coder Social home page Coder Social logo

geodels / gospl Goto Github PK

View Code? Open in Web Editor NEW
54.0 5.0 10.0 104.34 MB

Global Scalable Paleo Landscape Evolution Model

Home Page: https://gospl.readthedocs.io

License: GNU General Public License v3.0

Fortran 10.79% Python 74.34% Shell 0.45% Dockerfile 0.57% Jupyter Notebook 11.94% TeX 1.92%
paleogeography sediment-transport paleoclimate landscape landscape-evolution-model basin-modeling sedimentation erosion-process lithology compaction

gospl's Introduction

gospl / Global Scalable Paleo Landscape Evolution /

gospl is an open source, GPL-licensed library providing a scalable parallelised Python-based numerical model to simulate landscapes and basins reconstruction at global scale.

Build Status Linux/MacOS Build Status Coverage Status Documentation Status Updates
Latest release Github release PyPI version DOI
Features License: GPL v3 Language grade: Python Code style: black Total alerts

gospl

DOI

Statement of need

Since the ’90s, many software have been designed to estimate long-term catchment dynamic, drainage evolution as well as sedimentary basins formation in response to various mechanisms such as tectonic or climatic forcing. These models rely on a set of mathematical and physical expressions that simulates sediment erosion, transport and deposition and can reproduce the first order complexity of Earth’s surface geomorphological evolution.

Yet, we were still missing a tool to evaluate global scale evolution of Earth surface and its interaction with the atmosphere, the hydrosphere, the tectonic and mantle dynamics. gospl is the first model designed to address this gap. It can be used to better characterise many aspects of the Earth system ranging from the role of atmospheric circulation on physical denudation, from the influence of erosion and deposition of sediments on mantle convection, from the location and abundance of natural resources to the evolution of life.

Interested?

Check out the documentation:

Documentation Status

In short, it contains:

  1. an overview of the different ways to install the code,
  2. some technical notes on the underlying physics and implementation,
  3. a user guide with some notebook examples, and
  4. the API references.
  5. a user group Slack channel

Contributing to gospl

Contributions of any kind to gospl are more than welcome. That does not mean new code only, but also improvements of documentation and user guide, additional tests (ideally filling the gaps in existing suite) or bug report or idea what could be added or done better.

All contributions should go through our GitHub repository. Bug reports, ideas or even questions should be raised by opening an issue on the GitHub tracker. Suggestions for changes in code or documentation should be submitted as a pull request. However, if you are not sure what to do, feel free to open an issue. All discussion will then take place on GitHub to keep the development of gospl transparent.

If you decide to contribute to the codebase, ensure that you are using an up-to-date master branch. The latest development version will always be there, including the documentation (powered by sphinx).

Details are available in the documentation.

License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

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. If not, see http://www.gnu.org/licenses/gpl-3.0.en.html.

gospl's People

Contributors

kbarnhart avatar pyup-bot avatar tristan-salles avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

gospl's Issues

technical guide : description of plate tectonics?

As part of the JOSS review (openjournals/joss-reviews#2804), I am thinking that a description of how plate tectonics is included might be a great addition to the page https://gospl.readthedocs.io/en/latest/tech_guide/index.html#tech-guide. The erosion, deposition, and compaction algorithms are described, but I don't see a description of the methods used to:

  • laterally move the surfaces (gplates?)
  • remesh if needed, as the grids get distorted
  • deal with the collision of sediments (I assume there is no actual compression of sediment and crust, but something must be done at the plate boundaries, right?)

Or if all of the above is wrong, then maybe some text explaining what is done, because it is possible I am assuming a complexity that does not exist.

error running bfModel.ipynb within definegtin function

Hi @tristan-salles, I am testing your notebook example bfModel.ipynb as part of the review process for JOSS. I have installed gospl using mamba (its a wee bit faster, and developed locally here in Paris):

mamba env create -f conda-env.yml
mamba install jupyterlab

and then,

mamba install -c conda-forge pyvista
pip install stripy

The notebook however falls over with an error on the second cell:

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-3-4e10a22dcc17> in <module>
     30 a = np.sort(Gmesh.idx_hierarchy.reshape(s[0], -1).T)
     31 Gmesh.edges = {"nodes": np.unique(a, axis=0)}
---> 32 ngbNbs, ngbID = definegtin(len(coords), Gmesh.cells['nodes'], 
     33                            Gmesh.edges['nodes'])
     34 

KeyError: 'nodes'

Do you have any ideas what is causing this error? I am probably missing a dependency, I guess.

JOSS review: very minor points

This issue is part of my JOSS review: openjournals/joss-reviews#2804.

Hi @tristan-salles, congratulations on a really nice piece of software! I have used it through Docker and run the example notebooks without trouble (except for occasionally running out of memory on my machine, but that's my problem not yours).

I also find the technical guide very thorough after the changes suggested by John. I have just a couple of small reference additions to request for the paper (they may also be relevant to the technical guide). These are very minor:

  • Rivenaes (1992, Basin Research) should be cited for the two-fraction diffusion model.
  • Sclater and Christie (1980, JGR) should be cited for the compaction in addition to Yuan et al., since the latter is really presenting a clever shortcut to approximating the compaction law reported by the former.
  • Might you consider citing one of the foundational stream power papers given that you provide citations for the other process components? Howard et al (1994, JGR) would be one good option.

I wish I had more to offer in this review, but the software is working well and the technical guide is very thorough. gospl will be a big asset to the community.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.