Skip to content

Commit

Permalink
[processing] Add a cluster size attribute to the dbscan cluster algor…
Browse files Browse the repository at this point in the history
…ithm
  • Loading branch information
nirvn committed Aug 26, 2020
1 parent a3ee71f commit 5e25c06
Show file tree
Hide file tree
Showing 10 changed files with 83 additions and 9 deletions.
10 changes: 10 additions & 0 deletions python/plugins/processing/tests/testdata/expected/dbscan_5_2.gml
Expand Up @@ -16,69 +16,79 @@
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>-0.426063829787234,2.19255319148936</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>5</ogr:id>
<ogr:CLUSTER_ID>1</ogr:CLUSTER_ID>
<ogr:CLUSTER_SIZE>7</ogr:CLUSTER_SIZE>
</ogr:dbscan_5_2>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_5_2 fid="points_wighted.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>1.45053191489362,1.96914893617021</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>5</ogr:id>
<ogr:CLUSTER_ID>1</ogr:CLUSTER_ID>
<ogr:CLUSTER_SIZE>7</ogr:CLUSTER_SIZE>
</ogr:dbscan_5_2>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_5_2 fid="points_wighted.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>1.40585106382979,0.807446808510639</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>5</ogr:id>
<ogr:CLUSTER_ID>1</ogr:CLUSTER_ID>
<ogr:CLUSTER_SIZE>7</ogr:CLUSTER_SIZE>
</ogr:dbscan_5_2>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_5_2 fid="points_wighted.3">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>0.199468085106383,-0.443617021276596</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>5</ogr:id>
<ogr:CLUSTER_ID>1</ogr:CLUSTER_ID>
<ogr:CLUSTER_SIZE>7</ogr:CLUSTER_SIZE>
</ogr:dbscan_5_2>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_5_2 fid="points_wighted.4">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3.63989361702128,0.315957446808511</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>4</ogr:id>
<ogr:CLUSTER_ID>1</ogr:CLUSTER_ID>
<ogr:CLUSTER_SIZE>7</ogr:CLUSTER_SIZE>
</ogr:dbscan_5_2>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_5_2 fid="points_wighted.5">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>4.28776595744681,-0.823404255319149</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>1</ogr:id>
<ogr:CLUSTER_ID>1</ogr:CLUSTER_ID>
<ogr:CLUSTER_SIZE>7</ogr:CLUSTER_SIZE>
</ogr:dbscan_5_2>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_5_2 fid="points_wighted.6">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5.04734042553191,0.070212765957447</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>4</ogr:id>
<ogr:CLUSTER_ID>1</ogr:CLUSTER_ID>
<ogr:CLUSTER_SIZE>7</ogr:CLUSTER_SIZE>
</ogr:dbscan_5_2>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_5_2 fid="points_wighted.7">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6.90159574468085,0.40531914893617</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>5</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_5_2>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_5_2 fid="points_wighted.8">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>9.09095744680851,-2.61063829787234</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>6</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_5_2>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_5_2 fid="points_wighted.9">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5.04734042553191,4.22553191489362</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>8</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_5_2>
</gml:featureMember>
</ogr:FeatureCollection>
Expand Up @@ -30,6 +30,13 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CLUSTER_SIZE" nillable="true" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:totalDigits value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
Expand Down
Expand Up @@ -16,69 +16,79 @@
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>-0.426063829787234,2.19255319148936</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>5</ogr:id>
<ogr:CLUSTER_ID>1</ogr:CLUSTER_ID>
<ogr:CLUSTER_SIZE>4</ogr:CLUSTER_SIZE>
</ogr:dbscan_multiple_clusters>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_multiple_clusters fid="points_wighted.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>1.45053191489362,1.96914893617021</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>5</ogr:id>
<ogr:CLUSTER_ID>1</ogr:CLUSTER_ID>
<ogr:CLUSTER_SIZE>4</ogr:CLUSTER_SIZE>
</ogr:dbscan_multiple_clusters>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_multiple_clusters fid="points_wighted.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>1.40585106382979,0.807446808510639</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>5</ogr:id>
<ogr:CLUSTER_ID>1</ogr:CLUSTER_ID>
<ogr:CLUSTER_SIZE>4</ogr:CLUSTER_SIZE>
</ogr:dbscan_multiple_clusters>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_multiple_clusters fid="points_wighted.3">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>0.199468085106383,-0.443617021276596</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>5</ogr:id>
<ogr:CLUSTER_ID>1</ogr:CLUSTER_ID>
<ogr:CLUSTER_SIZE>4</ogr:CLUSTER_SIZE>
</ogr:dbscan_multiple_clusters>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_multiple_clusters fid="points_wighted.4">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3.63989361702128,0.315957446808511</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>4</ogr:id>
<ogr:CLUSTER_ID>2</ogr:CLUSTER_ID>
<ogr:CLUSTER_SIZE>4</ogr:CLUSTER_SIZE>
</ogr:dbscan_multiple_clusters>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_multiple_clusters fid="points_wighted.5">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>4.28776595744681,-0.823404255319149</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>1</ogr:id>
<ogr:CLUSTER_ID>2</ogr:CLUSTER_ID>
<ogr:CLUSTER_SIZE>4</ogr:CLUSTER_SIZE>
</ogr:dbscan_multiple_clusters>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_multiple_clusters fid="points_wighted.6">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5.04734042553191,0.070212765957447</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>4</ogr:id>
<ogr:CLUSTER_ID>2</ogr:CLUSTER_ID>
<ogr:CLUSTER_SIZE>4</ogr:CLUSTER_SIZE>
</ogr:dbscan_multiple_clusters>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_multiple_clusters fid="points_wighted.7">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6.90159574468085,0.40531914893617</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>5</ogr:id>
<ogr:CLUSTER_ID>2</ogr:CLUSTER_ID>
<ogr:CLUSTER_SIZE>4</ogr:CLUSTER_SIZE>
</ogr:dbscan_multiple_clusters>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_multiple_clusters fid="points_wighted.8">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>9.09095744680851,-2.61063829787234</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>6</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_multiple_clusters>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_multiple_clusters fid="points_wighted.9">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5.04734042553191,4.22553191489362</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>8</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_multiple_clusters>
</gml:featureMember>
</ogr:FeatureCollection>
Expand Up @@ -30,6 +30,13 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CLUSTER_SIZE" nillable="true" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:totalDigits value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
Expand Down
Expand Up @@ -16,69 +16,79 @@
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>-0.426063829787234,2.19255319148936</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>5</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_no_clusters>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_no_clusters fid="points_wighted.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>1.45053191489362,1.96914893617021</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>5</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_no_clusters>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_no_clusters fid="points_wighted.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>1.40585106382979,0.807446808510639</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>5</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_no_clusters>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_no_clusters fid="points_wighted.3">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>0.199468085106383,-0.443617021276596</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>5</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_no_clusters>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_no_clusters fid="points_wighted.4">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3.63989361702128,0.315957446808511</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>4</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_no_clusters>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_no_clusters fid="points_wighted.5">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>4.28776595744681,-0.823404255319149</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>1</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_no_clusters>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_no_clusters fid="points_wighted.6">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5.04734042553191,0.070212765957447</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>4</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_no_clusters>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_no_clusters fid="points_wighted.7">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6.90159574468085,0.40531914893617</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>5</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_no_clusters>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_no_clusters fid="points_wighted.8">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>9.09095744680851,-2.61063829787234</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>6</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_no_clusters>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_no_clusters fid="points_wighted.9">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5.04734042553191,4.22553191489362</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>8</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_no_clusters>
</gml:featureMember>
</ogr:FeatureCollection>
Expand Up @@ -30,6 +30,13 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CLUSTER_SIZE" nillable="true" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:totalDigits value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
Expand Down
Expand Up @@ -16,69 +16,79 @@
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>-0.426063829787234,2.19255319148936</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>5</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_star_5_2>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_star_5_2 fid="points_wighted.1">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>1.45053191489362,1.96914893617021</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>5</ogr:id>
<ogr:CLUSTER_ID>1</ogr:CLUSTER_ID>
<ogr:CLUSTER_SIZE>3</ogr:CLUSTER_SIZE>
</ogr:dbscan_star_5_2>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_star_5_2 fid="points_wighted.2">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>1.40585106382979,0.807446808510639</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>5</ogr:id>
<ogr:CLUSTER_ID>1</ogr:CLUSTER_ID>
<ogr:CLUSTER_SIZE>3</ogr:CLUSTER_SIZE>
</ogr:dbscan_star_5_2>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_star_5_2 fid="points_wighted.3">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>0.199468085106383,-0.443617021276596</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>5</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_star_5_2>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_star_5_2 fid="points_wighted.4">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>3.63989361702128,0.315957446808511</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>4</ogr:id>
<ogr:CLUSTER_ID>1</ogr:CLUSTER_ID>
<ogr:CLUSTER_SIZE>3</ogr:CLUSTER_SIZE>
</ogr:dbscan_star_5_2>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_star_5_2 fid="points_wighted.5">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>4.28776595744681,-0.823404255319149</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>1</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_star_5_2>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_star_5_2 fid="points_wighted.6">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5.04734042553191,0.070212765957447</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>4</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_star_5_2>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_star_5_2 fid="points_wighted.7">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>6.90159574468085,0.40531914893617</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>5</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_star_5_2>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_star_5_2 fid="points_wighted.8">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>9.09095744680851,-2.61063829787234</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>6</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_star_5_2>
</gml:featureMember>
<gml:featureMember>
<ogr:dbscan_star_5_2 fid="points_wighted.9">
<ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>5.04734042553191,4.22553191489362</gml:coordinates></gml:Point></ogr:geometryProperty>
<ogr:id>8</ogr:id>
<ogr:CLUSTER_ID xsi:nil="true"/>
<ogr:CLUSTER_SIZE xsi:nil="true"/>
</ogr:dbscan_star_5_2>
</gml:featureMember>
</ogr:FeatureCollection>
Expand Up @@ -30,6 +30,13 @@
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CLUSTER_SIZE" nillable="true" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:totalDigits value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
Expand Down

0 comments on commit 5e25c06

Please sign in to comment.