แพ็กเกจ ee.Clusterer
จะจัดการการจัดประเภทแบบไม่ควบคุมดูแล (หรือการจัดกลุ่ม) ใน Earth Engine ปัจจุบันอัลกอริทึมเหล่านี้อิงตามอัลกอริทึมที่มีชื่อเดียวกันใน Weka
ดูรายละเอียดเพิ่มเติมเกี่ยวกับ Clusterer
แต่ละรายการได้ในเอกสารอ้างอิง
คลัสเตอร์ไรเซอร์จะใช้ในลักษณะเดียวกับตัวแยกประเภทใน Earth Engine เวิร์กโฟลว์ทั่วไปในการสร้างคลัสเตอร์มีดังนี้
- รวบรวมฟีเจอร์ที่มีพร็อพเพอร์ตี้ตัวเลขเพื่อค้นหาคลัสเตอร์
- สร้างอินสแตนซ์คลัสเตอร์ ตั้งค่าพารามิเตอร์ หากจําเป็น
- ฝึกคลัสเตอร์โดยใช้ข้อมูลการฝึก
- ใช้คลัสเตอร์กับรูปภาพหรือคอลเล็กชันองค์ประกอบ
- ติดป้ายกำกับคลัสเตอร์
ข้อมูลการฝึกอบรมคือ FeatureCollection
ที่มีพร็อพเพอร์ตี้ที่จะส่งไปยังคลัสเตอร์ Clusterer
ไม่มีค่าคลาสอินพุต ซึ่งต่างจากตัวแยกประเภท ข้อมูลสําหรับขั้นตอนการฝึกและการใช้ควรมีค่าเท่ากันเช่นเดียวกับตัวแยกประเภท เมื่อใช้คลัสเตอร์ที่ผ่านการฝึกอบรมกับรูปภาพหรือตาราง ระบบจะกำหนดรหัสคลัสเตอร์แบบจำนวนเต็มให้กับแต่ละพิกเซลหรือองค์ประกอบ
ต่อไปนี้เป็นตัวอย่างการสร้างและใช้ 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 ย่าน * 100,000 จุดอาจทำให้เกิดข้อผิดพลาด "หน่วยความจำไม่เพียงพอ"
- เว็บแมงมุมอาจใช้เวลานานและสร้างคลัสเตอร์จํานวนมาก
- คลัสเตอร์เอาต์พุตและรหัสของคลัสเตอร์จะขึ้นอยู่กับอัลกอริทึมและอินพุต