  Turbulent flows over canopies of rigid filaments with different densities,
$\lambda_f$, are studied using direct simulations at Reynolds numbers
$Re_\tau\approx550-1000$. The canopies have heights $h^+\approx110-220$, and
are an instance of obstructing substrate. We show that conventional methods
used to determine the zero-plane displacement can be at odds with proper
outer-layer similarity and may not be applicable for flows at moderate
$Re_\tau$. Instead, we determine $\Delta y$ and the length and velocity scales
that recover outer-layer similarity by minimising the difference between the
smooth-wall and canopy diagnostic function everywhere above the roughness
sublayer, not just in the logarithmic layer. We also investigate if the
zero-plane displacement and the friction velocity can be set independently, but
find that outer-layer similarity is more consistently recovered when they are
coupled. Our results suggest a modified outer-layer similarity, where the
K\'arm\'an constant, $\kappa$, is not 0.39, but turbulence is otherwise
smooth-wall-like. When the canopy is dense, the flow above the tips is
essentially smooth-wall-like, with smooth-wall-like $\kappa\approx0.39$ and
origin essentially at the tip plane. For intermediate densities, the overlying
flow perceives a deeper zero-plane displacement, in agreement with previous
studies, but exhibits a lower K\'arm\'an constant, $\kappa\approx0.34-0.36$.
For sparse canopies, $\kappa$ tends back to its smooth-wall value, and the
zero-plane-displacement height is at the canopy bed. For all canopies studied,
the decrease in $\kappa$ never exceeds 15%, which is significantly less than
that obtained in some previous works using conventional methods to assess
outer-layer similarity.
