Tous les produits
Search
Centre de documentation

ApsaraDB RDS:ST_ClusterDBSCAN

Dernière mise à jour :Sep 02, 2026

Fonction de fenêtrage qui attribue un identifiant de cluster à chaque objet géométrique en utilisant l'algorithme DBSCAN (clustering spatial basé sur la densité avec gestion du bruit) en 2D.

Syntaxe

  • Syntaxe 1

    integer ST_ClusterDBSCAN(geometry winset geom, float8 eps, integer minpoints);
  • Syntaxe 2

    integer ST_ClusterDBSCANSpheroid(geometry winset geom, float8 eps, integer minpoints);

Paramètres

Paramètre Description
geom L'objet géométrique à regrouper en clusters.
eps La distance minimale que vous souhaitez spécifier.
minpoints Le nombre minimal d'objets géométriques devant se trouver dans la distance minimale spécifiée par le paramètre eps. Ce paramètre permet d'identifier si un objet géométrique constitue l'objet central (core) d'un cluster.

Description

Contrairement à ST_ClusterKMeans, ST_ClusterDBSCAN ne nécessite pas de spécifier le nombre de clusters. Il déduit les clusters à partir de la distance et de la densité que vous définissez.

Un objet géométrique est ajouté à un cluster s'il remplit l'une des conditions suivantes :

  • Au moins minpoints objets se trouvent dans un rayon de eps autour de l'objet géométrique. Dans ce cas, l'objet est un objet géométrique central (core) du cluster.

  • Un objet géométrique central se trouve dans un rayon de eps autour de l'objet géométrique. Dans ce cas, l'objet est un objet géométrique frontière (boundary) du cluster.

Un objet géométrique frontière peut se situer dans un rayon de eps d'objets géométriques centraux appartenant à plusieurs clusters. Lorsque cela se produit, l'objet géométrique frontière est attribué aléatoirement à l'un de ces clusters, et le cluster résultant peut contenir moins d'objets que minpoints.

Si un objet géométrique ne remplit aucune de ces conditions, il reçoit un identifiant de cluster NULL.

Calcul de la distance :

  • Syntaxe 1 (ST_ClusterDBSCAN) : utilise la distance euclidienne. La valeur eps est interprétée comme la distance euclidienne entre les coordonnées.

  • Syntaxe 2 (ST_ClusterDBSCANSpheroid) : utilise la longueur d'un objet géométrique sur un ellipsoïde. Lorsque la géométrie possède un identifiant de référence spatiale (SRID) exprimé en longitude et latitude, le clustering est effectué dans le système de coordonnées du SRID, les distances étant mesurées en mètres.

Exemples

SELECT ST_ClusterDBSCAN(geom, 2, 1) OVER (), st_AsText(geom)
FROM (
    SELECT unnest(ARRAY[
        'POINT (0 0)'::geometry,
        'POINT(1 1)'::geometry,
        'POINT (-1 -1)'::geometry,
        'POINT (-3 -3)'::geometry
    ]) AS geom
) AS test;

Résultat :

 st_clusterdbscan |  st_astext
------------------+--------------
                0 | POINT(0 0)
                0 | POINT(1 1)
                0 | POINT(-1 -1)
                1 | POINT(-3 -3)
(4 rows)