首页 > 解决方案 > 如何使用 paraview 的可编程滤波器进行比较?

问题描述

我正在尝试使用 Paraview 的可编程过滤器进行简单的比较。总之,这是必要的,因为我只需要在我的值高于 100.0 的点上查看我的问题的解决方案,例如。应该很简单吧?我在这里想念什么?

mydata = inputs[0].PointData['T']

print(mydata[0])
if(mydata[0] > 100.0):
    print("True")
else: 
    print("False")

由于 mydata[0] = 7.282856964183867e-48,我希望此输出为“假”,但实际输出为“真”。我的输入文件可以在这里下载

标签: pythonnumpyparaview

解决方案


您正在处理多块数据集。它不能像标准数据集一样被访问。请参阅此处的讨论:

使用多块数据集输入实现可编程滤波器的正确方法如下:

mydata = inputs[0].PointData['T']

print(mydata.Arrays[0]|0])
if(mydata.Arrays[0]|0] > 100.0):
    print("True")
else: 
    print("False")

第一个索引是块索引,第二个是值索引。

另一种解决方案是在阅读器和可编程过滤器之间添加一个MergeBlocks过滤器。

在此处输入图像描述


推荐阅读