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