用途
GemGIS 用于地质建模的空间数据处理,核心场景是为 GemPy 模型准备空间数据,以及从空间数据中提取地质观测信息。资料中给出的典型流程是:从矢量接触点(contacts)与 DEM 高程中提取接触点顶点,并处理产状(orientations)等方向数据,最终输出可供建模库使用的坐标与属性。
主要能力
从 DEM 提取接触点高程
资料提供了一个函数示例,用于在单波段、投影米制 CRS、高程单位为米的 DEM 上采样接触点。该函数要求:
- 矢量数据具有已知 CRS,DEM 为单波段且轴单位换算因子为 1(米制);
- 接触点几何有效、非空、为二维(不含 Z);
- 必须包含
formation字段且无缺失值; - 顶点必须落在 DEM 范围内;
- DEM 采样不得出现缺失值或非有限值。
采样使用包含像元的像素采样,而非双线性插值;不得用 0 填充 NoData 或范围外样本。GemGIS 在一条线变为多个点时可能重复属性,因此不应使用原始要素索引覆盖这些属性。
产状与方向处理
倾角(dip)以度为单位,范围 0–90。输出方位角为从 DEM 网格北顺时针的倾向,并包裹到 [0, 360)。仅当来源明确遵循右手定则时,才用 (strike + 90) % 360 转换走向。应保留提供的极性(+1/−1);仅当该列缺失时辅助工具才使用 +1。不得对无效倾角进行截断。方位角参考需声明为 --azimuth-reference dem-grid(相对于 DEM 网格的方位)或 true-north(地理方位)。后者仅在局部保形投影上应用局部子午线收敛;其他投影会被拒绝。磁方位需要先有记录的磁偏角校正。
数据准备辅助脚本
资料提到准备辅助脚本 scripts/prepare_gempy_data.py,它会校验上述规则、将矢量重投影到 DEM CRS、把声明的英尺高程转换为米,并将 CSV 与 spatial_metadata.json 写入新的输出目录。其 --target-crs 是一个必须与 DEM 匹配的断言;需要时应对栅格单独进行重采样/重投影。
示例命令:
python scripts/prepare_gempy_data.py --contacts contacts.gpkg \
--orientations orientations.gpkg --azimuth-reference true-north --dem dem.tif --dem-z-unit m \
--vertical-datum "documented source datum" --output-dir prepared
该命令应相对于已安装的技能目录解析。输出模式使用 X/Y/Z 与 formation,产状则包含 dip/azimuth/polarity;应将这些传给当前建模库的输入 API,而不是假定所有 GemPy 版本接受相同的关键字参数。
使用方式
资料给出的使用要点包括:
- 在采样前先确定水平 CRS、垂直单位/基准、几何类型与缺失数据策略;
- 模型坐标必须共享投影米制 CRS;转换水平坐标不会转换高程或其基准;
- 使用
with rasterio.open(dem_path) as dem:打开 DEM,并在数据集打开期间调用提取函数; - 条件操作方面,资料提示应阅读“profiles and extraction”了解采样剖面与产状约定,阅读“CRS, clipping and raster handling”了解边界顺序、掩膜、重投影与来源信息;
- 已有三维几何在使用该辅助工具前,需要在实测 Z 与 DEM Z 之间做出明确选择。
适用场景
适用于需要为 GemPy 地质模型准备空间数据的场景,包括从接触点与 DEM 提取地质观测点、处理产状方向数据、统一 CRS 与高程单位、生成建模输入 CSV 与空间元数据。
限制
- 提取函数要求单波段、投影米制 CRS、高程为米的 DEM;
- 要求接触点几何有效、非空、二维,且包含无缺失的 formation 标签;
- 顶点必须在 DEM 范围内,且 DEM 采样不得有缺失值;
- 像素采样使用包含像元,不是双线性插值;
- 不得用 0 填充 NoData 或范围外样本;
- 不得对无效倾角进行截断;
- 磁方位需要先有记录的磁偏角校正;
true-north方位参考仅在局部保形投影上应用局部子午线收敛,其他投影会被拒绝;- 资料中的验证范围覆盖 GemGIS 1.1.9、GeoPandas 1.1.4 与 Rasterio 1.4.4,使用真实 GeoTIFF/GeoPackage 夹具检查了不等顶点数与非连续索引、CRS 转换、英尺高程、NoData、范围外点、产状与 CLI CSV 回读;合成高程仅测试数据处理,不代表野外 DEM 精度或垂直基准转换;
- 资料未提供收费、价格、平台支持范围等信息。