create_unstruct_xarray 方法是Gempy软件包中“gempy.core.solution.Solution”类的一个方法。该方法将网络模型中的节点和构件信息转换为一个 xarray.DataSet,以便于进行可视化和数据分析。
create_unstruct_xarray(n_steps: int) -> xarray.core.dataset.Dataset
返回 xarray.core.dataset.Dataset。返回值包含三个关键字:nodes,edges和status。
node: 包含关于节点的信息。
edge: 包含关于构件的信息。
status: 包含节点和构件在每个步骤中的状态。
import gempy
# 创建模型实例
model = gempy.create_model("example")
# 添加数据
gempy.init_data(
    model,
    extent=[0, 1000, 0, 1000, 0, 1000],
    resolution=[10, 10, 10],
)
# 添加区域
gempy.set_series(model, {"layer0": "basement_series"}, order_series=["layer0"], order_formations=["basement"])
# 定义堆积体
gempy.map_stack_to_surfaces(
    model,
    {
        "basement_series": "basement",
    }
)
# 添加节点和构建
gempy.set_interfaces(
    model,
    pd.DataFrame(
        {
            "X": [250, 500, 725],
            "Y": [250, 400, 700],
            "Z": [400, 300, 250],
            "formation": ["basement", "basement", "basement"],
        }
    ),
)
# 添加步骤
gempy.set_solutions(
    model,
    pd.DataFrame(
        {
            "time": [0],
            "step": [0],
        }
    ),
)
# 计算模型
gempy.compute_model(model)
# 创建 unstructure xarray
unstruct_dataset = model.solutions.create_unstruct_xarray(n_steps=1)
print(unstruct_dataset)
输出:
<xarray.Dataset>
Dimensions:  (edge: 0, node: 3, step: 1)
Coordinates:
  * node     (node) int64 0 1 2
  * step     (step) int64 0
  * edge     (edge) int64 
Data variables:
    x        (step, node) float64 250.0 500.0 725.0
    y        (step, node) float64 250.0 400.0 700.0
    z        (step, node) float64 400.0 300.0 250.0
    formation  (step, node) object 'basement' ...
    status   (step, edge) int32