create_struc_xarrays是Gempy中的Solution类的一个方法,该方法用于创建三维xarray数组,表示结构网格(Structural Grid)。
create_struc_xarrays()
create_struc_xarrays方法用于创建三维xarray数组,表示结构网格。该数组包含了地层模型中的所有结构(Stratigraphic Units)、面(Surfaces)、线(Interfaces)和网格(Grid)等信息。
该方法没有参数。
返回一个包含结构网格信息的三维xarray数组。该数组的形状为(n_cells, n_points, 3)
,其中:
n_cells
表示结构单元(Structural Units)的数量,也就是地层模型的层数;n_points
表示结构网格中点的数量;3
表示每个点的坐标数目,即x
、y
、z
三个方向的坐标。>>> import gempy as gp
>>> model = gp.create_model('MyModel')
>>> gp.init_data(model, extent=[0, 10, 0, 10, 0, 10], resolution=[2, 2, 2])
>>> gp.set_series(model, {"Series1": "basement", "Series2": "sediments"},
... order_series=["Series1", "Series2"], order_formations=["basement", "sandstone", "shale"])
>>> gp.add_fault(model, 2, series="Series1")
>>> gp.map_stack_to_surfaces(model, {"basement": "rock2", "sandstone": "rock1", "shale": "rock3"})
>>> gp.set_interpolator(model)
>>> solution = gp.compute_model(model)
>>> solution.create_struc_xarrays()
<xarray.Dataset>
Dimensions: (points: 216, cells: 2, layer: 3)
Coordinates:
* points (points) MultiIndex
- x (points) float64 1.0 1.0 3.0 3.0 5.0 ... 7.0 9.0 7.0 9.0 7.0 9.0
- y (points) float64 1.0 3.0 1.0 3.0 1.0 ... 9.0 9.0 7.0 7.0 5.0 5.0
- z (points) float64 1.0 1.0 1.0 1.0 1.0 ... 9.0 9.0 9.0 9.0 9.0 9.0
Dimensions without coordinates: cells, layer
Data variables:
vertices (cells, points, layer) float64 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0
c_grid (cells, points, layer) float64 0.0 0.0 0.0 0.0 ... 0.0 0.0 0.0 0.0
scalar_field (points, layer) float64 0.0 0.0 1.0 1.0 ... 1.0 0.0 0.0 0.0
以上示例演示了如何创建一个结构网格的xarray数组。该例子中,地层模型包含了三个层次,即basement、sandstone和shale。使用create_struc_xarrays方法,我们得到了一个包含两个结构单元(cells)、216个点(points)和三个层次(layer)的三维xarray数组(dimensions)。该数组中的数据变量(Data variables)包含了网格(vertices)、C网格(c_grid)和标量场(scalar_field)等信息。