Paraview 的 Xdmf : 来自 DataItem 的 select 个元素
Xdmf for Paraview : select elements from a DataItem
我正在尝试为 Paraview 使用 xdmf 文件从 hdf5 文件中获取数据。
我在包含 2 个值的数组中有一个变量,我需要使用第一个。为此,我尝试使用一个函数,但不知道如何使用它。
所以如果我这样做:
<Attribute Name="rho" Center="Cell" AttributeType="Scalar">
<DataItem Format="HDF" Precision="8" Dimensions="2">
test.h5:/variables/rho_cell
</DataItem>
</Attribute>
Paraview 发出警告,我有一个包含 2 个值的数组,而我只有一个单元格(此警告是预期的)。
所以我添加了一个这样的函数:
<Attribute Name="rho" Center="Cell" AttributeType="Scalar">
<DataItem ItemType="Function" Function="[=12=][1:2]" Dimensions="1">
<DataItem Format="HDF" Precision="8" Dimensions="2">
test.h5:/variables/rho_cell
</DataItem>
</DataItem>
</Attribute>
然后 Paraview 崩溃(没有错误消息)。
老实说,我什至不确定数组索引是否像 python 中那样(从 0 开始,0:1 仅表示第一个元素)...我找不到任何帮助.我几乎尝试了任何参数组合,但似乎没有任何效果。
为了确保我的函数语法没有完全错误,我已经尝试过了:
<Attribute Name="rho" Center="Cell" AttributeType="Scalar">
<DataItem ItemType="Function" Function="[=13=] + 1.5" Dimensions="2">
<DataItem Format="HDF" Precision="8" Dimensions="2">
test.h5:/variables/rho_cell
</DataItem>
</DataItem>
</Attribute>
并且有效,但显然仍然给出有关单元格数量的警告。
您是否尝试过使用坐标数据项?
<Attribute Name="rho" Center="Cell" AttributeType="Scalar">
<DataItem ItemType="Coordinates" Dimensions="2" Type="Coordinates">
<DataItem Format="XML" Dimensions="1">
0
</DataItem>
<DataItem Format="HDF" Precision="8" Dimensions="2">
test.h5:/variables/rho_cell
</DataItem>
</DataItem>
</Attribute>
我发现您可以使用 HyperSlab(而不是函数)指定数组的一部分。
这是它的代码:
<Attribute Name="ro" Center="Cell" AttributeType="Scalar">
<DataItem ItemType="HyperSlab" Dimensions="1" Type="HyperSlab">
<DataItem Dimensions="3 1" Format="XML">
0
1
1
</DataItem>
<DataItem Format="HDF" Precision="8" Dimensions="2">
test.h5:variables/rho_cell
</DataItem>
</DataItem>
</Attribute>
我正在尝试为 Paraview 使用 xdmf 文件从 hdf5 文件中获取数据。 我在包含 2 个值的数组中有一个变量,我需要使用第一个。为此,我尝试使用一个函数,但不知道如何使用它。 所以如果我这样做:
<Attribute Name="rho" Center="Cell" AttributeType="Scalar">
<DataItem Format="HDF" Precision="8" Dimensions="2">
test.h5:/variables/rho_cell
</DataItem>
</Attribute>
Paraview 发出警告,我有一个包含 2 个值的数组,而我只有一个单元格(此警告是预期的)。 所以我添加了一个这样的函数:
<Attribute Name="rho" Center="Cell" AttributeType="Scalar">
<DataItem ItemType="Function" Function="[=12=][1:2]" Dimensions="1">
<DataItem Format="HDF" Precision="8" Dimensions="2">
test.h5:/variables/rho_cell
</DataItem>
</DataItem>
</Attribute>
然后 Paraview 崩溃(没有错误消息)。 老实说,我什至不确定数组索引是否像 python 中那样(从 0 开始,0:1 仅表示第一个元素)...我找不到任何帮助.我几乎尝试了任何参数组合,但似乎没有任何效果。
为了确保我的函数语法没有完全错误,我已经尝试过了:
<Attribute Name="rho" Center="Cell" AttributeType="Scalar">
<DataItem ItemType="Function" Function="[=13=] + 1.5" Dimensions="2">
<DataItem Format="HDF" Precision="8" Dimensions="2">
test.h5:/variables/rho_cell
</DataItem>
</DataItem>
</Attribute>
并且有效,但显然仍然给出有关单元格数量的警告。
您是否尝试过使用坐标数据项?
<Attribute Name="rho" Center="Cell" AttributeType="Scalar">
<DataItem ItemType="Coordinates" Dimensions="2" Type="Coordinates">
<DataItem Format="XML" Dimensions="1">
0
</DataItem>
<DataItem Format="HDF" Precision="8" Dimensions="2">
test.h5:/variables/rho_cell
</DataItem>
</DataItem>
</Attribute>
我发现您可以使用 HyperSlab(而不是函数)指定数组的一部分。 这是它的代码:
<Attribute Name="ro" Center="Cell" AttributeType="Scalar">
<DataItem ItemType="HyperSlab" Dimensions="1" Type="HyperSlab">
<DataItem Dimensions="3 1" Format="XML">
0
1
1
</DataItem>
<DataItem Format="HDF" Precision="8" Dimensions="2">
test.h5:variables/rho_cell
</DataItem>
</DataItem>
</Attribute>