loopstructural

LoopStructural is an open-source 3D structural geological modelling library.

https://github.com/loop3d/loopstructural

Science Score: 54.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
    4 of 8 committers (50.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.1%) to scientific vocabulary

Keywords

3d-modelling faults folds geology geology-modelling geoscience implicit-modelling interpolation kinematics structural-geology

Keywords from Contributors

interpretability standardization hack
Last synced: 6 months ago · JSON representation ·

Repository

LoopStructural is an open-source 3D structural geological modelling library.

Basic Info
  • Host: GitHub
  • Owner: Loop3D
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 150 MB
Statistics
  • Stars: 227
  • Watchers: 10
  • Forks: 46
  • Open Issues: 8
  • Releases: 94
Topics
3d-modelling faults folds geology geology-modelling geoscience implicit-modelling interpolation kinematics structural-geology
Created almost 7 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License Citation

README.md

LoopStructural: Loop3D Implicit Geological Modelling

3D model of Hamersley created using loopstructural PyPI version GitHub license Documentation loop3d.github.io/LoopStructural/

Overview

LoopStructural is an opensource Python library for 3D geological modelling. The library has been built in the scope of the Loop project (Loop3d.org). LoopStructural can:

  • Model fault networks integrating fault kinematics and overprinting relationships
  • Model folds using structural elements (fold axis, fold axial surface) for multiple fold events
  • Use different implicit interpolation algorithms (Finite Difference, Piecewiese Linear, RBF)
  • Export models to vtk, geoh5, omf, gocad, csv, obj formats
  • Visualise models in an interactive python environment.

Installation

Google colab

LoopStructural can be used inside a google colab notebook, however interactive visualisation using kitware trame does not work. Only static plots can be displayed.

Pip

pip install loopstructural

Optional dependencies are:

  • loopstructuralvisualisation (wrapper for pyvista to interface with loopstructural objects)
  • pyvista (3D visualisation)
  • geoh5py (export to .geoh5 format)
  • mira-omf (export to .omf format to load in Leapfrog)
  • pyevtk
  • dill (serialize loop models to a pickle file)
  • tqdm (progress bars)
  • loopsolver (experimental solver for admm inequality constraints)

You can install all of the optional dependencies using: pip install loopstructural[all]

conda

conda install -c conda-forge -c loop3d loopstructural

to install the working 3D visualisation environment conda install -c conda-forge -c loop3d loopstructural loopstructuralvisualisation pyvista trame trame-vtk trame-vuetify

Quickstart

  • A basic geological model

```Python from LoopStructural import GeologicalModel from LoopStructural.datatypes import BoundingBox from LoopStructural.visualisation import Loop3DView from LoopStructural.datasets import load_claudius

import numpy as np data, bb = load_claudius()

bb constaints origin and maximum of axis aligned bounding box

data is a pandas dataframe with X,Y,Z,val,nx,ny,nz, feature_name

model = GeologicalModel(bb[0,:],bb[1,:]) model.data = data

nelements specifies the number of discrete interpolation elements

'stratí' is the feature name in the data dataframe

model.createandadd_foliation('strati',nelements=1e5) model.update()

get the value of the interpolator at some random locations

locations = np.array( [ np.random.uniform(bb[0, 0], bb[1, 0],5), np.random.uniform(bb[0, 1], bb[1, 1],5), np.random.uniform(bb[0, 2], bb[1, 2],5), ] ).T val = model.evaluatefeaturevalue('strati', locations)

get the gradient of the interpolator

gradient = model.evaluatefeaturegradient('strati',locations)

Plot the scalar field of the model

model['strati'].scalar_field().plot()

```

Documentation

The LoopStructural documentation can be found here

Problems

Any bugs/feature requests/comments please create a new issue.

Acknowledgements

The Loop platform is an open source 3D probabilistic geological and geophysical modelling platform, initiated by Geoscience Australia and the OneGeology consortium. The project is funded by Australian territory, State and Federal Geological Surveys, the Australian Research Council and the MinEx Collaborative Research Centre.

Owner

  • Name: Loop3D
  • Login: Loop3D
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Grose"
  given-names: "Lachlan"
  orcid: "https://orcid.org/0000-0001-8089-7775"
- family-names: "Ailleres"
  given-names: "Laurent"
  orcid: "https://orcid.org/0000-0002-1897-4394"
- family-names: "Laurent"
  given-names: "Gautier"
  orcid: "https://orcid.org/0000-0003-0638-3391"
- family-names: "Jessell"
  given-names: "Mark"
  orcid: "https://orcid.org/0000-0002-0375-7311v"
title: "LoopStructural"
version: 1.0
doi: 10.5194/gmd-14-3915-2021
date-released: 2020-10-06
url: "https://github.com/Loop3d/LoopStructural"

GitHub Events

Total
  • Create event: 114
  • Issues event: 36
  • Release event: 15
  • Watch event: 42
  • Delete event: 77
  • Issue comment event: 47
  • Push event: 265
  • Pull request review comment event: 7
  • Pull request review event: 13
  • Pull request event: 83
  • Fork event: 8
Last Year
  • Create event: 114
  • Issues event: 36
  • Release event: 15
  • Watch event: 42
  • Delete event: 77
  • Issue comment event: 47
  • Push event: 265
  • Pull request review comment event: 7
  • Pull request review event: 13
  • Pull request event: 83
  • Fork event: 8

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 1,907
  • Total Committers: 8
  • Avg Commits per committer: 238.375
  • Development Distribution Score (DDS): 0.335
