# Python package _egcst_
This Python package helps to perform triangulation for engineering geological cross-sections.
# Installation
This Python package is uploaded to the PyPI repository and therefore can be installed with `pip install egcst` command line instruction and updated (this is critical at this early stage of development) with `pip install egcst --upgrade`.
# Polygon data format to feed
The only class `CrossSection()` of this package, when initiated, is expected to read an input text file that contains the polygons with unique geological characteristics in the following format: each polygon is placed on an individual line in the file with vertices' coordinates following one another separated with tabulation characters with x and y coordinates separated with a comma. The expected default name for this input file is `input.txt`. The object of the class `CrossSection()`, when initiated, can accept the optional argument `input_file_name` with another name for this input file. Another optional argument is `min_step`, which determines the approximate step for the triangulation grid. Its default value is 0.5.
# Dependencies
This package depends on the standard Python modules `sys` and `datetime` as well as the non-standard Python modules `numpy`, `matplotlib`, `shapely`, `ground`, and `sect`.
# How to use it
Very easy. The package has only one class `CrossSection()`, which is initiated with the input text file containing the coordinates for the polygons of the engineering geological cross-section. This class has only 5 'public' methods: `.draw_blank()`, `.triangulate()`, `.save_triangles()`, `.draw_triangles()`, `.do_everything()`, which (except for the last one) are expected to be called in this order (and never repeated for the same object). The `.save_triangles()` method saves triangles in a simplified text formats as well as attempts to do so in a STEP (ISO 10303-21) format. Although since I failed to find a single free working STEP analyzer, it is still a question whether the exported `.step` files actually comply with the stantard. Your comments on them are very welcome. <br/><br/> The illustration of how to use this package can be found in the attached file [egcst_illustration.ipybn](https://github.com/yuryatin/egcst/blob/main/egcst_illustration.ipynb) .<br/> Briefly this can be expressed like this:
```python
from egcst import CrossSection
cs = CrossSection(input_file_name="input.txt", min_step=1.0)
cs.do_everything()
```
![output_triangles](https://github.com/yuryatin/egcst/assets/14263965/b549f8e7-071c-406c-b515-7ae984076e8f)
Raw data
{
"_id": null,
"home_page": "https://github.com/yuryatin/egcst",
"name": "egcst",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "engineering,geological,cross,sections,mapping,triangulation,delaunay,step,stp,iso 10303-21",
"author": "",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/b4/01/210fe829d175862c40c1a625d672b92fcf1ac5bdf2e62920899b388958a5/egcst-0.0.12.tar.gz",
"platform": null,
"description": "# Python package _egcst_\nThis Python package helps to perform triangulation for engineering geological cross-sections.\n\n# Installation\nThis Python package is uploaded to the PyPI repository and therefore can be installed with `pip install egcst` command line instruction and updated (this is critical at this early stage of development) with `pip install egcst --upgrade`.\n\n# Polygon data format to feed\nThe only class `CrossSection()` of this package, when initiated, is expected to read an input text file that contains the polygons with unique geological characteristics in the following format: each polygon is placed on an individual line in the file with vertices' coordinates following one another separated with tabulation characters with x and y coordinates separated with a comma. The expected default name for this input file is `input.txt`. The object of the class `CrossSection()`, when initiated, can accept the optional argument `input_file_name` with another name for this input file. Another optional argument is `min_step`, which determines the approximate step for the triangulation grid. Its default value is 0.5.\n\n# Dependencies\nThis package depends on the standard Python modules `sys` and `datetime` as well as the non-standard Python modules `numpy`, `matplotlib`, `shapely`, `ground`, and `sect`.\n\n# How to use it\nVery easy. The package has only one class `CrossSection()`, which is initiated with the input text file containing the coordinates for the polygons of the engineering geological cross-section. This class has only 5 'public' methods: `.draw_blank()`, `.triangulate()`, `.save_triangles()`, `.draw_triangles()`, `.do_everything()`, which (except for the last one) are expected to be called in this order (and never repeated for the same object). The `.save_triangles()` method saves triangles in a simplified text formats as well as attempts to do so in a STEP (ISO 10303-21) format. Although since I failed to find a single free working STEP analyzer, it is still a question whether the exported `.step` files actually comply with the stantard. Your comments on them are very welcome. <br/><br/> The illustration of how to use this package can be found in the attached file [egcst_illustration.ipybn](https://github.com/yuryatin/egcst/blob/main/egcst_illustration.ipynb) .<br/> Briefly this can be expressed like this:\n```python\nfrom egcst import CrossSection\ncs = CrossSection(input_file_name=\"input.txt\", min_step=1.0)\ncs.do_everything()\n```\n![output_triangles](https://github.com/yuryatin/egcst/assets/14263965/b549f8e7-071c-406c-b515-7ae984076e8f)\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "This package performs triangulation for engineering geological cross-sections",
"version": "0.0.12",
"project_urls": {
"Download": "https://github.com/yuryatin/egcst/archive/refs/tags/v0.0.12.tar.gz",
"Homepage": "https://github.com/yuryatin/egcst"
},
"split_keywords": [
"engineering",
"geological",
"cross",
"sections",
"mapping",
"triangulation",
"delaunay",
"step",
"stp",
"iso 10303-21"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "992edf00fb4466dd27ec689eeaefa77eb6056e4ef686128ef05994e21d14bb37",
"md5": "56c37982428585db038793868d2de77f",
"sha256": "bf4ac18a48bc3de3cfebf2f36147cf7ffd892db7421a70ad5d32c9e622b4816b"
},
"downloads": -1,
"filename": "egcst-0.0.12-py3-none-any.whl",
"has_sig": false,
"md5_digest": "56c37982428585db038793868d2de77f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 5930,
"upload_time": "2023-06-15T21:31:23",
"upload_time_iso_8601": "2023-06-15T21:31:23.170354Z",
"url": "https://files.pythonhosted.org/packages/99/2e/df00fb4466dd27ec689eeaefa77eb6056e4ef686128ef05994e21d14bb37/egcst-0.0.12-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b401210fe829d175862c40c1a625d672b92fcf1ac5bdf2e62920899b388958a5",
"md5": "054bf4e0e123308b8cac4601a5d2f9b0",
"sha256": "5b05a1c24ee8cfe76be128d69d35a8623423eecbef3b8171daf5c9613dcdb80a"
},
"downloads": -1,
"filename": "egcst-0.0.12.tar.gz",
"has_sig": false,
"md5_digest": "054bf4e0e123308b8cac4601a5d2f9b0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5784,
"upload_time": "2023-06-15T21:31:33",
"upload_time_iso_8601": "2023-06-15T21:31:33.911308Z",
"url": "https://files.pythonhosted.org/packages/b4/01/210fe829d175862c40c1a625d672b92fcf1ac5bdf2e62920899b388958a5/egcst-0.0.12.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-06-15 21:31:33",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "yuryatin",
"github_project": "egcst",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "egcst"
}