Files
mkdocs/doc/meshkernelpy/index.md
T

4.4 KiB
Raw Blame History

MeshKernelPy 文档 - 中文翻译

质量门禁状态 PyPI 版本

MeshKernelPy 是用于创建和编辑网格的 Python 库,支持一维和二维非结构网格。其底层 C++ 库为 MeshKernel。

文档导航

本中文文档的示例译自 MeshKernelPy-main/docs,API 说明依据对应 meshkernel 源码完整整理,源码版本为 8.3.0。示例代码和命令按源文件保留;页面图片使用原始资源,绘图来自原笔记本已保存的输出。

个人翻译仅供参考。

安装

执行以下命令,从 PyPI 安装:

pip install meshkernel

在 Windows 上,如果通过 pip 安装 wheel 后导入库时出现问题,可能需要安装 Visual Studio 2019 的 Visual C++ 可再发行组件。

功能示例

在多边形内部创建三角网格

本示例按期望的边长离散多边形边界,从而创建网格。

在多边形内部生成的三角网格

网格正交化

采用交错布置的有限体积流动求解器要求网格尽可能正交。MeshKernel 提供网格调整算法,使网格正交性与平滑性达到良好的平衡。

网格正交化效果

网格加密

可以根据采样数据或选定的多边形区域,对网格进行局部加密。

网格局部加密效果

参与开发

要在本地安装 MeshKernelPy,请在虚拟环境中执行:

pip install -e ".[tests, lint, docs]"

然后将编译好的 MeshKernelApi.dll 放入 src 文件夹。

请将编辑器配置为使用 black 和 isort 格式化代码。修改 Jupyter 笔记本时,可以使用 jupyterlab-code-formatter。

构建并安装 wheel

按平台构建

项目提供了用于构建 wheel 的安装脚本,已知可在 Windows、Linux 和 macOS 上使用。

安装依赖:

python -m pip install --upgrade pip
python -m pip install wheel numpy matplotlib pytest

构建 wheel 前,必须设置环境变量 BACK_END_BRANCH,以指定生成 wheel 时要构建的 MeshKernel 分支。按照源文档约定,若 MeshKernelPy 位于 main 分支,应将其设为 master;若位于发布分支,应设为 release。MeshKernel 发布分支的版本号硬编码在 meshkernel/version.py 中。

在项目根目录执行以下命令,构建 wheel:

python setup.py build_ext
python setup.py sdist bdist_wheel

安装生成的 wheel:

python -m pip install <meshkernel_wheel_name>

其中,<meshkernel_wheel_name> 为生成的 wheel 文件名。运行 pytest 即可进行测试。

Manylinux Docker 镜像

为了向 PyPI 发布 Linux wheel,项目提供了基于 manylinux_2_28_x86_64 的 Docker 镜像。该镜像包含编译 C++ 原生 MeshKernel 库所需的 CMake 和 Boost。

使用以下命令构建 Docker 镜像:

chmod +x scripts/compile_deps.sh
chmod +x scripts/build_deps.sh
docker build --progress=plain ./scripts -t build_linux_library

镜像构建完成后,使用以下命令构建 Linux wheel:

docker run -e BACK_END_BRANCH=<meshkernel_back_end_branch_name> -v $(pwd):/root --rm build_linux_library

其中,<meshkernel_back_end_branch_name> 为 master 或 release,具体参见按平台构建。

可发布的 Linux wheel 位于 dist/wheelhouse 目录。

许可证

MeshKernelPy 使用 MIT 许可证,但 PyPI 上发布的 wheel 捆绑了采用 LGPL 许可证的 MeshKernel。使用前请确认这些许可证满足你的需求。

文档入口