Concepts¶
Support-constrained distance¶
Let \(\Omega\) be the connected accepted support and \(c_k\) a supplied centre. RadialPaths computes
where \(d_G\) is the shortest path on the 8-neighbour in-support pixel graph. Paths cannot cross background or internal holes. Axial graph steps cost one pixel and diagonal steps cost \(\sqrt{2}\) pixels.
Centre-associated regions¶
Each support pixel is assigned to its closest supplied centre:
Exact distance ties are assigned to the first centre in the supplied sequence,
matching numpy.argmin and the validated implementation.
Relative centre–boundary depth¶
Let \(b(x)\) be the in-support graph distance to the closest boundary pixel. A boundary pixel is in \(\Omega\) and touches an excluded pixel in its 3-by-3 neighborhood. This includes the edge of any internal hole.
The coordinate is zero at its centre and one on represented support boundaries.
Normalized progression¶
For each centre-associated region,
This coordinate describes progression from a supplied centre to the furthest point assigned to it. Unlike \(\rho_D\), it is not a boundary-depth coordinate.
Profiles¶
The default profile estimator follows the observational figures: 30 equal bins on \([0,1]\), unweighted median intensity in each centre-associated region, at least six pixels per populated bin, and \(\rho=1\) included in the final bin. The 16th and 84th percentiles are returned for descriptive spread. No curve or spline is fitted.
Geometry is tracer-independent¶
The support and centres determine \(B_k\), \(\rho_D\), and
\(\rho_X\). The intensity or physical tracer enters only when
radial_profile is called. Registered maps can therefore share an identical
radial geometry, making cross-tracer comparisons explicit.