Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DOC: Applicability and details of "Find Surface Area to Volume & Sphericity" Filter #947

Open
2 tasks done
StopkaKris opened this issue May 2, 2024 · 3 comments
Open
2 tasks done
Labels
documentation Improvements or additions to documentation question Further information is requested

Comments

@StopkaKris
Copy link

Is there an existing issue for this?

  • I have searched the existing issues, known issues in release notes, and documentation.

Brief Description of the Documentation Issue or Improvement

I have a question about the workings of the Find Surface Area to Volume & Sphericity filter in 2D and 3D.

The current description of the filter suggests that surface features may have a skewed surface area to volume and sphericity. First, all the boundary cells are found for each feature, and then, the surface area for each face that is in contact with a different feature is totaled. It is unclear what this means for cells that are part of the outer boundary, i.e., does this filter consider the "Include Volume Boundary" that users can select in the Find Boundary Cells (Image) filter? And if so, filters like this (and others that compute feature attributes that are skewed by surface-connected features, e.g., Find Feature Shapes) should probably include a warning to users (maybe just in the documentation) that i) since this feature is connected to the surface, its attributes should be interpreted carefully, and ii) users can filter these features by using the Find Surface Features filter and then examining the boolean "SurfaceFeatures" feature attribute, which can be written to a .csv file alongside Surface Area to Volume, Sphericity, etc.

Also, how does this work/what does it report for a 2D EBSD scan? In this case, the filter would calculate something akin to the grain boundary to surface area ratio, correct? I think this would be useful to include in the filter documentation. Please let me know what you think and thank you. Apologies if it feels like I have been bombarding the issues page these last few days/weeks.

Best regards,
Krzysztof Stopka

Version

DREAM3D NX (version 7)

What section of the documentation did you encounter the discrepancy in? [Further details may be required during triage process]

Filter Documentation

Anything else?

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct
@StopkaKris StopkaKris added the documentation Improvements or additions to documentation label May 2, 2024
@imikejackson
Copy link
Contributor

@StopkaKris I just saw this today. I will have someone take a look at all the filters involved and try to make an update to the documentation.

@imikejackson
Copy link
Contributor

@StopkaKris

Compute Surface Area to Volume

I went through the code and the code will only count surface area if the face does not border a "featureId = 0" cell. This will definitely skew the results for any feature that touches not just the outside boundary, but "Pores" or anything else that has been labeled as "FeatureId = 0"

Compute Feature Shapes

This filter does not take into account any kind of "boundary" or "border" cells. Each feature, regardless if it touches a featureIs=0 or the outer edge, will get its shape computed.

2D Volumes (Compute Surface Area to Volume)

Since even a single layer has "volume", the way the code currently stands, it will be calculating "something" as the ratio. The filter probably needs a "2D" mode like some of the other volumes. I'll put a warning in the filter documentation.

Here is the updated documentation

Description

This Filter calculates the ratio of surface area to volume for each Feature in an Image Geometry.

This filter also optionally calculate the Sphericity of each feature.

Equation for Sphericity used in the filter

This Filter determines whether a Feature touches an outer Surface of the sample volume. A Feature is considered touching the Surface of the sample if either of the following conditions are met:

  • Any cell location is xmin, xmax, ymin, ymax, zmin or zmax
  • Any cell has Feature ID = 0 as a neighbor.

Algorithm Details

  • First, all the boundary Cells are found for each Feature.
  • Next, the surface area for each face that is in contact with a different Feature is totalled as long as that neighboring featureId is > 0.
  • This number is divided by the volume of each Feature, calculated by taking the number of Cells of each Feature and multiplying by the volume of a Cell.

WARNING - Aliasing

The surface area will be the surface area of the Cells in contact with the neighboring Feature and will be influenced by the aliasing of the structure. As a result, the surface area to volume will likely be over-estimated with respect to the real Feature.

WARNING - Skewed Results for features touching the surface

Because the filter does not include any surface that is touching/connected to a "FeatureId = 0", those features that are in contact with the edge of the virtual volume or in contact with internal features that are labeled as "FeatureId = 0" will have their values skewed.

Warning - 2D Image Geometry Results

Because even a single slice has volume according to DREAM3D-NX, results will still be computed. These results should NOT be interpreted as "Boundary Length to Area" values.

@imikejackson imikejackson added the question Further information is requested label May 24, 2024
@StopkaKris
Copy link
Author

@imikejackson Everything you wrote here looks great.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants