bug in threshold filter?

I am using Paraview 5.2.0 on a Linux Fedora 25 system. I have some scalar data on a structured 3D grid (see link to my cube file below). The data value at each grid point is either a 1.0 or a 0.0. Most of the values are zero and I just want to see where the 1.0 values are. I used the Threshold filter with min and max values set to 1, and rendered the result with the Points style. According to the Information tab, the filter selected 304 points. That’s wrong, because 758 points actually have the value of 1, as I can verify by having Paraview show me the histogram of the data. And I can tell from the resulting plot that there are points missing, because I know where some of them should be according to the actual data in the cube file. Why does the filter get the wrong number of points? Would someone be willing to see if the latest version of Paraview has the same problem with my file?

out.cube (1.3 MB)

Threshold is essentially a cell filter. Even if you threshold on point variables, the Threshold filter is ONLY going to use the point variable to decide which CELLS meet the criteria. After determining the qualifying output cells based on the point variable threshold, it will not apply the point variable threshold to any additional part of the process. It will output those cells and all points associated with those cells, whether or not the points meet the threshold on point variables. So, the point variable threshold is merely a test for which cells to output, and the output cells determine the output points independent of the point variable threshold.

If you have “All Scalars” checked in your Threshold filter, then the output will only be cells that have a value of 1 for every node in the cell AND all nodes associated with those cells. This very likely will not include all the nodes which meet the point variable threshold.

If you have “All Scalars” unchecked in your Threshold filter, then the output will be all cells that have at least 1 pt with a value of 1 AND all the points of those cells. This will very likely include points that do not meet the point variable threshold

To accurately select points based on a point variable, use Find Data (Edit/Find Data or “V”) and choose to select points using the point variable = 1.

I hope this helps.

Just to follow Dennis’ instructions one step further, if you use Find Data to select the points where the variable equals 1, you can then run the Extract Selection filter to extract those points. (There is a convenient button in the Find Data dialog box to create this filter.) The result of the filter will be data that is just points. The cells from your original data are removed.

Thank you both, that explains it perfectly. I didn’t realize that Threshold selected only by cell rather than by data point, and I never would have figured out that if one wants to select by point, then one has to use a completely different procedure.