ee.Clusterer
패키지는 Earth Engine에서 감독되지 않는 분류 (또는 클러스터링)를 처리합니다. 이러한 알고리즘은 현재 Weka에서 동일한 이름의 알고리즘을 기반으로 합니다.
각 Clusterer
에 관한 자세한 내용은 참조 문서를 참고하세요.
클러스터링은 Earth Engine의 분류기와 동일한 방식으로 사용됩니다. 클러스터링의 일반적인 워크플로는 다음과 같습니다.
- 클러스터를 찾을 숫자 속성이 있는 지형지물을 조합합니다.
- 클러스터러를 인스턴스화합니다. 필요한 경우 매개변수를 설정합니다.
- 학습 데이터를 사용하여 클러스터링 도구를 학습시킵니다.
- 이미지 또는 지형지물 컬렉션에 클러스터링 도구를 적용합니다.
- 클러스터에 라벨을 지정합니다.
학습 데이터는 클러스터링 도구에 입력할 속성이 있는 FeatureCollection
입니다. 분류기와 달리 Clusterer
에는 입력 클래스 값이 없습니다. 분류기와 마찬가지로 학습 및 적용 단계의 데이터는 값의 개수가 동일해야 합니다. 학습된 클러스터링 도구를 이미지 또는 표에 적용하면 각 픽셀 또는 지형지물에 정수 클러스터 ID가 할당됩니다.
다음은 ee.Clusterer
를 빌드하고 사용하는 간단한 예입니다.
코드 편집기 (JavaScript)
// Define a region in which to generate a segmented map. var region = ee.Geometry.Rectangle(29.7, 30, 32.5, 31.7); // Load a Landsat composite for input. var input = ee.ImageCollection('LANDSAT/COMPOSITES/C02/T1_L2_32DAY') .filterDate('2001-05', '2001-06') .first() .clip(region); // Display the sample region. Map.setCenter(31.5, 31.0, 8); Map.addLayer(ee.Image().paint(region, 0, 2), {}, 'region'); // Make the training dataset. var training = input.sample({ region: region, scale: 30, numPixels: 5000 }); // Instantiate the clusterer and train it. var clusterer = ee.Clusterer.wekaKMeans(15).train(training); // Cluster the input using the trained clusterer. var result = input.cluster(clusterer); // Display the clusters with random colors. Map.addLayer(result.randomVisualizer(), {}, 'clusters');
import ee import geemap.core as geemap
Colab (Python)
# Define a region in which to generate a segmented map. region = ee.Geometry.Rectangle(29.7, 30, 32.5, 31.7) # Load a Landsat composite for input. input = ( ee.ImageCollection('LANDSAT/COMPOSITES/C02/T1_L2_32DAY') .filterDate('2001-05', '2001-06') .first() .clip(region) ) # Display the sample region. m = geemap.Map() m.set_center(31.5, 31.0, 8) m.add_layer(ee.Image().paint(region, 0, 2), {}, 'region') # Make the training dataset. training = input.sample(region=region, scale=30, numPixels=5000) # Instantiate the clusterer and train it. clusterer = ee.Clusterer.wekaKMeans(15).train(training) # Cluster the input using the trained clusterer. result = input.cluster(clusterer) # Display the clusters with random colors. m.add_layer(result.randomVisualizer(), {}, 'clusters') m
참고:
- 동일한 입력은 항상 동일한 출력을 생성해야 하지만 입력 순서를 변경하면 결과가 달라질 수 있습니다.
- 밴드 10개 * 점 10만 개로 학습하면 메모리 부족 오류가 발생할 수 있습니다.
- Cobweb은 완료하는 데 시간이 오래 걸리고 다수의 클러스터를 생성할 수 있습니다.
- 출력 클러스터와 클러스터 ID는 알고리즘과 입력에 따라 다릅니다.