data_structures 模块包含了 Solution 类中使用的数据结构,这些数据结构包括了地质模型的网格结构、属性、表面等信息。
Grid 类是一个将地质模型切分成若干个体素进行建模的网格结构,每个体素可以有不同的岩性、属性、表面特征等。
res : float类型,网格分辨率extent : list类型,模型边界的坐标范围,共六个值(最小X坐标,最大X坐标,最小Y坐标,最大Y坐标,最小Z坐标,最大Z坐标)origin : list类型,网格的原点坐标shape : tuple类型,网格的尺寸,共三个值(体素在X轴上的数量,体素在Y轴上的数量,体素在Z轴上的数量)tensor : numpy数组类型,存储网格的坐标信息,形状为 (3, Nx, Ny, Nz),其中 Nx, Ny, Nz 为网格在X轴、Y轴、Z轴上的体素数量,分别对应于 X、Y、Z 三个坐标轴上的坐标值。Surface 类存储表面信息,包括表面种类、表面在网格中的位置和方向等。
name : str 类型,表面名称type : str 类型,表面类型vertices : numpy数组类型,存储表面上所有节点的坐标信息,形状为 (N, 3),其中 N 为节点数量,3 表示每个节点在三维坐标系中的 X、Y、Z 坐标值。edges : numpy数组类型,存储表面上所有边的信息,边是由两个相邻节点构成的,形状为 (E, 2),其中 E 为边的数量,2 表示每条边两端的节点编号。triangles : numpy数组类型,存储表面上所有三角形面片的信息,形状为 (T, 3),其中 T 为面片的数量,3 表示每个面片由三个节点构成的编号。values : numpy数组类型,存储每个表面节点对应的属性值,形状为 (N,),其中 N 为节点数量。Foliation 类存储薄片状特征的信息,包括薄片状特征的种类、位置、方向和形状等,会作为地质体的参考面。
type : str 类型,薄片状特征种类position : numpy数组类型,薄片特征的位置,形状为 (N, 3),其中 N 是薄片特征数量,3 表示薄片的 X、Y、Z 坐标值。orientation : numpy数组类型,薄片特征的方向向量,形状为 (N, 3),其中 N 是薄片特征数量,3 表示薄片的法向量在 X、Y、Z 坐标轴上的分量。stretch : numpy数组类型,薄片特征的形状,在根据薄片特征插值属性时计算使用,形状为 (N, 3),其中 N 是薄片特征数量,3 表示薄片的伸缩因子在 X、Y、Z 坐标轴上的分量。dip : numpy数组类型,薄片特征的倾角,在根据薄片特征插值属性时计算使用,形状为 (N,)azimuth : numpy数组类型,薄片特征的方位角,在根据薄片特征插值属性时计算使用,形状为 (N,)Stack 类存储在三维网格上的堆积地层信息,通过为不同地层添加标签将每个体素赋予相应的地层信息。
ids : numpy数组类型,存储每个体素属于的地层编号,形状为 (Nx, Ny, Nz),共有 Nx * Ny * Nz 个元素,每个元素表示一个体素属于的地层编号。series : dict 类型,存储所有地层的名称、颜色等信息,共有若干个键值对,每个键值对包含以下信息:
name : str 类型,地层名称;color : tuple 类型,地层颜色,形状为 (r, g, b);id : int 类型,地层编号。