Name | opstool JSON |
Version |
1.0.18
JSON |
| download |
home_page | https://github.com/yexiang1992/opstool |
Summary | opstool: A Python package for structural analysis and visualization using OpenSeesPy |
upload_time | 2025-08-05 04:15:53 |
maintainer | None |
docs_url | None |
author | Yexiang Yan |
requires_python | <3.13,>=3.10 |
license | None |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# opstool
*Pre-Processing, Post-Processing, and Visualization Tailored for OpenSeesPy and OpenSees*
[](https://pypi.org/project/opstool/)
[](https://pepy.tech/project/opstool)
[](https://opstool.readthedocs.io/en/latest/?badge=latest)
[](https://github.com/yexiang1992/opstool)
[](https://img.shields.io/github/license/yexiang1992/opstool?style=flat)
[](https://www.codefactor.io/repository/github/yexiang92/opstool)
``opstool`` is a powerful and user-friendly package designed to simplify and enhance structural analysis workflows
with [OpenSees](https://opensees.berkeley.edu/) and [OpenSeesPy](https://openseespydoc.readthedocs.io/en/latest/).
It provides advanced tools for preprocessing, postprocessing, and visualization, making structural
simulations more efficient and accessible.
## Installation
The package is still under development.
To use, install `opstool` from [opstool-PyPI](https://pypi.org/project/opstool/):
```bash
pip install --upgrade opstool
```
The restriction on the python version mainly depends on `openseespy`,
it is recommended that you use [Miniconda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html) or [Anaconda Distribution](https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html) to avoid library version incompatibilities.
After installing, open Anaconda Prompt to execute the following code:
```bash
conda create -n opensees python=3.12 numpy scipy pandas xarray notebook matplotlib
conda activate opensees
pip install openseespy
pip install opstool
```

* The first line of code will create an environment called ``opensees`` and install Python 3.12 and libraries such as numpy, scipy, pandas, xarray, notebook, matplotlib, etc.
* Please use ``conda activate opensees`` to activate the environment, and then you can install various third-party packages in the environment, such as ``pip install openseespy`` and ``pip install opstool``.
* You can also install the packages from [anaconda / packages](https://anaconda.org/anaconda/repo), such as ``conda install conda-forge::scikit-learn``.
## Document
**Latest**: See [https://opstool.readthedocs.io/en/latest/](https://opstool.readthedocs.io/en/latest/).
**Stable**: See [https://opstool.readthedocs.io/en/stable/](https://opstool.readthedocs.io/en/stable/)
> [!TIP]
> Since an opstool version **v1.0.1**, the API and features have undergone significant changes and upgrades. As a result, it feels more like a new library, and you should take some time to familiarize yourself with the new interface usage.
## Citing
If you use `opstool` in your work, please cite the following publication:
Yexiang Yan and Yazhou Xie. *"opstool: A Python library for OpenSeesPy analysis automation, streamlined pre-and post-processing, and enhanced data visualization."* SoftwareX 30 (2025): 102126.
DOI: [https://doi.org/10.1016/j.softx.2025.102126](https://www.sciencedirect.com/science/article/pii/S2352711025000937)
## Key Features
1. **Preprocessing Tools**:
- *Fiber Section Meshing*: Generate detailed fiber meshes for various geometries.
- <a href="https://opstool.readthedocs.io/en/latest/src/pre/sec_mesh.html" target="_blank"><img src="https://s2.loli.net/2025/07/12/thTxbWLXoeFrq2d.png" height="200"></a>
<a href="https://opstool.readthedocs.io/en/latest/examples/section.mesh/composite_mesh.html" target="_blank"><img src="https://s2.loli.net/2025/02/09/nIxAhN8rLBEQi2t.png" height="200"></a>
- *GMSH Integration*: Import and convert [Gmsh](https://gmsh.info/) models, including geometry, mesh, and physical groups.
- <a href="https://opstool.readthedocs.io/en/latest/src/pre/read_gmsh.html" target="_blank"><img src="https://s2.loli.net/2025/02/09/MjoviYLrtqNHKCO.png" height="200"></a>
<a href="https://opstool.readthedocs.io/en/latest/examples/pre/read_gmsh2.html" target="_blank"><img src="https://s2.loli.net/2025/02/09/XBVvRcGnePsJK8A.png" height="200"></a>
- *Unit System Management*: Ensure consistency with automatic unit conversions.
- *Mass Generation*: Automate lumped mass calculations.
2. **Postprocessing Capabilities**:
- Easy retrieval and interpretation of analysis results using [xarray](https://docs.xarray.dev/en/stable/index.html#).
- <a href="https://opstool.readthedocs.io/en/latest/src/post/index.html" target="_blank"><img src="https://s2.loli.net/2025/02/09/Q3OV9FLR5oGPMdn.png" height="160"></a>
<a href="https://opstool.readthedocs.io/en/latest/examples/post/excavation/test_excavation.html" target="_blank"><img src="https://s2.loli.net/2025/02/09/HzkTF7xdav6eLOt.gif" height="200"></a>
3. **Visualization**:
- Powered by [Pyvista](https://docs.pyvista.org/) (VTK-based) and [Plotly](https://plotly.com/python/) (web-based).
- Nearly identical APIs for flexible visualization of model geometry, modal analysis, and simulation results.
- Supports most common OpenSees elements.
- <a href="https://opstool.readthedocs.io/en/latest/src/vis/plot_model_plotly.html" target="_blank"><img src="https://s2.loli.net/2025/02/09/HrzPk1cqSJyxTlY.png" height="160"></a>
<a href="https://opstool.readthedocs.io/en/latest/src/vis/plot_eigen_plotly.html" target="_blank"><img src="https://s2.loli.net/2025/02/09/gxy8LZPkAwa3QEI.png" height="160"></a>
<a href="https://opstool.readthedocs.io/en/latest/src/vis/plot_nodal_resp_plotly.html" target="_blank"><img src="https://s2.loli.net/2025/02/09/LCqVG9Df7RmHou6.png" height="160"></a>
<a href="https://opstool.readthedocs.io/en/latest/src/vis/plot_brick_resp_plotly.html" target="_blank"><img src="https://s2.loli.net/2025/07/12/raBmf6uP2RdKE73.png" ></a>
<a href="https://opstool.readthedocs.io/en/latest/src/vis/plot_shell_resp_plotly.html" target="_blank"><img src="https://s2.loli.net/2025/02/09/lcw5rXuaAKHCB3g.png" height="200"></a>
<a href="https://opstool.readthedocs.io/en/latest/src/vis/plot_truss_resp_pyvista.html" target="_blank"><img src="https://s2.loli.net/2025/02/09/Rp2icyNbFgZOa6Y.png" height="200"></a>
4. **Intelligent Analysis**:
- Features like automatic step size adjustment and algorithm switching to optimize simulation workflows.
See [Smart Analysis](https://opstool.readthedocs.io/en/latest/src/analysis/smart_analysis.html).
- Moment-Curvature Analysis: Generate moment-curvature curves for various sections.
- <a href="https://opstool.readthedocs.io/en/latest/src/analysis/mc_analysis.html" target="_blank"><img src="https://s2.loli.net/2025/02/09/mlNHEbfuoIzehri.png" height="200"></a>
<a href="https://opstool.readthedocs.io/en/latest/src/analysis/mc_analysis.html" target="_blank"><img src="https://s2.loli.net/2025/02/09/9MFf4JQrZVpv6bi.png" height="200"></a>
## Why Choose opstool?
- **Efficiency**: Streamlines complex workflows, reducing time spent on repetitive tasks.
- **Flexibility**: Provides nearly identical interfaces for different visualization engines.
- **Accessibility**: Makes advanced structural analysis tools like OpenSeesPy more approachable to users of all levels.
``opstool`` is actively evolving, with continuous additions of new features planned for the future.
With ``opstool``, you can focus on what matters most:
understanding and solving your structural engineering challenges.
Whether you are building models, visualizing results, or interpreting data,
``opstool`` is your go-to solution for OpenSeesPy workflows.
> [!NOTE]
> This project is a non-profit open-source initiative. Use at your own risk.
## License
This software is published under the [GPLv3 license](https://www.gnu.org/licenses/gpl-3.0.en.html).
Raw data
{
"_id": null,
"home_page": "https://github.com/yexiang1992/opstool",
"name": "opstool",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.13,>=3.10",
"maintainer_email": null,
"keywords": null,
"author": "Yexiang Yan",
"author_email": "yexiang_yan@outlook.com",
"download_url": "https://files.pythonhosted.org/packages/c4/df/645d462a5367810a213881300f3eb538749cff0e7d4ae56278bf6df4df8a/opstool-1.0.18.tar.gz",
"platform": null,
"description": "# opstool\n*Pre-Processing, Post-Processing, and Visualization Tailored for OpenSeesPy and OpenSees*\n\n[](https://pypi.org/project/opstool/)\n[](https://pepy.tech/project/opstool)\n[](https://opstool.readthedocs.io/en/latest/?badge=latest)\n[](https://github.com/yexiang1992/opstool)\n[](https://img.shields.io/github/license/yexiang1992/opstool?style=flat)\n[](https://www.codefactor.io/repository/github/yexiang92/opstool)\n\n``opstool`` is a powerful and user-friendly package designed to simplify and enhance structural analysis workflows \nwith [OpenSees](https://opensees.berkeley.edu/) and [OpenSeesPy](https://openseespydoc.readthedocs.io/en/latest/). \nIt provides advanced tools for preprocessing, postprocessing, and visualization, making structural \nsimulations more efficient and accessible.\n\n\n## Installation\nThe package is still under development.\nTo use, install `opstool` from [opstool-PyPI](https://pypi.org/project/opstool/):\n\n```bash\npip install --upgrade opstool\n```\n\nThe restriction on the python version mainly depends on `openseespy`,\nit is recommended that you use [Miniconda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html) or [Anaconda Distribution](https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html) to avoid library version incompatibilities.\n\nAfter installing, open Anaconda Prompt to execute the following code:\n```bash\nconda create -n opensees python=3.12 numpy scipy pandas xarray notebook matplotlib\nconda activate opensees\npip install openseespy\npip install opstool\n```\n\n\n\n* The first line of code will create an environment called ``opensees`` and install Python 3.12 and libraries such as numpy, scipy, pandas, xarray, notebook, matplotlib, etc. \n* Please use ``conda activate opensees`` to activate the environment, and then you can install various third-party packages in the environment, such as ``pip install openseespy`` and ``pip install opstool``.\n* You can also install the packages from [anaconda / packages](https://anaconda.org/anaconda/repo), such as ``conda install conda-forge::scikit-learn``.\n\n\n\n## Document\n\n**Latest**: See [https://opstool.readthedocs.io/en/latest/](https://opstool.readthedocs.io/en/latest/).\n\n**Stable**: See [https://opstool.readthedocs.io/en/stable/](https://opstool.readthedocs.io/en/stable/)\n\n> [!TIP]\n> Since an opstool version **v1.0.1**, the API and features have undergone significant changes and upgrades. As a result, it feels more like a new library, and you should take some time to familiarize yourself with the new interface usage.\n\n\n\n## Citing\n\nIf you use `opstool` in your work, please cite the following publication:\n\nYexiang Yan and Yazhou Xie. *\"opstool: A Python library for OpenSeesPy analysis automation, streamlined pre-and post-processing, and enhanced data visualization.\"* SoftwareX 30 (2025): 102126.\nDOI: [https://doi.org/10.1016/j.softx.2025.102126](https://www.sciencedirect.com/science/article/pii/S2352711025000937)\n\n## Key Features\n\n1. **Preprocessing Tools**:\n - *Fiber Section Meshing*: Generate detailed fiber meshes for various geometries.\n - <a href=\"https://opstool.readthedocs.io/en/latest/src/pre/sec_mesh.html\" target=\"_blank\"><img src=\"https://s2.loli.net/2025/07/12/thTxbWLXoeFrq2d.png\" height=\"200\"></a> \n <a href=\"https://opstool.readthedocs.io/en/latest/examples/section.mesh/composite_mesh.html\" target=\"_blank\"><img src=\"https://s2.loli.net/2025/02/09/nIxAhN8rLBEQi2t.png\" height=\"200\"></a>\n - *GMSH Integration*: Import and convert [Gmsh](https://gmsh.info/) models, including geometry, mesh, and physical groups.\n - <a href=\"https://opstool.readthedocs.io/en/latest/src/pre/read_gmsh.html\" target=\"_blank\"><img src=\"https://s2.loli.net/2025/02/09/MjoviYLrtqNHKCO.png\" height=\"200\"></a>\n <a href=\"https://opstool.readthedocs.io/en/latest/examples/pre/read_gmsh2.html\" target=\"_blank\"><img src=\"https://s2.loli.net/2025/02/09/XBVvRcGnePsJK8A.png\" height=\"200\"></a>\n - *Unit System Management*: Ensure consistency with automatic unit conversions.\n - *Mass Generation*: Automate lumped mass calculations.\n2. **Postprocessing Capabilities**:\n - Easy retrieval and interpretation of analysis results using [xarray](https://docs.xarray.dev/en/stable/index.html#).\n - <a href=\"https://opstool.readthedocs.io/en/latest/src/post/index.html\" target=\"_blank\"><img src=\"https://s2.loli.net/2025/02/09/Q3OV9FLR5oGPMdn.png\" height=\"160\"></a>\n <a href=\"https://opstool.readthedocs.io/en/latest/examples/post/excavation/test_excavation.html\" target=\"_blank\"><img src=\"https://s2.loli.net/2025/02/09/HzkTF7xdav6eLOt.gif\" height=\"200\"></a>\n3. **Visualization**:\n - Powered by [Pyvista](https://docs.pyvista.org/) (VTK-based) and [Plotly](https://plotly.com/python/) (web-based).\n - Nearly identical APIs for flexible visualization of model geometry, modal analysis, and simulation results.\n - Supports most common OpenSees elements.\n - <a href=\"https://opstool.readthedocs.io/en/latest/src/vis/plot_model_plotly.html\" target=\"_blank\"><img src=\"https://s2.loli.net/2025/02/09/HrzPk1cqSJyxTlY.png\" height=\"160\"></a>\n <a href=\"https://opstool.readthedocs.io/en/latest/src/vis/plot_eigen_plotly.html\" target=\"_blank\"><img src=\"https://s2.loli.net/2025/02/09/gxy8LZPkAwa3QEI.png\" height=\"160\"></a>\n <a href=\"https://opstool.readthedocs.io/en/latest/src/vis/plot_nodal_resp_plotly.html\" target=\"_blank\"><img src=\"https://s2.loli.net/2025/02/09/LCqVG9Df7RmHou6.png\" height=\"160\"></a>\n <a href=\"https://opstool.readthedocs.io/en/latest/src/vis/plot_brick_resp_plotly.html\" target=\"_blank\"><img src=\"https://s2.loli.net/2025/07/12/raBmf6uP2RdKE73.png\" ></a>\n <a href=\"https://opstool.readthedocs.io/en/latest/src/vis/plot_shell_resp_plotly.html\" target=\"_blank\"><img src=\"https://s2.loli.net/2025/02/09/lcw5rXuaAKHCB3g.png\" height=\"200\"></a>\n <a href=\"https://opstool.readthedocs.io/en/latest/src/vis/plot_truss_resp_pyvista.html\" target=\"_blank\"><img src=\"https://s2.loli.net/2025/02/09/Rp2icyNbFgZOa6Y.png\" height=\"200\"></a>\n4. **Intelligent Analysis**:\n - Features like automatic step size adjustment and algorithm switching to optimize simulation workflows.\n See [Smart Analysis](https://opstool.readthedocs.io/en/latest/src/analysis/smart_analysis.html).\n - Moment-Curvature Analysis: Generate moment-curvature curves for various sections.\n - <a href=\"https://opstool.readthedocs.io/en/latest/src/analysis/mc_analysis.html\" target=\"_blank\"><img src=\"https://s2.loli.net/2025/02/09/mlNHEbfuoIzehri.png\" height=\"200\"></a>\n <a href=\"https://opstool.readthedocs.io/en/latest/src/analysis/mc_analysis.html\" target=\"_blank\"><img src=\"https://s2.loli.net/2025/02/09/9MFf4JQrZVpv6bi.png\" height=\"200\"></a>\n\n## Why Choose opstool?\n\n- **Efficiency**: Streamlines complex workflows, reducing time spent on repetitive tasks.\n- **Flexibility**: Provides nearly identical interfaces for different visualization engines.\n- **Accessibility**: Makes advanced structural analysis tools like OpenSeesPy more approachable to users of all levels.\n\n``opstool`` is actively evolving, with continuous additions of new features planned for the future.\nWith ``opstool``, you can focus on what matters most: \nunderstanding and solving your structural engineering challenges. \nWhether you are building models, visualizing results, or interpreting data, \n``opstool`` is your go-to solution for OpenSeesPy workflows.\n\n> [!NOTE] \n> This project is a non-profit open-source initiative. Use at your own risk.\n\n## License\n\nThis software is published under the [GPLv3 license](https://www.gnu.org/licenses/gpl-3.0.en.html).\n",
"bugtrack_url": null,
"license": null,
"summary": "opstool: A Python package for structural analysis and visualization using OpenSeesPy",
"version": "1.0.18",
"project_urls": {
"Documentation": "https://opstool.readthedocs.io/en/latest/index.html",
"Homepage": "https://github.com/yexiang1992/opstool",
"Repository": "https://github.com/yexiang1992/opstool"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b285ba1553b77d4afceaaac241a9dbd42e0e6b12afcecc90183698489aab1f45",
"md5": "e8387d71c4333a42073f3ce659e4e8da",
"sha256": "7eab75baf74d7330ee1a6f43f21885ec09f4ad0084032ff0cb70bdd962cdc0ef"
},
"downloads": -1,
"filename": "opstool-1.0.18-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e8387d71c4333a42073f3ce659e4e8da",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.13,>=3.10",
"size": 584791,
"upload_time": "2025-08-05T04:15:51",
"upload_time_iso_8601": "2025-08-05T04:15:51.337376Z",
"url": "https://files.pythonhosted.org/packages/b2/85/ba1553b77d4afceaaac241a9dbd42e0e6b12afcecc90183698489aab1f45/opstool-1.0.18-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c4df645d462a5367810a213881300f3eb538749cff0e7d4ae56278bf6df4df8a",
"md5": "cc1ea6a637ed49c3de81cf658567ab63",
"sha256": "8509364011a1df79c33265e59216ae0a449d2b8ce182b6ecee58505e7bcf4bea"
},
"downloads": -1,
"filename": "opstool-1.0.18.tar.gz",
"has_sig": false,
"md5_digest": "cc1ea6a637ed49c3de81cf658567ab63",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13,>=3.10",
"size": 521825,
"upload_time": "2025-08-05T04:15:53",
"upload_time_iso_8601": "2025-08-05T04:15:53.548042Z",
"url": "https://files.pythonhosted.org/packages/c4/df/645d462a5367810a213881300f3eb538749cff0e7d4ae56278bf6df4df8a/opstool-1.0.18.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-05 04:15:53",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "yexiang1992",
"github_project": "opstool",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"tox": true,
"lcname": "opstool"
}