Name

ST_GeometricMedian — Returnerar den geometriska medianen för en MultiPoint.

Synopsis

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

Beskrivning

Beräknar den ungefärliga geometriska medianen i en MultiPoint-geometri med hjälp av Weiszfeld-algoritmen. Den geometriska medianen är den punkt som minimerar summan av avstånden till indatapunkterna. Den ger ett centralitetsmått som är mindre känsligt för avvikande punkter än centroiden (masscentrum).

Algoritmen itererar tills avståndsförändringen mellan på varandra följande iterationer är mindre än den angivna toleransparametern. Om detta villkor inte har uppfyllts efter max_iterations iterationer, producerar funktionen ett fel och avslutas, såvida inte fail_if_not_converged är satt till false (standard).

Om inget toleransargument anges beräknas toleransvärdet baserat på omfattningen av indatageometrin.

Om den finns tolkas M-värdena för inmatningspunkterna som deras relativa vikter.

Tillgänglighet: 2.3.0

Förbättrad: 2.5.0 Lagt till stöd för M som vikt för punkter.

Denna funktion stöder 3d och kommer inte att tappa z-index.

Denna funktion stöder M-koordinater.

Exempel

Jämförelse av den geometriska medianen (röd) och centroiden (turkos) för en 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)
      

Se även

ST_Centroid