Skip to content

patrickboateng/geolysis

Repository files navigation

geolysis

PyPI Latest Release PyPI pyversions license

Coveralls Status Codacy Badge Unit-Tests Documentation Status

Note

Active development of geolysis occurs on the dev branch. For more information for the lastest features of geolysis, switch to the dev branch.

geolysis is your one-stop shop for all your geotechnical engineering solutions, ranging from site investigation and laboratory test analysis to advanced geotechnical designs.

geolysis is divided into four (4) main parts:

  1. geolyis.core (Python)

    geolysis.core is an open-source Python package that provides features for analyzing geotechnical results obtained from field and laboratory tests. geolysis.core is designed specifically to assist developers in building applications that can solve complex geotechnical problems.

    Whether you're working on soil mechanics, rock mechanics, or any other geotechnical field, geolysis.core provides a powerful set of tools that can help you design and develop robust solutions. With an intuitive API and a wide range of features, this software is an essential tool for anyone who needs to work with geotechnical data on a regular basis. Whether you're a seasoned geotechnical engineer or a new developer just getting started in the field, geolysis.core is the ideal solution for all your software development needs.

    Some of the features implemented so far include soil classification, standard penetration test analysis (such as SPT N-design and SPT N-value corrections), and calculating the allowable bearing capacity of soils from Standard Penetration Test N-values. There are more features underway, which include settlement analysis, ultimate bearing capacity analysis, etc.

    geolysis.core is the foundation application on which other parts of the application will depend. Developers can also use geolysis.core to power their applications.

  2. geolysis.ui (Qt, PySide6)

    geolysis.ui is a Graphical User Interface (GUI) which will enable users to graphically interact with geolysis. Users will be able to input data and view generated plots, such as PSD curves, Atterberg Limits plots, Compaction curves, etc within the application.

  3. geolysis.excel (Javascript & Others)

    geolysis.excel provides a Microsoft Excel add-in for simple geotechnical analysis. More on this later.

  4. geolysis.ai (Python, Pytorch & Others)

    geolysis.ai explores the use of Artificial Intelligence (AI) in enhancing productivity in Geotechnical Engineering.

Lastly geolysis.docs is the documentation project for geolysis.

Project Links

Table of Contents

Motivation

geolysis is a software solution that aims to support geotechnical engineers in their daily work by providing a set of tools that makes them perform their tasks in a more efficient and effective manner.

Moreover, the platform is designed to educate civil engineering students, especially those who specialize in geotechnical engineering, by exposing them to industry-relevant tools and techniques that will help them become industry-ready professionals as soon as they graduate.

With geolysis, users will be better equipped to handle geotechnical challenges, make informed decisions, and improve their overall productivity.

Installation

pip install geolysis

Getting Started

Soil Classification Example

AASHTO classification

>>> from geolysis.core.soil_classifier import ClfType, create_soil_classifier
>>> aashto_clf = create_soil_classifier(
...     liquid_limit=30.2,
...     plastic_limit=23.9,
...     fines=11.18,
...     clf_type=ClfType.AASHTO,
... )
>>> aashto_clf.classify()
'A-2-4(0)'
>>> aashto_clf.description()
'Silty or clayey gravel and sand'

USCS Classification

>>> from geolysis.core.soil_classifier import ClfType, create_soil_classifier
>>> uscs_clf = create_soil_classifier(
...     liquid_limit=34.1,
...     plastic_limit=21.1,
...     fines=47.88,
...     sand=37.84,
...     clf_type=ClfType.USCS,
... )
>>>
>>> uscs_clf.classify()
'SC'
>>> uscs_clf.description()
'Clayey sands'

>>> uscs_clf = create_soil_classifier(
...     liquid_limit=30.8,
...     plastic_limit=20.7,
...     fines=10.29,
...     sand=81.89,
...     d_10=0.07,
...     d_30=0.3,
...     d_60=0.8,
...     clf_type=ClfType.USCS,
... )
>>> uscs_clf.classify()
'SW-SC'
>>> uscs_clf.description()
'Well graded sand with clay'

Release History

Check out the release notes for features.

Code of Conduct

This project has a code of conduct that we expect all contributors to adhere to. Please read and follow it when participating in this project.

Contributing

If you would like to contribute to this project, please read the contributing guidelines

License

Distributed under the MIT license. By using, distributing, or contributing to this project, you agree to the terms and conditions of this license.

Governance of this project

geolysis.core is still developing relatively rapidly, so please be patient if things change or features iterate and change quickly.

Once geolysis.core hits 1.0.0, it will slow down considerably.

Contact Information

Important

For questions or comments about geolysis, please ask them in the discussions forum