I have problems with the ST_ClusterDBSCAN function in PostGIS. I try to group points derived from lines with a maximum distance of 15 meters from each other and a minimum cluster size of 4. This worked fine in the past but while using the function now, it returns in most cases of my dataset NULL as CLUSTER_ID even points are in near proximity.
Here is one example:
WITH sample_points AS(
SELECT
(ST_Dump(
ST_GeomFromText(
'MULTIPOINT(0 0,10 10,20 20,30 30,50 50,60 60,100 0,110 0,120 0,130 0,140 0)', 3763)
)
).geom
)
SELECT ST_ClusterDBSCAN(geom, eps:=15, minpoints :=4) over() AS cluster_id
FROM sample_points;
I get as result only NULL
values.
cluster_id
NULL
NULL
NULL
NULL
[...]
This happens on my dataset, using above code or even in QGIS running DBSCAN clustering tool on manually created point layer. Am I getting something wrong about the function or why does it not work properly?
Running Windows10, PostgreSQL 15.1, PostGIS 3.3.2.3.3.2, QGIS 3.28.0