AI-generated Key Takeaways
-
The
FeatureCollection.clustermethod clusters features in a collection and adds a new column with the assigned cluster number. -
This method requires a FeatureCollection as input, a Clusterer, and an optional output name for the new property.
-
The output of the method is a FeatureCollection with the added cluster information.
| Usage | Returns |
|---|---|
FeatureCollection.
cluster
(clusterer, outputName
)
|
FeatureCollection |
| Argument | Type | Details |
|---|---|---|
|
this:
features
|
FeatureCollection | The collection of features to cluster. Each feature must contain all the properties in the clusterer's schema. |
clusterer
|
Clusterer | The clusterer to use. |
outputName
|
String, default: "cluster" | The name of the output property to be added. |
Examples
Code Editor (JavaScript)
// Import a Sentinel-2 surface reflectance image. var image = ee . Image ( 'COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG' ); // Get the image geometry to define the geographical bounds of a point sample. var imageBounds = image . geometry (); // Sample the image at a set of random points; a feature collection is returned. var pointSampleFc = image . sample ( { region : imageBounds , scale : 20 , numPixels : 1000 , geometries : true }); // Instantiate a k-means clusterer and train it. var clusterer = ee . Clusterer . wekaKMeans ( 5 ). train ( pointSampleFc ); // Cluster the input using the trained clusterer; optionally specify the name // of the output cluster ID property. var clusteredFc = pointSampleFc . cluster ( clusterer , 'spectral_cluster' ); print ( 'Note added "spectral_cluster" property for an example feature' , clusteredFc . first (). toDictionary ()); // Visualize the clusters by applying a unique color to each cluster ID. var palette = ee . List ([ '8dd3c7' , 'ffffb3' , 'bebada' , 'fb8072' , '80b1d3' ]); var clusterVis = clusteredFc . map ( function ( feature ) { return feature . set ( 'style' , { color : palette . get ( feature . get ( 'spectral_cluster' )), }); }). style ({ styleProperty : 'style' }); // Display the points colored by cluster ID with the S2 image. Map . setCenter ( - 122.35 , 37.47 , 9 ); Map . addLayer ( image , { bands : [ 'B4' , 'B3' , 'B2' ], min : 0 , max : 1500 }, 'S2 image' ); Map . addLayer ( clusterVis , null , 'Clusters' );
import ee import geemap.core as geemap
Colab (Python)
# Import a Sentinel-2 surface reflectance image. image = ee . Image ( 'COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG' ) # Get the image geometry to define the geographical bounds of a point sample. image_bounds = image . geometry () # Sample the image at a set of random points a feature collection is returned. point_sample_fc = image . sample ( region = image_bounds , scale = 20 , numPixels = 1000 , geometries = True ) # Instantiate a k-means clusterer and train it. clusterer = ee . Clusterer . wekaKMeans ( 5 ) . train ( point_sample_fc ) # Cluster the input using the trained clusterer optionally specify the name # of the output cluster ID property. clustered_fc = point_sample_fc . cluster ( clusterer , 'spectral_cluster' ) display ( 'Note added "spectral_cluster" property for an example feature' , clustered_fc . first () . toDictionary (), ) # Visualize the clusters by applying a unique color to each cluster ID. palette = ee . List ([ '8dd3c7' , 'ffffb3' , 'bebada' , 'fb8072' , '80b1d3' ]) cluster_vis = clustered_fc . map ( lambda feature : feature . set ( 'style' , { 'color' : palette . get ( feature . get ( 'spectral_cluster' ))} ) ) . style ( styleProperty = 'style' ) # Display the points colored by cluster ID with the S2 image. m = geemap . Map () m . set_center ( - 122.35 , 37.47 , 9 ) m . add_layer ( image , { 'bands' : [ 'B4' , 'B3' , 'B2' ], 'min' : 0 , 'max' : 1500 }, 'S2 image' ) m . add_layer ( cluster_vis , None , 'Clusters' ) m

