Grain Cross
Correlate grain properties between two fields using a shared grain mask. Reports per-grain property pairs and the Pearson correlation coefficient. Equivalent to Gwyddion's grain_cross.c module.
Inputs
| Name |
Type |
Required |
Description |
| field_a |
DATA_FIELD |
Yes |
First height field |
| field_b |
DATA_FIELD |
Yes |
Second height field |
| mask |
IMAGE |
Yes |
Binary grain mask (white = grain) |
Outputs
| Name |
Type |
Description |
| correlation |
RECORD_TABLE |
Per-grain property pairs and Pearson correlation coefficient |
Controls
| Name |
Type |
Default |
Description |
| property_a |
dropdown |
mean_height |
Property to compute from field_a: area, mean_height, max_height, or volume |
| property_b |
dropdown |
max_height |
Property to compute from field_b: area, mean_height, max_height, or volume |
| min_size |
INT |
10 |
Minimum grain area in pixels; smaller grains are excluded (1–100000) |
Notes
- Grains are identified by connected-component labelling (
scipy.ndimage.label) on the binary mask.
- The area property uses physical pixel area (dx * dy). Volume integrates height above the mean of non-grain pixels.
- Each table row contains one grain's property pair formatted as "value_a / value_b".
- The final row reports the Pearson correlation coefficient r between the two property vectors (requires at least 2 grains).
- Both fields must have the same pixel dimensions as the mask.