OpenGeo3D是一个基于网格的三维地质建模工具。它将地质空间划分为网格单元,通过识别、预测网格单元的地质属性完成地质建模。该模型对应于传统的地质属性模型。在此基础上可提取地质界面,识别构造单元和地质概念,形成地质构造模型(或结构模型),并为数值分析提供基础。
目前仅支持长方体(包括立方体)网格。
# | 数据类型 | 来源 | 规划周期 |
---|---|---|---|
1 | 散点数据 | 来自钻孔或其它调查、测试工作。 | 近期 |
2 | 三维地质结构模型 | 通过其它工具构建的已有三维地质结构模型(Geo3DML格式)。 | 近期 |
3 | 三维地质属性模型 | 通过其它工具构建的已有三维地质属性模型(如SGeMS生成的网格模型等)。 | 近期 |
4 | 剖面图 | 已有地质剖面图。 | 中期 |
5 | 平面地质图 | 已有的平面地质图。 | 中期 |
6 | 地球物理 | 来自地球物理勘探工作手段。 | 远期 |
# | 方法 | 说明 | 规划周期 |
---|---|---|---|
1 | 地质统计学 | 支持经典地质统计学方法:Kriging,序贯模拟(基于开源项目GsTL)。 | 近期 |
2 | 多点地质统计学 | 多点地质统计学方法。 | 中期 |
3 | 机器学习 | 采用机器学习方法预测网格单元的地质属性。 | 远期 |
# | 功能 | 说明 | 规划周期 |
---|---|---|---|
1 | 模型验证 | 通过已知资料(如钻孔、剖面图等)验证被预测的网格的属性。 | 近期 |
2 | 提取地质界面 | 通过计算等值面来提取地质界面。 | 近期 |
3 | 模型不确定性分析 | 综合分析模型的质量,为改进模型和优化勘探工作部署提供参考建议。 | 中期 |
4 | 分析地质构造模式 | 以网格模型为基础分析地质构造模式。 | 远期 |
利用开源项目VTK实现三维地质模型(结构模型和属性模型)的可视化。
OpenGeo3D支持跨Windows、Linux和MacOS操作系统编译和运行,但目前仅在Windows平台上执行了测试。
本项目使用的第三方库有:
-
用户界面。使用版本:v6.2 (LTS)。
-
数据可视化。建议版本:v9.2或更新版本。
-
读写Geo3DML数据。建议版本:master分支最新版本。
-
GIS数据文件读写。使用版本:3.6.3。
编译OpenGeo3D之前,请先准备好Qt和VTK开发包(包括头文件和库文件)。可参照各项目的文档自行编译,或直接安装预编译的开发包。
以Windows操作系统为例。
(1) Git
下载和安装最新版: https://git-scm.com/download/win。安装时选择将安装路径添加到系统环境变量中。
(2) CMake
下载和安装最新版本:https://cmake.org/download/。安装时选择将安装路径添加到系统环境变量中。
对于Linux,可选择Linux x86_64安装程序(cmake-x.x.x-linux-x86_64.sh)。安装时注意使用参数*--prefix=</path/to/install/cmake>指定安装的路径,如/usr/local/etc/CMake*。
(3) vcpkg
该工具用于配置第三方开发库。
-
先安装Microsoft Visual Studio。要求Visual Studio 2015 Update 3或更新版本(建议Visual Studio Community 2022),并且使用英语语言包。 安装Qt扩展工具:
Qt VS Tools
。从Visual Studio的Extensions
-Manager Extension
菜单安装,或者从Qt官方安装。Qt官网下载地址:https://download.qt.io/official_releases/vsaddin/。 -
参照官方说明安装
vcpkg
。> git clone https://github.com/microsoft/vcpkg > .\vcpkg\bootstrap-vcpkg.bat
-
对于64位开发环境,可在操作系统中添加名为
VCPKG_DEFAULT_TRIPLET
的环境变量,其值为x64-windows
。使得vcpkg
缺省配置64位的开发库。 -
vcpkg
会使用已安装的最新版的Visual Studio来配置开发库。
(4) Qt SDK
-
下载在线安装程序:qt-unified-windows-online-installer。对Linux,下载:qt-unified-linux-x64-online.run。
-
指定Qt仓库镜像安装SDK
# 命令行执行命令,选择清华大学镜像服务器。 > qt-unified-windows-x64-online.exe --mirror https://mirrors.tuna.tsinghua.edu.cn/qt
自定义安装,选择LTS版本过滤条件,安装6.2版本及Creator、Designer等开发工具,并且去掉MINGWIN开发包及源码等占用很大磁盘空间的选。
(5) GDAL
通过vcpkg
安装GDAL
开发库。
> cd vcpkg/
> ./vcpkg.exe install --clean-buildtrees-after-build gdal
安装时,对于下载失败的依赖项,可根据展示的URL自行下载后保存至 vkpgk/downloads/
目录下。注意保存的文件名需与vcpkg
日志中展示的文件名一致。来自github.com的依赖项下载失败时,可以尝试通过网站https://ghproxy.com手动下载。
在Linux下,通过系统的包管理器安装GDAL库。如:
> # Ubuntu 23.04 的源已包含libgdal 3.6。
> sudo apt-get install libgdal-dev
(6) Geo3DML-CPP
该库是通过子模块嵌入本项目中的,无需额外配置。
(7) VTK
通过vcpkg
能安装VTK
开发库,但不能使用用于指定版本的Qt
库。故而仍旧使用下载源码自己编译的方式配置VTK
。
-
下载源码编译安装(Windows操作系统)
(1) 源码下载地址:https://vtk.org/download/。当前最新版本为v9.2.6:VTK-9.2.6.tar.gz。
(2) 使用CMake配置编译参数。注意选择
VTK_GROUP_ENABLE_Qt
,之后再配置VTK_QT_VERSION
为6。按提示配置Qt
参数后生成VS Solution,并编译生成开发库。(3) 完成编译后,以管理员权限运行Visual Studio,然后对
INSTALL
项目运行Build
,将编译好的库安装至系统目录(缺省为:C/Program Files/VTK)。 -
备注:通过
vcpkg
安装> # vcpkg 安装 VTK 的指令。注意:需额外安装 vtk[qt] > cd vcpkg/ > ./vcpkg.exe install --clean-buildtrees-after-build vtk > ./vcpkg.exe install --clean-buildtrees-after-build --recurse vtk[qt]
-
Linux系统下载源码编译安装
(1) 先准备好编译工具。参考Qt for Linux/X11:
> # Debian/Ubuntu (apt-get)。DeepIn也是属于该类。 > sudo apt-get install build-essential libgl1-mesa-dev
此外,可能会提示找不到X11::Xcursor和XKB库。则安装X11:Xcursor和libxkb:
> sudo apt-get install libxcursor-dev > sudo apt-get install libxkbcommon-dev
(2) 如前,下载VTK源代码。
(3) 使用CMake配置编译参数。生成的目标是Unix Makefiles。
(4) 在配置的编译目录下使用Make编译,并安装:
> cd Build/ > # 编译 > make > # 安装 > sudo make install
# 下载代码
# 从github
git clone https://github.com/WuZixing/OpenGeo3D.git
# 从gitee
git clone https://gitee.com/zhizhi-link/OpenGeo3D.git
# 更新子模块
cd OpenGeo3D
git submodule update --init --recursive
之后请使用CMake配置编译参数(要选择vcpkg
为交叉编译工具),执行编译。
(1) 部署Qt
依赖项
> # 对Windows操作系统
> ./Qt/bin/windeployqt.exe --[debug|release] --translations en,zh_CN </path/to/the/directory/of/OpenGeo3D.exe>
在Linux系统中,需要把Qt动态库文件(*.so)所在路径配置到环境变量LD_LIBRARY_PATH
中,或者系统可自动加载动态库的其它目录下:
> # 编辑文件 .profile
> export LD_LIBRARY_PATH=/path/to/qt/lib/direcotry:$LD_LIBRARY_PATH
若运行OpenGeo3D
提示不成初始化Qt的基础平台,如(platforms/libqxcb
),则可通过ldd
工具检查相应动态库文件(platforms/libqxcb.so
)的依赖项是否齐备,补充安装缺少的依赖项。
> # 针对缺少依赖项 libxcb-cursor.so
> sudo apt install libxcb-cursor-dev
(2) 运行OpenGeo3D
可执行程序,按提示缺少的VTK
动态库拷贝对应的DLL文件到程序目录。