Attributes
Point Cloud and Mesh Attributes
Overview
Attributes are geometric and statistical properties computed for vertices (points) or triangles in a 3D model. These attributes are derived by analyzing the local neighborhood either using a search radius or by specifying the number of nearest neighbors.
Vertex Attributes
Vertex attributes are properties computed for each point in a point cloud based on its local neighborhood.
Eigenvalue-Based Attributes
These attributes are derived from eigenvalue analysis of the local point neighborhood, producing three eigenvalues (λ₁ ≥ λ₂ ≥ λ₃) that describe the geometric distribution of points.
- Eigen Values x3: The three eigenvalues (λ₁, λ₂, λ₃) computed from the local neighborhood. These describe the variance along principal directions
- Sum of Eigenvalues: Sum of all three eigenvalues (Σλᵢ). Represents the total variance in the local neighborhood
- Omnivariance: Cubic root of the product of eigenvalues: (λ₁ × λ₂ × λ₃)^(1/3). Measures the 3D spread of the local point distribution
- Eigenentropy: −Σeᵢ ln(eᵢ), over the eigenvalues normalised so they sum to 1 (eᵢ = λᵢ/Σλ). Measures how evenly the variance is spread between the three axes: 0 when it all lies along one (a line), and its maximum of ln 3 ≈ 1.10 when the three are equal (a scatter with no preferred direction). Being built from normalised eigenvalues it does not depend on the size of the neighbourhood or the units of the model
Dimensionality Features
These attributes characterize the local surface. They come in three families that are easy to confuse, because the names are so alike. Linearity and Planarity are not the same thing as Colinearity and Coplanarity, Colinearity is not the same thing as Tavani Collinearity, and none of the three families share a scale.
Fractions, on [0, 1] — a triple that sums to 1, so they are only informative read together. Each says what proportion of the local shape is line-like, plane-like or blob-like.
- Linearity: (λ₁ − λ₂)/λ₁. Close to 1 for a line
- Planarity: (λ₂ − λ₃)/λ₁. Close to 1 for a flat surface
- Sphericity: λ₃/λ₁. Close to 1 for a scattered blob
Log ratios, unbounded above — the pair used to judge whether a best-fit plane through the neighbourhood can be trusted. See Plane Fit Quality below.
- Colinearity: ln(λ₁/λ₂) / ln(λ₂/λ₃). How close to a line the points are. Low values mean the points spread across the surface in two directions; high values mean they are strung out along one, leaving the orientation poorly constrained
- Coplanarity: ln(λ₁/λ₃). How close to a plane the points are. Higher is flatter; above about 4 the points sit within roughly 6° of the best-fit plane
Plain ratios, unbounded above — the same two questions again, after Tavani et al. (2024), but on the eigenvalues themselves rather than their logarithms. Output together as Tavani Indices in the dialog. They exist because the paper's published benchmarks are stated on this scale, so you can read a number straight off against a threshold instead of converting it. The catch is that the two run in opposite directions, which is the thing to keep straight.
- Tavani Collinearity: λ₁/λ₂. Lower is better — below 30 is excellent, below 100 is good. It rises without limit as the points collapse onto a line
- Tavani Coplanarity: (λ₁ + λ₂ + λ₃)/λ₃. Higher is better — above 5000 is excellent, above 2000 is good. It rises without limit as the points become exactly flat
30 / 100 / 2000 / 5000 come from Tavani et al. Table 2, which was built from hand-digitised traces — long, thin polylines picked along a discontinuity. A search neighbourhood is nothing like that shape: it is a roughly round ball of points, and reaching a coplanarity of 2000 asks it to be about 63 times wider than it is rough. Applied unchanged to a point cloud or mesh they will fail a great deal of perfectly good outcrop, which is why the Grade below makes them settings rather than fixed numbers.
If you want a number you can reason about physically, prefer Plane Scatter (degrees) or RMS Residual (model units) below. Coplanarity answers the same question as Plane Scatter but on a scale where "above about 4" has to be memorised.
Fit Residuals
Both describe how far the neighbourhood actually sits from its local best-fit plane, rather than expressing it as a ratio.
- Plane Scatter: the RMS angle, in degrees, by which the points scatter about the local best-fit plane. This is the same measure a picked orientation reports as its error, so a point cloud and an interpretation can be compared directly
- RMS Residual: the average distance of the points from that plane, in model units. This is the quantity the Robust Plane Quality residual budget is compared against
Plane Fit Quality
Colinearity and Coplanarity answer different questions, and a trustworthy measurement needs both. Points can hug a plane perfectly and still fail to fix its orientation, because infinitely many planes pass through a straight line and every one of them fits it equally well. VRGS offers three verdicts built on this idea — two pass/fail flags and one graded score. They can be output together and compared, and they all live in the Plane Fit Quality group of the tensor analysis dialog.
| Attribute | Values | Judges the fit against | After |
|---|---|---|---|
| Orientation Quality | pass / fail | the shape of the neighbourhood itself | Fernández (2005) |
| Robust Plane Quality | pass / fail | the precision of the survey | Jones et al. (2016) |
| Grade | 0 / 1 / 2 | published benchmarks, plus the point count | Tavani et al. (2024) |
Orientation Quality
Set when Coplanarity is at least 4 and Colinearity is no more than 0.8, following Fernández (2005). It has no tick-box of its own — selecting both Colinearity and Coplanarity produces it. The layer is spelled Oriention Quality in the attribute list, which is a misspelling in the software rather than here.
These thresholds compare the neighbourhood against its own shape, so the flag is independent of the units and scale of the survey. The cost is that it cannot tell a genuine plane from one whose spread is nothing but measurement noise, and it tends to reject long, narrow patches — common on outcrop — however well measured they are.
Tavani et al. (2024) argue their own indices should replace M and K, and for a picked trace VRGS follows them. Orientation Quality stays on Fernández's pair deliberately: their replacement thresholds describe traces, not search neighbourhoods, and swapping them in here would reject far more outcrop than it should. If you want the Tavani standard applied to a model, use Grade, where the bars are yours to set.
Robust Plane Quality
Set following Jones et al. (2016), which judges a fit against the precision of the survey rather than the shape of the sample. Reach for it when Orientation Quality rejects patches you believe are good, or accepts areas you know to be noise. Three settings control it:
- Survey Precision: the measurement precision of the survey, in model units. A neighbourhood is rejected as too colinear when its second dimension is smaller than this, i.e. no larger than the noise. The default
0.032is the published value for a high-precision medium-range scanner (quoted at 2–6 mm at 50 m). Raise it for noisier data such as long-range scans or photogrammetry - Min Eigenvalue Ratio: reject when λ₂ is less than this many times λ₃, i.e. when the surface is too irregular for its size. The default
10is the published value for bulk fracture work, and lets larger planes carry a larger absolute variance. Set to0to disable - Max RMS Residual: reject when points sit further than this from the fitted plane on average, in model units. A fixed budget regardless of patch size, and the stricter of the two planarity tests. The default
0disables it, which is the recommended setting when analysing many fractures at once
Survey Precision and Max RMS Residual are absolute distances in your project's units, so they have to suit the data. The defaults assume a metre-based project surveyed with a high-precision scanner.
Grade
An ordinal score after Tavani et al. (2024), written as a whole number:
| Value | Meaning |
|---|---|
2 | excellent |
1 | good |
0 | rejected |
Orientation Quality and Robust Plane Quality are both pass/fail, so colouring a model by either flattens a barely-acceptable neighbourhood and a rock-solid one to the same value. Grade separates them, which is what makes it the one to colour a model by when you are deciding where on an outcrop your measurements can be trusted.
The score is the worst of three tests — good geometry cannot rescue a neighbourhood that has too few points in it:
| Test | Excellent | Good |
|---|---|---|
| Tavani Collinearity | below 30 | below 100 |
| Tavani Coplanarity | above 5000 | above 2000 |
| Number of points | 12 or more | 8 or more |
The point-count test is the one that catches a sparse neighbourhood, or one at the edge of the model where the search sphere hangs half in space — too thin to support a plane at all, whatever shape the few points it did find happen to make.
Two settings set where "rejected" begins:
- Grade Collinearity Limit: reject above this. Default
100 - Grade Coplanarity Limit: reject below this. Default
2000
Both defaults are Table 2's "good" row. They are settings rather than fixed numbers because that row was calibrated on hand-digitised traces, and a search neighbourhood is a fundamentally different shape — see the caution under Dimensionality Features above. If a rough but well-exposed outcrop grades out worse than it deserves, lower the coplanarity limit first; it is the one that bites.
The paper gives two figures worth knowing when you change either:
- Screening seven outcrops by eye before digitising anything, its authors found that traces they judged planar on sight consistently scored above 1000. That makes 1000 a defensible floor to drop the coplanarity limit to, and a more honest one than a round number picked to make a model look good
- They allow collinearity up to 200–300 for an experienced user working with a live best-fit preview, but no further: past that range they start to see best-fit planes diverging from the true bedding orientation by more than 10°
The "excellent" bars stay at 30 and 5000 but are clamped against whatever you
type, so a limit stricter than the published excellent row can never hand back
2 for a value that just failed your own reject test.
Every other attribute auto-ranges to the values actually present. Grade does not: a model that came out uniformly good would otherwise spread its single value across the whole ramp, and the same colour would mean "excellent" on one model and "rejected" on the next. Pinning it means a colour means the same thing everywhere.
Near the edge of a flat face the search neighbourhood spills onto the next facet, so Coplanarity dips all round the rim of a surface that is genuinely flat. To score a whole surface rather than a sphere of points around each vertex, use Patch CoPlanarity (or Patch RMS Residual) from Auto Structural Mapping or Grow Planar Patches, which fit one plane per patch and write its coplanarity to every triangle in that patch.
Geometric Properties
- Elevation: The Z coordinate value of the vertex in the project coordinate system
- Range: Distance from the scanner origin to the point. Only applicable to spherical scan datasets where sensor position is known
- Dip: The dip angle of the local surface orientation. Measures the angle of inclination from horizontal (0-90 degrees)
- Azimuth: The azimuth or strike direction of the local surface. Measures the compass direction (0-360 degrees)
- Pole x3: The X, Y, and Z components of the pole vector (normal vector perpendicular to the local surface). Three separate attributes, ticked as Normal in the dialog
Curvature and Surface Complexity
- Change of Curvature: λ₃/(λ₁ + λ₂ + λ₃). Estimates the local surface curvature. Higher values indicate more curved surfaces
- Verticality (x2): Two attributes measuring the angle between eigenvectors and the vertical (Z) axis: −angle(eᵢ, eᵧ). Used to detect vertical structures. The dialog offers them as the separate Verticality and Horizontality tick-boxes, which write
Verticality0andVerticality1
Statistical Moments
- Absolute Moment (x6): Six attributes representing absolute moments of the point distribution. Used for shape characterization
- Vertical Moment (x2): Two attributes representing vertical moments of the point distribution
Point Count and Color
- Number of Points: The count (N) of neighboring points used in the attribute calculation. Indicates the local point density. The dialog calls this Observations, and so does the layer it writes
- Average Color (x3): Three attributes for the average red, green, and blue color values in the local neighborhood
- Color Variance (x3): Three attributes for the variance of red, green, and blue color values in the local neighborhood. Indicates color heterogeneity
Triangle Attributes
Triangle attributes are properties computed for each triangular face in a mesh surface.
Orientation Attributes
- Dip: The dip angle of the triangle face. Measures the angle of inclination from horizontal (0-90 degrees)
- Azimuth: The azimuth or strike direction of the triangle face. Measures the compass direction (0-360 degrees)
Statistical and Geometric Measures
- Fisher K Value: The Fisher concentration parameter (K) computed from connected triangles. Higher K values indicate more clustered or consistent orientations in the local area. Used for assessing surface orientation consistency
- Triangle Area: The surface area of the triangle. Measured in square units of the project coordinate system
- Max Edge Length: The length of the longest edge of the triangle. Useful for identifying elongated or poor-quality triangles
Fracture Analysis
- P21 / P32 / P33 Maps: Fracture intensity attributes computed per vertex over a search sphere — P21 (trace length per area), P32 (fracture area per volume) and P33 (fracture porosity). Used for fracture network characterization. See Fracture Intensity Mapping for the method and parameters.
Planar Patch Attributes
Written by Grow Planar Patches, which divides a mesh into planar patches — the exposed faces of beds, fractures and faults — and describes each one by a plane fitted through its nodes. Every triangle carries its patch's values; triangles in no patch are 0 in every layer but Patch Dip and Patch Azimuth, where they have no value.
- Patches: The patch id, largest patch first
- Patch Colour: The id scrambled onto the colour ramp so that neighbouring patches contrast. The layer to display
- Patch Size / Patch Area: The number of triangles in the patch, and its area
- Patch Dip / Patch Azimuth: The orientation of the patch's fitted plane; the azimuth is the dip direction. They can be plotted on the stereonet — see Patches on the Stereonet
- Patch CoPlanarity: Fernández's M for the patch as a whole, on the same scale as the per-vertex CoPlanarity
- Patch RMS Residual: The RMS distance of the patch's nodes from its plane, in model units
- Patch Length / Patch Width: The in-plane extents of the fitted plane
- Patch Difference: The angle between the triangle's own face and its patch's plane, in degrees
- Patch Similarity: The cosine of Patch Difference: 1 for a face lying in its patch's plane, 0 for one at right angles to it
- Patch Set: The orientation set the patch was clustered into, when sets were requested. A run without sets removes it
How each value is computed is set out in Grow Planar Patches — Method. Auto Structural Mapping writes layers of the same names apart from Patch Set, and removes a Patch Set left by an earlier run; its page defines its values.
Computation Methods
Attributes can be computed using two neighborhood selection methods:
- Search Radius: Include all points/triangles within a specified distance from the target point/triangle
- K-Nearest Neighbors: Include the K closest points/triangles to the target point/triangle
The choice of method and parameter values (radius size or K value) significantly affects the scale of features detected.
Tensor Analysis dialog reference
The sections above group the attributes by what they measure. This one lists them as the dialog presents them, because the two do not always use the same words: several options write a layer under a different name, so ticking a box and then hunting for the result in the attribute list can be confusing. Reach it from Right-click the object → Attributes & Analysis → Tensor Analysis (for a mesh, → Geometry → Tensor Analysis).
Check All selects everything. Every layer is computed over the neighbourhood chosen by
Sphere Radius or K Nearest Neighbours — see Computation
Methods.
Basic Attributes
| Dialog option | Layer written | What it is |
|---|---|---|
| Dip | Dip | Dip angle of the local surface, 0–90° |
| Azimuth | Azimuth | Dip direction of the local surface, 0–360° |
| Coplanarity | CoPlanarity | ln(λ₁/λ₃) — how flat the neighbourhood is |
| Colinearity | Colinearity | ln(λ₁/λ₂) / ln(λ₂/λ₃) — how line-like it is |
| Plane Scatter | Plane Scatter | RMS scatter about the local plane, in degrees |
| RMS Residual | RMS Residual | Mean distance from the local plane, in model units |
| Observations | Observations | The point count. How many points fell inside the search neighbourhood — the check that tells you whether the radius is too small or too large |
| Normal | NormalX, NormalY, NormalZ | Components of the pole to the local surface |
| Eigen Values → Values | EigenValue Maximum, EigenValue Median, EigenValue Minimum | The three eigenvalues themselves |
| Eigen Values → Sum | EiSum | λ₁ + λ₂ + λ₃, the total variance |
| Eigen Values → Entropy | EigenEntropy | Eigenentropy, 0 to ln 3 |
Advanced Attributes
| Dialog option | Layer written | What it is |
|---|---|---|
| Linearity | Linearity | (λ₁ − λ₂)/λ₁, a fraction in [0,1] |
| Planarity | Planarity | (λ₂ − λ₃)/λ₁, a fraction in [0,1] |
| Sphericity | Sphericity | λ₃/λ₁, a fraction in [0,1] |
| Change of Curvature | ChangeOfCurvature | λ₃/(λ₁ + λ₂ + λ₃) |
| Omnivariance | Omnivariance | Cube root of the product of the eigenvalues |
| Verticality | Verticality0 | How vertical the local surface is |
| Horizontality | Verticality1 | How horizontal it is. The partner of Verticality, and easy to miss because both write a layer whose name begins Verticality |
| Absolute Moments | AbsoluteMoment0 … AbsoluteMoment5 | Six absolute moments of the local point distribution |
| Vertical Moments | VerticalMoment0, VerticalMoment1 | Two moments taken about the vertical |
| Colour Mean | RColorMean, GColorMean, BColorMean | Mean RGB of the neighbourhood |
| Colour Variance | RColorVariance, GColorVariance, BColorVariance | RGB variance — high where colour changes quickly, so it picks out boundaries |
| Mean Z | Mean Z | Mean elevation of the neighbourhood. Smoother than raw Elevation, so it reads through noise |
| Point Spacing | Point Spacing | Mean spacing between the neighbourhood's points — the local sampling density, in model units |
| Ground Plane | Ground Offset | Height above the estimated local ground plane, in model units |
Plane Fit Quality
Described in full under Plane Fit Quality above. Listed here for completeness, with the settings that drive them.
| Dialog option | Layer written | What it is |
|---|---|---|
| Tavani Indices | Tavani Collinearity, Tavani Coplanarity | The plain eigenvalue ratios from Tavani et al. (2024) |
| Grade | Grade | 0 rejected, 1 good, 2 excellent |
| Grade Collinearity Limit | (setting) | Reject above this collinearity. Default 100 |
| Grade Coplanarity Limit | (setting) | Reject below this coplanarity. Default 2000 |
| Robust Plane Quality | Robust Plane Quality | Pass/fail after Jones et al. (2016) |
| Survey Precision | (setting) | Measurement precision, in model units. Default 0.032 |
| Min Eigenvalue Ratio | (setting) | Smallest acceptable λ₂/λ₃. Default 10, 0 disables |
| Max RMS Residual | (setting) | Residual budget in model units. Default 0, which disables it |
Orientation Quality has no tick-box of its own: it is written whenever both Colinearity and Coplanarity are selected.
The attribute list spells the layer Oriention Quality — the misspelling is in the
software, not here, so search for it that way. And the point count is Observations in
the dialog, not "Number of Points".
References
Woodcock, N. H. (1977). Specification of fabric shapes using an eigenvalue method. Geological Society of America Bulletin, 88, 1231-1236. — the origin of the two eigenvalue ratios behind Colinearity and Coplanarity. https://doi.org/10.1130/0016-7606(1977)88%3C1231:SOFSUA%3E2.0.CO;2
Fernández, O. (2005). Obtaining a best fitting plane through 3D georeferenced data. Journal of Structural Geology, 27, 855-858. — applies Woodcock's ratios to plane fitting and proposes the M > 4 and K < 0.8 thresholds behind Orientation Quality. https://www.sciencedirect.com/science/article/abs/pii/S0191814105000143
Jones, R. R., Pearce, M. A., Jacquemyn, C., & Watson, F. E. (2016). Robust best-fit planes from geospatial data. Geosphere, 12(1), 196-202. — proposes the precision-based criteria behind Robust Plane Quality, as a replacement for Fernández's M and K. https://doi.org/10.1130/GES01247.1
Tavani, S., Corradetti, A., Rizzo, R. E., & Seers, T. D. (2024). Best practices towards the digitization of 3D traces from virtual outcrop models. Journal of Structural Geology, 186, 105222. — the source of Tavani Collinearity, Tavani Coplanarity and the Table 2 benchmarks behind Grade, and of the node-count and digitising-style checks applied to picked orientations. https://doi.org/10.1016/j.jsg.2024.105222
Weinmann, M., Jutzi, B., & Mallet, C. (2013). Feature relevance assessment for the semantic interpretation of 3D point cloud data. ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Volume II-5/W2, 313-318. https://www.isprs-ann-photogramm-remote-sens-spatial-inf-sci.net/II-5-W2/313/2013/isprsannals-II-5-W2-313-2013.pdf
Hackel, T., Wegner, J. D., & Schindler, K. (2016). Fast Semantic Segmentation of 3D Point Clouds with Strongly Varying Density. ISPRS Annual Congress of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Prague, Czech Republic, July 12-19, 2016. https://ethz.ch/content/dam/ethz/special-interest/baug/igp/photogrammetry-remote-sensing-dam/documents/pdf/timo-jan-isprs2016.pdf
Demantké, J., Mallet, C., David, N., & Vallet, B. (2012). Dimensionality based scale selection in 3D LiDAR point clouds. ISPRS - International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences. http://recherche.ign.fr/labos/matis/pdf/articles_conf/2011/laserscanning2011_demantke_final.pdf
See also
- Charts, Histograms and Filtering — plotting an attribute's distribution, reading its statistics, and dragging the histogram to filter what the 3D view shows.
- How good is the pick? — the same Tavani grading applied to an orientation you picked by hand, where the node count and the length of the trace count towards the score as well.
- The Interpretation Spreadsheet — every column the polyline and orientation tables can show, including the same quality measures for a whole group at once.