Name

ST_GeometricMedian — Renvoie la médiane géométrique d'un MultiPoint.

Synopsis

geometry ST_GeometricMedian ( geometry geom, float8 tolerance = NULL, int max_iter = 10000, boolean fail_if_not_converged = false);

Description

Calcule la médiane géométrique approximative d'une géométrie MultiPoint à l'aide de l'algorithme de Weiszfeld. La médiane géométrique est le point qui minimise la somme des distances aux points d'entrée. Elle fournit une mesure de centralité moins sensible aux points aberrants que le centroïde (centre de masse).

L'algorithme itère jusqu'à ce que la variation de la distance entre les itérations successives soit inférieure au paramètre tolerance fourni. Si cette condition n'est pas remplie après max_iterations itérations, la fonction produit une erreur et se termine, à moins que fail_fif_not_converged ne soit fixé à false (par défaut).

Si l'argument tolerance n'est pas fourni, la valeur de la tolérance est calculée sur la base de l'étendue de la géométrie d'entrée.

Si elle est présente, les valeurs M des points d'entrée sont interprétées comme leurs poids relatifs.

Disponibilité : 2.3.0

Amélioré : 2.5.0 Ajout de la prise en charge de M comme poids des points.

Cette fonction prend en charge la 3D et ne supprime pas l'indice z.

Cette fonction prend en charge les coordonnées M.

Exemples

Comparaison de la médiane géométrique (rouge) et du centroïde (turquoise) d'un MultiPoint.

WITH test AS (
SELECT 'MULTIPOINT((10 10), (10 40), (40 10), (190 190))'::geometry geom)
SELECT
  ST_AsText(ST_Centroid(geom)) centroid,
  ST_AsText(ST_GeometricMedian(geom)) median
FROM test;

      centroid      |                 median
--------------------+----------------------------------------
   POINT(62.5 62.5) | POINT(25.01778421249728 25.01778421249728)
(1 row)
      

Voir aussi

ST_Centroid