تعالج حزمة 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 ألف نقطة إلى ظهور خطأ "نفاد الذاكرة".
- قد يستغرق إكمال شبكة العنكبوت وقتًا طويلاً ويمكن أن ينتج عنها عدد كبير من المجموعات.
- تعتمد المجموعات الناتجة ومستندات التعريف الخاصة بها على الخوارزمية والمدخلات.