用途
mplstereonet 用于构造地质学中的赤平投影(stereonet)绘图,可创建下半球赤平投影图,对方向性(orientation)数据进行可视化与分析。适用于需要在 Python 中程序化生成赤平投影、与 matplotlib 集成的场景。
主要能力
- 创建赤平投影图:使用
mplstereonet.subplots()创建图形与坐标轴。 - 绘制面与极点:
ax.plane(strike, dip)绘制大圆;ax.pole(strike, dip)绘制极点(按右手定则)。 - 绘制线理:
ax.line(trend, plunge)绘制线理点。 - 密度等值线:
ax.density_contourf()绘制填充密度等值线。 - 拟合与统计:
mplstereonet.fit_girdle()拟合最佳大圆(girdle);mplstereonet.find_mean_vector()计算平均方向。 - 辅助转换:
mplstereonet.rake()将滑动角(rake)转换为趋势/倾伏;mplstereonet.pole2strike()由极点反推走向/倾角。
使用方式
基本用法为在 Python 中导入 mplstereonet 与 matplotlib,创建子图后调用绘图与分析方法:
import mplstereonet
import matplotlib.pyplot as plt
fig, ax = mplstereonet.subplots()
ax.plane(315, 45, 'b-')
ax.pole(315, 45, 'ko')
ax.line(120, 30, 'r^')
ax.grid()
plt.savefig('stereonet.png', dpi=150)
多组测量可用数组批量绘制并叠加密度等值线;褶皱轴可通过极点拟合 girdle,再取 girdle 的极点得到。断层面可结合 rake 转换绘制滑动矢量。多个节理组可用不同标记叠加并加图例。
测量约定包括:走向/倾角(右手定则,倾角朝向走向右侧)、倾向/倾角(倾向方位角)、趋势/倾伏(线性方向)。可在走向/倾角与倾向之间做换算。密度等值线方法包括 kamb(默认,统计显著性)、schmidt(点计数)、exponential_kamb(平滑 Kamb)。
适用场景
- 需要在 Python 中快速生成与 matplotlib 集成的赤平投影。
- 对方向数据集进行批量处理。
- 生成可复现的、用于出版的结构图件。
- 分析层面产状并确定褶皱轴、识别节理组、表示断层面滑动矢量等。
限制与替代
mplstereonet 不提供交互式旋转,3D 能力有限。若需要交互式三维可视化方向数据,可考虑 apsg;若需要 GUI 进行教学或快速查看,可考虑 JTOPO(基于 Java,不可脚本化);若需要超出 mplstereonet 提供范围的高级张量统计,也需考虑替代方案。