# GeoProfile
[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)
Explore the depths of the Earth with GeoProfile, a comprehensive package designed for geotechnical professionals and
researchers. This versatile toolkit is your go-to resource for analyzing and visualizing geotechnical profiles, offering
a seamless experience in understanding the complex stratigraphy of the subsurface.
Whether you are involved in civil engineering, environmental science, or geotechnical exploration, GeoProfile is your
indispensable companion for unraveling the mysteries beneath the surface. Elevate your geotechnical analysis and make
informed decisions with GeoProfile – where geology meets technology.
# Installation
To install this package, including the `map` and `gef` reading functionality, run:
```bash
pip install geoprofile[map, gef]
```
To skip the installation of the `GeoProfile` library, in case you do not need it (e.g. only use pure plotting), run:
```bash
pip install geoprofile
```
# Contribution
## Environment
We recommend developing in Python3.9 with a clean virtual environment (using `virtualenv` or `conda`), installing the
requirements from the requirements.txt file:
Example using `virtualenv` and `pip` to install the dependencies in a new environment .env on Linux:
```bash
python -m venv .env
source activate .env/bin/activate
python -m pip install --upgrade pip setuptools
pip install -r requirements.txt
pip install -e .
```
## Documentation
Build the docs:
```bash
python -m pip install --upgrade pip setuptools
pip install -r requirements.txt
pip install .
sphinx-build -b html docs public
```
Note: You'll need to set the `NUCLEI_TOKEN` environmental variable.
You can get your token at: `https://cemsbv.crux-nuclei.com`
## Format
We format our code with black and isort.
```bash
black --config "pyproject.toml" src/geoprofile tests notebook docs
isort --settings-path "pyproject.toml" src/geoprofile tests notebook docs
```
## Lint
To maintain code quality we use the GitHub super-linter.
To run the linters locally, run the `run_super_linters.sh` bash script from the root directory.
## UnitTest
Test the software with the use of coverage:
```bash
python -m pip install --upgrade pip setuptools
pip install -r requirements.txt
pip install .
coverage run -m pytest
```
## Requirements
Requirements are autogenerated by `pip-compile` with python 3.9
```bash
pip-compile --extra=test --extra=docs --extra=lint --extra=map --extra=gef --output-file=requirements.txt pyproject.toml
```
To update the requirements within the defined ranges, run:
```bash
pip-compile --upgrade --extra=test --extra=docs --extra=lint --extra=map --extra=gef --output-file=requirements.txt pyproject.toml
```
Raw data
{
"_id": null,
"home_page": null,
"name": "GeoProfile",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "visualizing",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/33/21/728c2e8468f7b217f3f3a5cca50eace8624e163010dfd9a9847b451dd548/geoprofile-0.1.0.tar.gz",
"platform": null,
"description": "# GeoProfile\n\n[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](http://mypy-lang.org/)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)\n\nExplore the depths of the Earth with GeoProfile, a comprehensive package designed for geotechnical professionals and\nresearchers. This versatile toolkit is your go-to resource for analyzing and visualizing geotechnical profiles, offering\na seamless experience in understanding the complex stratigraphy of the subsurface.\n\nWhether you are involved in civil engineering, environmental science, or geotechnical exploration, GeoProfile is your\nindispensable companion for unraveling the mysteries beneath the surface. Elevate your geotechnical analysis and make\ninformed decisions with GeoProfile \u2013 where geology meets technology.\n\n# Installation\n\nTo install this package, including the `map` and `gef` reading functionality, run:\n\n```bash\npip install geoprofile[map, gef]\n```\n\nTo skip the installation of the `GeoProfile` library, in case you do not need it (e.g. only use pure plotting), run:\n\n```bash\npip install geoprofile\n```\n\n# Contribution\n\n## Environment\n\nWe recommend developing in Python3.9 with a clean virtual environment (using `virtualenv` or `conda`), installing the\nrequirements from the requirements.txt file:\n\nExample using `virtualenv` and `pip` to install the dependencies in a new environment .env on Linux:\n\n```bash\npython -m venv .env\nsource activate .env/bin/activate\npython -m pip install --upgrade pip setuptools\npip install -r requirements.txt\npip install -e .\n```\n\n## Documentation\n\nBuild the docs:\n\n```bash\npython -m pip install --upgrade pip setuptools\npip install -r requirements.txt\npip install .\nsphinx-build -b html docs public\n```\n\nNote: You'll need to set the `NUCLEI_TOKEN` environmental variable.\nYou can get your token at: `https://cemsbv.crux-nuclei.com`\n\n## Format\n\nWe format our code with black and isort.\n\n```bash\nblack --config \"pyproject.toml\" src/geoprofile tests notebook docs\nisort --settings-path \"pyproject.toml\" src/geoprofile tests notebook docs\n```\n\n## Lint\n\nTo maintain code quality we use the GitHub super-linter.\n\nTo run the linters locally, run the `run_super_linters.sh` bash script from the root directory.\n\n## UnitTest\n\nTest the software with the use of coverage:\n\n```bash\npython -m pip install --upgrade pip setuptools\npip install -r requirements.txt\npip install .\ncoverage run -m pytest\n```\n\n## Requirements\n\nRequirements are autogenerated by `pip-compile` with python 3.9\n\n```bash\npip-compile --extra=test --extra=docs --extra=lint --extra=map --extra=gef --output-file=requirements.txt pyproject.toml\n```\n\nTo update the requirements within the defined ranges, run:\n\n```bash\npip-compile --upgrade --extra=test --extra=docs --extra=lint --extra=map --extra=gef --output-file=requirements.txt pyproject.toml\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "A Python library for visualizing geotechnical profiles.",
"version": "0.1.0",
"project_urls": {
"repository": "https://github.com/cemsbv/GeoProfile"
},
"split_keywords": [
"visualizing"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1ca3a27613d5d36309bf75acffefa5dd52de0dd49df9a76bbd4f1cce10a96a47",
"md5": "c9ef395b6073a0ff8a995f5fe69fb7bb",
"sha256": "b8ded8852155728a6595c53e5b0d4e76510c6794013ac9297c6bfe8ff4c363d8"
},
"downloads": -1,
"filename": "GeoProfile-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c9ef395b6073a0ff8a995f5fe69fb7bb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 14096,
"upload_time": "2024-04-30T07:22:47",
"upload_time_iso_8601": "2024-04-30T07:22:47.961233Z",
"url": "https://files.pythonhosted.org/packages/1c/a3/a27613d5d36309bf75acffefa5dd52de0dd49df9a76bbd4f1cce10a96a47/GeoProfile-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3321728c2e8468f7b217f3f3a5cca50eace8624e163010dfd9a9847b451dd548",
"md5": "7f1cd5b4208b4b9bc75ee7f67c3cf66d",
"sha256": "4f3c810873e2020b95d489af8428c740e7d60d1aa83a7c6438b0a07d04b71fa1"
},
"downloads": -1,
"filename": "geoprofile-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "7f1cd5b4208b4b9bc75ee7f67c3cf66d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 14200,
"upload_time": "2024-04-30T07:22:49",
"upload_time_iso_8601": "2024-04-30T07:22:49.888616Z",
"url": "https://files.pythonhosted.org/packages/33/21/728c2e8468f7b217f3f3a5cca50eace8624e163010dfd9a9847b451dd548/geoprofile-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-30 07:22:49",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "cemsbv",
"github_project": "GeoProfile",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "affine",
"specs": [
[
"==",
"2.4.0"
]
]
},
{
"name": "alabaster",
"specs": [
[
"==",
"0.7.16"
]
]
},
{
"name": "asteroid-sphinx-theme",
"specs": [
[
"==",
"0.0.3"
]
]
},
{
"name": "attrs",
"specs": [
[
"==",
"23.2.0"
]
]
},
{
"name": "babel",
"specs": [
[
"==",
"2.14.0"
]
]
},
{
"name": "backcall",
"specs": [
[
"==",
"0.2.0"
]
]
},
{
"name": "black",
"specs": [
[
"==",
"24.2.0"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2024.2.2"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"3.3.2"
]
]
},
{
"name": "click",
"specs": [
[
"==",
"8.1.7"
]
]
},
{
"name": "click-plugins",
"specs": [
[
"==",
"1.1.1"
]
]
},
{
"name": "cligj",
"specs": [
[
"==",
"0.7.2"
]
]
},
{
"name": "contextily",
"specs": [
[
"==",
"1.5.0"
]
]
},
{
"name": "contourpy",
"specs": [
[
"==",
"1.2.0"
]
]
},
{
"name": "coverage",
"specs": [
[
"==",
"6.5.0"
]
]
},
{
"name": "coveralls",
"specs": [
[
"==",
"3.3.1"
]
]
},
{
"name": "cycler",
"specs": [
[
"==",
"0.12.1"
]
]
},
{
"name": "decorator",
"specs": [
[
"==",
"5.1.1"
]
]
},
{
"name": "deprecated",
"specs": [
[
"==",
"1.2.14"
]
]
},
{
"name": "docopt",
"specs": [
[
"==",
"0.6.2"
]
]
},
{
"name": "docutils",
"specs": [
[
"==",
"0.18.1"
]
]
},
{
"name": "exceptiongroup",
"specs": [
[
"==",
"1.2.0"
]
]
},
{
"name": "fiona",
"specs": [
[
"==",
"1.9.5"
]
]
},
{
"name": "fonttools",
"specs": [
[
"==",
"4.48.1"
]
]
},
{
"name": "gef-file-to-map",
"specs": [
[
"==",
"0.1.0"
]
]
},
{
"name": "geographiclib",
"specs": [
[
"==",
"2.0"
]
]
},
{
"name": "geopandas",
"specs": [
[
"==",
"0.14.3"
]
]
},
{
"name": "geopy",
"specs": [
[
"==",
"2.4.1"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.6"
]
]
},
{
"name": "imagesize",
"specs": [
[
"==",
"1.4.1"
]
]
},
{
"name": "iniconfig",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "ipython",
"specs": [
[
"==",
"7.30.1"
]
]
},
{
"name": "isort",
"specs": [
[
"==",
"5.13.2"
]
]
},
{
"name": "jedi",
"specs": [
[
"==",
"0.19.1"
]
]
},
{
"name": "jinja2",
"specs": [
[
"==",
"3.1.3"
]
]
},
{
"name": "joblib",
"specs": [
[
"==",
"1.3.2"
]
]
},
{
"name": "kiwisolver",
"specs": [
[
"==",
"1.4.5"
]
]
},
{
"name": "lxml",
"specs": [
[
"==",
"4.9.4"
]
]
},
{
"name": "m2r2",
"specs": [
[
"==",
"0.3.2"
]
]
},
{
"name": "markupsafe",
"specs": [
[
"==",
"2.1.5"
]
]
},
{
"name": "matplotlib",
"specs": [
[
"==",
"3.8.2"
]
]
},
{
"name": "matplotlib-inline",
"specs": [
[
"==",
"0.1.6"
]
]
},
{
"name": "mercantile",
"specs": [
[
"==",
"1.2.1"
]
]
},
{
"name": "mistune",
"specs": [
[
"==",
"0.8.4"
]
]
},
{
"name": "mypy-extensions",
"specs": [
[
"==",
"1.0.0"
]
]
},
{
"name": "networkx",
"specs": [
[
"==",
"2.8.8"
]
]
},
{
"name": "numpy",
"specs": [
[
"==",
"1.26.4"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"23.2"
]
]
},
{
"name": "pandas",
"specs": [
[
"==",
"2.2.0"
]
]
},
{
"name": "parso",
"specs": [
[
"==",
"0.8.3"
]
]
},
{
"name": "pathspec",
"specs": [
[
"==",
"0.12.1"
]
]
},
{
"name": "pexpect",
"specs": [
[
"==",
"4.9.0"
]
]
},
{
"name": "pickleshare",
"specs": [
[
"==",
"0.7.5"
]
]
},
{
"name": "pillow",
"specs": [
[
"==",
"10.2.0"
]
]
},
{
"name": "platformdirs",
"specs": [
[
"==",
"4.2.0"
]
]
},
{
"name": "plotly",
"specs": [
[
"==",
"5.18.0"
]
]
},
{
"name": "pluggy",
"specs": [
[
"==",
"1.4.0"
]
]
},
{
"name": "polars",
"specs": [
[
"==",
"0.19.19"
]
]
},
{
"name": "prompt-toolkit",
"specs": [
[
"==",
"3.0.43"
]
]
},
{
"name": "ptyprocess",
"specs": [
[
"==",
"0.7.0"
]
]
},
{
"name": "pyarrow",
"specs": [
[
"==",
"15.0.0"
]
]
},
{
"name": "pygef",
"specs": [
[
"==",
"0.10.1"
]
]
},
{
"name": "pygments",
"specs": [
[
"==",
"2.17.2"
]
]
},
{
"name": "pyparsing",
"specs": [
[
"==",
"3.1.1"
]
]
},
{
"name": "pyproj",
"specs": [
[
"==",
"3.6.1"
]
]
},
{
"name": "pytest",
"specs": [
[
"==",
"8.0.0"
]
]
},
{
"name": "python-dateutil",
"specs": [
[
"==",
"2.8.2"
]
]
},
{
"name": "python-tsp",
"specs": [
[
"==",
"0.4.1"
]
]
},
{
"name": "pytz",
"specs": [
[
"==",
"2024.1"
]
]
},
{
"name": "rasterio",
"specs": [
[
"==",
"1.3.9"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.31.0"
]
]
},
{
"name": "scikit-spatial",
"specs": [
[
"==",
"7.2.0"
]
]
},
{
"name": "scipy",
"specs": [
[
"==",
"1.12.0"
]
]
},
{
"name": "shapely",
"specs": [
[
"==",
"1.8.5.post1"
]
]
},
{
"name": "six",
"specs": [
[
"==",
"1.16.0"
]
]
},
{
"name": "snowballstemmer",
"specs": [
[
"==",
"2.2.0"
]
]
},
{
"name": "snuggs",
"specs": [
[
"==",
"1.4.7"
]
]
},
{
"name": "sphinx",
"specs": [
[
"==",
"6.1.3"
]
]
},
{
"name": "sphinx-autodoc-typehints",
"specs": [
[
"==",
"1.22"
]
]
},
{
"name": "sphinx-rtd-theme",
"specs": [
[
"==",
"1.2.0"
]
]
},
{
"name": "sphinxcontrib-applehelp",
"specs": [
[
"==",
"1.0.8"
]
]
},
{
"name": "sphinxcontrib-devhelp",
"specs": [
[
"==",
"1.0.6"
]
]
},
{
"name": "sphinxcontrib-htmlhelp",
"specs": [
[
"==",
"2.0.5"
]
]
},
{
"name": "sphinxcontrib-jquery",
"specs": [
[
"==",
"4.1"
]
]
},
{
"name": "sphinxcontrib-jsmath",
"specs": [
[
"==",
"1.0.1"
]
]
},
{
"name": "sphinxcontrib-qthelp",
"specs": [
[
"==",
"1.0.7"
]
]
},
{
"name": "sphinxcontrib-serializinghtml",
"specs": [
[
"==",
"1.1.10"
]
]
},
{
"name": "tabulate",
"specs": [
[
"==",
"0.8.10"
]
]
},
{
"name": "tenacity",
"specs": [
[
"==",
"8.2.3"
]
]
},
{
"name": "tomli",
"specs": [
[
"==",
"2.0.1"
]
]
},
{
"name": "tqdm",
"specs": [
[
"==",
"4.66.2"
]
]
},
{
"name": "traitlets",
"specs": [
[
"==",
"5.14.1"
]
]
},
{
"name": "tsplib95",
"specs": [
[
"==",
"0.7.1"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
"==",
"4.9.0"
]
]
},
{
"name": "tzdata",
"specs": [
[
"==",
"2024.1"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"2.2.0"
]
]
},
{
"name": "wcwidth",
"specs": [
[
"==",
"0.2.13"
]
]
},
{
"name": "wrapt",
"specs": [
[
"==",
"1.16.0"
]
]
},
{
"name": "xyzservices",
"specs": [
[
"==",
"2023.10.1"
]
]
}
],
"lcname": "geoprofile"
}