Table des matières
7. Post-traitement des vitesses calculées
L’étape de post-traitement comprend le filtrage et la moyenne des résultats de vitesse. Il est également possible d’afficher quelques statistiques simples sur les résultats de vitesse.
🗑 Filtrage des résultats instantanés
Le menu Post-traitement🡪 Filtrage des résultats instantanés lance l’interface de filtrage. Plusieurs filtres sont disponibles :
- Test médian : filtre sur la cohérence spatiale des vitesses
- Seuil vitesse : filtre sur les composantes des vecteurs vitesses
- Seuil corrélation : filtre sur le niveau de corrélation (identification traceur entre images)
- Pic de corrélation : filtre sur la largeur du pic de corrélation (qualité du traceur)
- Distribution des vitesses : filtre sur la cohérence temporelle des vitesses
- Dispersion des vitesses perpendiculaires au transect: filtre vérifiant la cohérence temporelle des vitesses
- Dispersion angulaire : filtre vérifiant la cohérence temporelle des vitesses
Ces filtres sont appliqués en séquence, dans l'ordre présenté ci-dessus. Cela signifie que chaque filtre traite les vitesses restantes après application des filtres antérieurs (donc, seul le test médian traite directement toutes les vitesses calculées). Pour utiliser chacun des filtres, activer la case à cocher et renseigner les valeurs.
Dans cette section une présentation brève est proposée. Pour plus de détails, se référer à la section de présentation détaillée des filtres.
1. Test médian
Paramètre | Valeurs par défaut | Description |
---|---|---|
epsilon | 0.1 pix | Offset de normalisation, rend compte des fluctuations locales de vitesse |
r0min | 2 pix | Seuil de tolérance sur l'écart à la médiane normalisée |
n_neighbor | 8 | Nombre de plus proches voisins considérés |
dist_max | 10 m | Distance maximale des voisins |
Le test médian est un filtre de cohérence spatiale : il rejette les vitesses non homogènes avec leurs voisines les plus proches (méthode proposée par Westerweel & Scarano (2005)). Le test est réalisé pour chaque composante de vitesse (Vx et Vy).
Les étapes du test médian sont les suivantes :
- Détection des 8 voisins à chaque point (paramètre n_neighbor = 8 et dist_max = 10 m par défaut);
- Calcul de l'écart à la médiane des vitesses voisines. Pour une meilleure robustesse, l'écart à la médiane des vitesses voisines est normalisé par un estimateur robuste des fluctuations locales de vitesse (paramètre epsilon = 0.1 pix par défaut);
- Comparaison de l'écart calculé à un seuil de tolérance (paramètre r0min = 2 pix par défaut).
- Si l'écart dépasse le seuil de tolérance, la vitesse au point est rejetée.
Il est possible que le median test rejette de nombreux vecteurs dans le cas d'un champ de vitesse complexe avec des gradients spatiaux importants. Dans ce cas, le paramètre epsilon peut être ajusté (0.2 ou 0.3 par exemple).
- Pour des champs de vitesse complexes, il est conseillé d'utiliser une grille dense pour limiter les gradients spatiaux.
🔎 Approfondissements 🛠
Les plus proches voisins sont identifiés à l'aide d'un KD-Tree (Bentley, 1975). Le nombre de voisins ainsi que la distance maximale des voisins au point peuvent être passés en paramètres.
Une distance importante est paramétrée par défaut (10 m) afin que seul le critère de nombre de voisins contraigne la détection. Il serait aussi possible de mettre un nombre de voisins important (50) et une distance réduite, un mètre par exemple, afin de prendre tous les voisins dans un rayon d'un mètre autours du point.
Soit u_0
la composante de vitesse au point et u_i
la composante de vitesse d'un voisin i
. Dans le cas où 8 voisins sont considérés, la médiane des vitesses voisines u_{ref}
est calculée telle que :
u_{ref} = median(u_1, u_2, ..., u_8)
Un estimateur robuste des fluctuations locales de vitesse K_v
est calculé à partir des écarts des vitesses voisines à la médiane et d'un offset de normalisation \epsilon
entré par l'utilisateur.
r_i = u_i - u_{ref} \\
K_v = median(r_1, r_2, ..., r_8) + \epsilon
L'écart de la vitesse au point à la médiane des vitesses voisines est normalisé par l'estimateur des fluctuations locales de vitesse K_v
.
r_0^* = \frac{|u_0 - u_{ref}|}{K_v} = \frac{|u_0 - u_{ref}|}{median(r_1, r_2, ..., r_8) + \epsilon}
L'écart obtenu est enfin comparé au seuil de tolérance r0min
si \quad r_0^* > r0_{min} \rightarrow rejet
2. Seuil vitesse
Paramètre | Valeurs par défaut | Description |
---|---|---|
Norme Min | 0 m/s | Limite basse de la norme de vitesse |
Norme Max | 1E30 m/s | Limite haute de la norme de vitesse |
Vx Min | -1E30 m/s | Limite basse de la norme de vitesse |
Vx Max | 1E30 m/s | Limite haute de la norme de vitesse |
Vy Min | -1E30 m/s | Limite basse de la norme de vitesse |
Vy Max | 1E30 m/s | Limite haute de la norme de vitesse |
Le filtre sur seuil de vitesse permet de ne conserver que les vitesses ayant une valeur de norme ou de composante Vx ou Vy comprises dans une gamme définie. Les valeurs minimales et maximales sont à renseigner pour chaque donnée (norme, Vx, Vy).
Attention aux valeurs des filtres pour les vitesses Vx/Vy négatives (inversion min/max)!
3. Seuil de corrélation
Paramètre | Valeurs par défaut | Description |
---|---|---|
Corrélation Min | 0.4 | Limite basse de la corrélation mesurée |
Corrélation Max | 0.98 | Limite haute de la corrélation mesurée |
Le filtre sur seuil de corrélation permet de ne conserver les vitesses que dans une certaine gamme de valeur de corrélation, voir la page des Principes de la mesure de la vitesse de déplacement des traceurs pour plus de détails.
La valeur minimale dépend de la qualité des traceurs et de leur conservation temporelle.
- Pour des traceurs non déformables (objets durs, traceurs artificiels) on pourra exiger des corrélations élevées (de l’ordre de 0.7).
- Pour des traceurs se déformant (figures de turbulence, écume), on demandera un seuil minimal plus faible (de l’ordre de 0.4).
En fixant une borne maximale à 0.98, on évitera des artifices si la grille de calcul déborde de l’écoulement et empiète sur des zones statiques (berge, bord l’image).
4. Pic de corrélation
Paramètre | Valeurs par défaut | Description |
---|---|---|
rhomax | 0.5 | Seuil de tolérance sur la rapport largeur du pic de corrélation / norme du déplacement |
Le filtre sur largeur du pic de corrélation permet de rejeter les points où le pic de corrélation est trop large par rapport à la vitesse calculée.
La largeur du pic de corrélation témoigne de la qualité de l'identification du traceur.
Dans le cas d'un traceur de bonne qualité (facilement identifiable), le pic de corrélation est franc et marqué. La largeur du pic est donc petite par rapport au déplacement mesuré.
Dans le cas d'un traceur de mauvaise qualité, le pic de corrélation est plus étalé. Cela témoigne d'une difficulté à identifier précisément la position du traceur.
Le rapport entre la largeur du pic et la norme du vecteur vitesse est calculé. Le rapport obtenu est comparé au seuil de tolérance de 0.5 (paramètre rhomax = 0.5 par défaut) : si le rapport dépasse le seuil, alors la vitesse au point est rejetée.
Un seuil de tolérance tel que rhomax = 0.5 signifie que la largeur du pic ne doit pas représenter plus que la moitié (50%) de la norme de la vitesse calculée.
🔎 Approfondissements 🛠
Ce filtre analyse la distribution des corrélations autour du pic.
Soit r_{max}
la valeur du pic de corrélation. La largeur du pic est mesurée à 0.8r_{max}
(80% de la hauteur du pic).
L'aire A_r
(en pix²) autour du pic présentant une corrélation r
supérieure à 0.8r_{max}
est évaluée à l'aide d'un algorithme de croissance de région appliqué sur le champ de corrélation. L'algorithme est initialisé à la position du pic de corrélation et s'exécute avec la condition r \gt 0.8r_{max}
en considérant un voisinage V4 (4 voisins cardinaux).
L'algorithme de croissance de région permet d'identifier une région remplissant une condition définie autours d'un pixel de départ
Le rayon équivalent \rho
de la zone A_r
est calculé tel que :
\rho = \sqrt{\frac{A_r}{\pi}}
Le rayon \rho
est enfin comparé au produit de la norme du déplacement d
et du seuil de tolérance rhomax :
si \quad \rho > rho_{max}.d \rightarrow rejet
5. Distribution des vitesses
Paramètre | Valeurs par défaut | Description |
---|---|---|
nstdvel | 3 | facteur d'élargissement autour de la moyenne |
Le filtre sur la distribution des vitesses assure la cohérence temporelle des résultats en un point donné. L'ensemble des normes des vitesses au point (après passage des filtres antérieurs) sont utilisées pour déterminer la norme moyenne au point et son écart-type.
Pour chacun des pas de temps, si la norme s'écarte de plus de 3 écarts-types de la norme moyenne, alors la vitesse calculée est rejetée (paramètre n_std = 3 par défaut).
6. Dispersion angulaire
Paramètre | Valeurs par défaut | Description |
---|---|---|
circvarmax | 0.25 | Seuil sur la variance circulaire |
Le filtre de dispersion angulaire écarte les points présentant une dispersion trop importante des orientation des vitesses. Ce filtre est plus drastique que les précédents, il rejette directement toutes les vitesses au point.
Toutes les vitesses au point (après passage des filtres antérieurs) sont utilisées pour calculer la variance circulaire.
La variance circulaire varie entre 0 (orientations identiques) et 1 (orientations uniformément réparties).
Les points présentant une variance circulaire supérieure à un seuil de tolérance de 0.25 sont rejetés (paramètre circvarmax = 0.25 par défaut)
🔎 Approfondissements 🛠
La variance circulaire circvar
pour un échantillon de n
angles observés x_0, x_1,..., x_n
s'exprime telle que :
circvar = 1 - \mid z \mid = 1 - \mid \frac{1}{n} \sum_{k=1}^{n}{e^{ix_k}} \mid
Où |z|
est la longueur du nombre complexe z
et i
l'unité de la partie imaginaire.
La variance circulaire est finalement comparée au seuil de tolérance circvarmax :
si \quad circvar > circvar_{max} \rightarrow rejet
Les champs de vitesses instantanées filtrés sont stockés dans le dossier vel_filter. Le groupe de calque Résultats filtrés (F) est créé.
Il permet de visualiser les vitesses calculées pour les paires d’images sous forme de champ de vecteur (Vitesses F), de lignes de courant (Particules F., voir comment le calculer ici (voir comment le calculer ici) ou de tracé d’isocontours (Isosurfaces F).
Plus de détail sur la visualisation et le paramétrage des calques de vitesse ici. L'interface graphique permet de lier la visualisation des images et des vitesses calculées grâce au bouton Lie/délie les images et les vitesses..
📊 Moyenne des résultats
Le menu Post-traitement🡪 Moyenne des résultats instantanés filtrés lance l’interface de calcul de la moyenne/médiane.
La médiane temporelle des résultats est proposée par défaut. Il est possible de changer pour la moyenne temporelle des résultats avec la liste déroulante.
Les champs de vitesses filtrés à agréger sont ceux sélectionnés dans la liste (a priori, tous les résultats filtrés sont sélectionnés).
Le bouton Validation lance le calcul.
Le champ de vitesses moyenné est stocké dans le fichier outputs.dir/average_vel.out Le groupe de calque Résultats moyens (M) (pour vitesses de surface moyennées) est créé.
Il permet de visualiser les vitesses moyennées calculées sous forme de champ de vecteur (Vitesses M.), de lignes de courant (Particules M, voir comment le calculer ici voir comment le calculer ici) ou de tracé d’isocontours (Isosurfaces M). Plus de détail sur la visualisation et le paramétrage des calques de vitesse ici. L'interface graphique permet de lier la visualisation des images et des vitesses calculées grâce au bouton Lie/délie les images et les vitesses.
📈 Statistiques des résultats de vitesse
Le menu Post-traitement🡪 Afficher les statistiques résultats... affiche un résumé (min, max, moyenne, médiane, écart type) des résultats de vitesse bruts et filtrés : composantes Vx et Vy, niveau de corrélation (CORREL), norme (NORME), rotationnel (OMEGA, pas encore implémenté : affiche la valeur 4), divergence (DIVERG, pas encore implémenté : affiche la valeur 5). Les statistiques peuvent être calculées sur les résultats de toutes les paires d'images ou pour une paire d'images donnée.