공지사항:
2025년 4월 15일 전에 Earth Engine 사용을 위해 등록된 모든 비상업용 프로젝트는 Earth Engine 액세스를 유지하기 위해
비상업용 자격 요건을 인증해야 합니다.
ee.FeatureCollection.cluster
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
는 컬렉션의 각 특성을 클러스터링하여 클러스터 번호가 포함된 새 열을 각 특성에 추가합니다.
사용 | 반환 값 |
---|
FeatureCollection.cluster(clusterer, outputName) | FeatureCollection |
인수 | 유형 | 세부정보 |
---|
다음과 같은 경우: features | FeatureCollection | 클러스터링할 특성의 컬렉션입니다. 각 기능에는 클러스터러의 스키마에 있는 모든 속성이 포함되어야 합니다. |
clusterer | 클러스터러 | 사용할 클러스터러입니다. |
outputName | 문자열, 기본값: 'cluster' | 추가할 출력 속성의 이름입니다. |
예
코드 편집기 (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');
Python 설정
Python API 및 geemap
를 사용한 대화형 개발에 관한 자세한 내용은
Python 환경 페이지를 참고하세요.
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
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-07-26(UTC)
[null,null,["최종 업데이트: 2025-07-26(UTC)"],[[["\u003cp\u003eGroups features within a collection into clusters based on a provided clusterer.\u003c/p\u003e\n"],["\u003cp\u003eAssigns each feature a cluster ID, stored in a new property with a user-defined name (defaults to "cluster").\u003c/p\u003e\n"],["\u003cp\u003eRequires a trained clusterer and a FeatureCollection where each feature contains the necessary properties for clustering.\u003c/p\u003e\n"],["\u003cp\u003eReturns a new FeatureCollection with the added cluster ID property.\u003c/p\u003e\n"]]],[],null,["# ee.FeatureCollection.cluster\n\nClusters each feature in a collection, adding a new column to each feature containing the cluster number to which it has been assigned.\n\n\u003cbr /\u003e\n\n| Usage | Returns |\n|--------------------------------------------------------|-------------------|\n| FeatureCollection.cluster`(clusterer, `*outputName*`)` | FeatureCollection |\n\n| Argument | Type | Details |\n|------------------|----------------------------|----------------------------------------------------------------------------------------------------------------|\n| this: `features` | FeatureCollection | The collection of features to cluster. Each feature must contain all the properties in the clusterer's schema. |\n| `clusterer` | Clusterer | The clusterer to use. |\n| `outputName` | String, default: \"cluster\" | The name of the output property to be added. |\n\nExamples\n--------\n\n### Code Editor (JavaScript)\n\n```javascript\n// Import a Sentinel-2 surface reflectance image.\nvar image = ee.Image('COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG');\n\n// Get the image geometry to define the geographical bounds of a point sample.\nvar imageBounds = image.geometry();\n\n// Sample the image at a set of random points; a feature collection is returned.\nvar pointSampleFc = image.sample(\n {region: imageBounds, scale: 20, numPixels: 1000, geometries: true});\n\n// Instantiate a k-means clusterer and train it.\nvar clusterer = ee.Clusterer.wekaKMeans(5).train(pointSampleFc);\n\n// Cluster the input using the trained clusterer; optionally specify the name\n// of the output cluster ID property.\nvar clusteredFc = pointSampleFc.cluster(clusterer, 'spectral_cluster');\n\nprint('Note added \"spectral_cluster\" property for an example feature',\n clusteredFc.first().toDictionary());\n\n// Visualize the clusters by applying a unique color to each cluster ID.\nvar palette = ee.List(['8dd3c7', 'ffffb3', 'bebada', 'fb8072', '80b1d3']);\nvar clusterVis = clusteredFc.map(function(feature) {\n return feature.set('style', {\n color: palette.get(feature.get('spectral_cluster')),\n });\n}).style({styleProperty: 'style'});\n\n// Display the points colored by cluster ID with the S2 image.\nMap.setCenter(-122.35, 37.47, 9);\nMap.addLayer(image, {bands: ['B4', 'B3', 'B2'], min: 0, max: 1500}, 'S2 image');\nMap.addLayer(clusterVis, null, 'Clusters');\n```\nPython setup\n\nSee the [Python Environment](/earth-engine/guides/python_install) page for information on the Python API and using\n`geemap` for interactive development. \n\n```python\nimport ee\nimport geemap.core as geemap\n```\n\n### Colab (Python)\n\n```python\n# Import a Sentinel-2 surface reflectance image.\nimage = ee.Image('COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG')\n\n# Get the image geometry to define the geographical bounds of a point sample.\nimage_bounds = image.geometry()\n\n# Sample the image at a set of random points a feature collection is returned.\npoint_sample_fc = image.sample(\n region=image_bounds, scale=20, numPixels=1000, geometries=True\n)\n\n# Instantiate a k-means clusterer and train it.\nclusterer = ee.Clusterer.wekaKMeans(5).train(point_sample_fc)\n\n# Cluster the input using the trained clusterer optionally specify the name\n# of the output cluster ID property.\nclustered_fc = point_sample_fc.cluster(clusterer, 'spectral_cluster')\n\ndisplay(\n 'Note added \"spectral_cluster\" property for an example feature',\n clustered_fc.first().toDictionary(),\n)\n\n# Visualize the clusters by applying a unique color to each cluster ID.\npalette = ee.List(['8dd3c7', 'ffffb3', 'bebada', 'fb8072', '80b1d3'])\ncluster_vis = clustered_fc.map(\n lambda feature: feature.set(\n 'style', {'color': palette.get(feature.get('spectral_cluster'))}\n )\n).style(styleProperty='style')\n\n# Display the points colored by cluster ID with the S2 image.\nm = geemap.Map()\nm.set_center(-122.35, 37.47, 9)\nm.add_layer(\n image, {'bands': ['B4', 'B3', 'B2'], 'min': 0, 'max': 1500}, 'S2 image'\n)\nm.add_layer(cluster_vis, None, 'Clusters')\nm\n```"]]