I have different vectors field and I want to characterize their "smoothness" or tendency to align, or like their heterogeneity. Here are two examples, a relatively smooth vector field on the left, and a "chaotic" on the right:

enter image description here

If the motion was straight, I could use the standard deviation applied to the x and y components. But in my case, even if I use a local ROI (depicted with the black box), the motion is curvy. So even if the motion was perfectly curvy (without noise) the standard deviation wouldn't be null.

My question is : how quantify (in an absolute way) the smoothness of the vector field ?

  • $\begingroup$ Use the analog of unidimensional derivatives, such as its divergence, which you may estimate numerically. Exactly how you do this depends on what features of the vector field you wish to capture and on how the vector field is given to you (as data--if so, what format?--or as a mathematical object). $\endgroup$
    – whuber
    Oct 2, 2020 at 20:44
  • $\begingroup$ Have you considered cross-posting this to Math SE? There may be standard ways to quantify the smoothness of a vector field in differential geometry (speculation) which can be translated in statistical terms. $\endgroup$
    – Michael
    Oct 2, 2020 at 20:53
  • $\begingroup$ This sounds like turbulence? Maybe ask on physics SE how to measure turbulence from vector field data? ltces.dem.ist.utl.pt/LXLASER/lxlaser2000/papers/pdf/16_5.pdf $\endgroup$ Oct 31, 2022 at 17:08
  • $\begingroup$ @kjetilbhalvorsen I am getting a "connect timed out" for that link. $\endgroup$
    – Galen
    Aug 6 at 0:45
  • $\begingroup$ Reminds me of this post: stats.stackexchange.com/questions/574089/… $\endgroup$
    – Galen
    Aug 6 at 0:46

1 Answer 1


Not yet able to comment.

What level of detail do you have about the vector fields? Presumably not an analytical formula but rather just empirical values on some grid. E.g. you know the vector field on a subset of $\alpha\mathbb Z^2$ for some small float $\alpha$.

In that case the issue is that it may be a smooth underlying function but simply appear nonsmoooth at the level you are analyzing. Like the vectorfield $v(x,y)=\langle \sin(100xy), \cos(100xy)\rangle$ would appear random on $0.01\mathbb Z^2$.

So the best you can do is a relative answer - you can tell if a vector field appears smoother than another but not in any absolute sense.

One approach would be to smooth the vector field, e.g. by sampling points in an $\epsilon$-ball and computing the mean vector. You could then calculate the sum of the magnitude of difference between the smoothed vector field and the original. A smoother-appearing vector field will be better approximated by its smoothed counterpart.

You could also look at the correlation of subsequent values (similar to the autocorrelation with lag 1) of the vector field: $\text{corr}(v(x,y),v(x+\alpha,y))$ and similarly for the y-variable.

If the vector field is more smooth, then the subsequent values should be significantly correlated.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.