Past Year
  • Commits: 151
  • Committers: 5
  • Avg Commits per committer: 30.2
  • Development Distribution Score (DDS): 0.192
Top Committers
Name Email Commits
Lachlan Grose l****e@m****u 1,268
Lachlan Grose l****e@g****m 479
Fer071989 f****s@m****u 97
github-actions[bot] 4****] 41
Vincent Fazio v****f 15
Roy Thomson r****n@m****u 5
Roy Thomson R****n@m****u 1
Vincent Picavet v****t 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 73
  • Total pull requests: 204
  • Average time to close issues: about 1 year
  • Average time to close pull requests: 21 days
  • Total issue authors: 21
  • Total pull request authors: 11
  • Average comments per issue: 3.15
  • Average comments per pull request: 0.35
  • Merged pull requests: 167
  • Bot issues: 0
  • Bot pull requests: 81
Past Year
  • Issues: 14
  • Pull requests: 71
  • Average time to close issues: 21 days
  • Average time to close pull requests: 7 days
  • Issue authors: 7
  • Pull request authors: 4
  • Average comments per issue: 2.21
  • Average comments per pull request: 0.17
  • Merged pull requests: 57
  • Bot issues: 0
  • Bot pull requests: 25
Top Authors
Issue Authors
  • lachlangrose (14)
  • gpirot (13)
  • mustaeenqazi (9)
  • fjphhxx (7)
  • GeoMattB (5)
  • davenquinn (3)
  • andrea-bistacchi (3)
  • awickert (3)
  • lj-cug (2)
  • kerrybardot (2)
  • kiarash13p (1)
  • markjessell (1)
  • Changwan-planet (1)
  • MasterVV (1)
  • vinicius-anp (1)
Pull Request Authors
  • lachlangrose (88)
  • github-actions[bot] (83)
  • AxMeNi (8)
  • rabii-chaarani (7)
  • RoyThomsonMonash (5)
  • noellehmcheng (3)
  • vjf (2)
  • AngRodrigues (2)
  • robinthibaut (2)
  • sroberts88962 (2)
  • yohanderose (1)
Top Labels
Issue Labels
bug (31) enhancement (10) Documentation (1) question (1)
Pull Request Labels
autorelease: tagged (59) autorelease: pending (24)

Packages

  • Total packages: 4
  • Total downloads:
    • pypi 10,533 last-month
  • Total dependent packages: 1
    (may contain duplicates)
  • Total dependent repositories: 1
    (may contain duplicates)
  • Total versions: 203
  • Total maintainers: 1
proxy.golang.org: github.com/Loop3D/LoopStructural
  • Versions: 66
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
proxy.golang.org: github.com/loop3d/loopstructural
  • Versions: 66
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
pypi.org: loopstructural

3D geological modelling

  • Versions: 70
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 10,433 Last month
Rankings
Dependent packages count: 4.8%
Stargazers count: 6.0%
Forks count: 7.4%
Downloads: 8.6%
Average: 9.7%
Dependent repos count: 21.6%
Maintainers (1)
Last synced: 6 months ago
pypi.org: loopsolver

solvers used by loopstructural and other loop libraries

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 100 Last month
Rankings
Stargazers count: 6.9%
Forks count: 8.3%
Dependent packages count: 10.7%
Average: 21.5%
Dependent repos count: 60.2%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/conda.yml actions
  • actions/checkout v2 composite
  • conda-incubator/setup-miniconda v2 composite
  • microsoft/setup-msbuild v1.0.2 composite
.github/workflows/dockerimage.yml actions
  • actions/checkout master composite
  • elgohr/Publish-Docker-Github-Action master composite
.github/workflows/documentation.yml actions
  • actions/checkout v2 composite
  • conda-incubator/setup-miniconda v2.1.1 composite
.github/workflows/python-publish.yml actions
  • actions/checkout v2 composite
  • joerick/cibuildwheel v1.10.0 composite
.github/workflows/release-please.yml actions
  • GoogleCloudPlatform/release-please-action v3.5.0 composite
  • JamesIves/github-pages-deploy-action 4.1.3 composite
  • actions/checkout v2 composite
  • actions/checkout v3 composite
  • actions/download-artifact v3 composite
  • actions/upload-artifact v3 composite
  • conda-incubator/setup-miniconda v2 composite
  • microsoft/setup-msbuild v1.0.2 composite
  • pypa/cibuildwheel v2.12.0 composite
  • pypa/gh-action-pypi-publish v1.6.4 composite
Dockerfile docker
  • continuumio/miniconda3 latest build
docs/Dockerfile docker
  • continuumio/miniconda3 latest build
docs/requirements.txt pypi
  • myst-parser *
  • sphinx ==3.5.4
  • sphinx_gallery *
  • sphinx_rtd_theme *
  • sphinxcontrib-bibtex *
requirements.txt pypi
  • cython *
  • dill *
  • lavavu *
  • numpy *
  • pandas *
  • pyevtk *
  • scikit-image *
  • scikit-learn *
  • scipy *
  • setuptools *
setup.py pypi
  • geostatspy *
  • numba *
  • numpy >=1.18
  • pandas *
  • scikit-fmm *
  • scikit-image *
  • scikit-learn *
  • scipy *
  • statsmodels *
  • tqdm *