Duyuru:
15 Nisan 2025'ten önce Earth Engine'i kullanmak için kaydedilen tüm ticari olmayan projelerin erişimlerini sürdürebilmeleri için
ticari olmayan uygunluklarını doğrulamaları gerekir. 26 Eylül 2025'e kadar doğrulama yapmazsanız erişiminiz bekletilebilir.
ee.Classifier.smileKNN
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Boş bir k-NN sınıflandırıcı oluşturur.
K en yakın komşu algoritması (k-NN), nesneleri komşularının çoğunluk oylarıyla sınıflandırma yöntemidir. Nesne, en yakın k komşusu arasında en yaygın olan sınıfa atanır (k, genellikle küçük ve tek olan pozitif bir tam sayıdır).
| Kullanım | İadeler |
|---|
ee.Classifier.smileKNN(k, searchMethod, metric) | Sınıflandırıcı |
| Bağımsız Değişken | Tür | Ayrıntılar |
|---|
k | Tamsayı, varsayılan: 1 | Sınıflandırma için komşu sayısı. |
searchMethod | Dize, varsayılan: "AUTO" | Arama yöntemi. [AUTO, LINEAR_SEARCH, KD_TREE, COVER_TREE] geçerli değerlerdir.
AUTO, boyut sayısına bağlı olarak KD_TREE ve COVER_TREE arasında seçim yapar. Mesafe beraberlikleri ve olasılık değerleri için farklı arama yöntemleri arasında sonuçlar değişebilir. Performans ve sonuçlar değişiklik gösterebileceğinden SMILE'ın dokümanlarına ve diğer kaynaklara göz atın. |
metric | Dize, varsayılan: "EUCLIDEAN" | Kullanılacak mesafe metriği. NOT: KD_TREE (ve düşük boyutlar için AUTO) seçilen metriği kullanmaz. Seçenekler:
"EUCLIDEAN": Öklid uzaklığı.
"MAHALANOBIS": Mahalanobis uzaklığı.
"MANHATTAN": Manhattan uzaklığı.
"BRAYCURTIS": Bray-Curtis mesafesi. |
Örnekler
Kod Düzenleyici (JavaScript)
// Cloud masking for Landsat 8.
function maskL8sr(image) {
var qaMask = image.select('QA_PIXEL').bitwiseAnd(parseInt('11111', 2)).eq(0);
var saturationMask = image.select('QA_RADSAT').eq(0);
// Apply the scaling factors to the appropriate bands.
var opticalBands = image.select('SR_B.').multiply(0.0000275).add(-0.2);
var thermalBands = image.select('ST_B.*').multiply(0.00341802).add(149.0);
// Replace the original bands with the scaled ones and apply the masks.
return image.addBands(opticalBands, null, true)
.addBands(thermalBands, null, true)
.updateMask(qaMask)
.updateMask(saturationMask);
}
// Map the function over one year of data.
var collection = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
.filterDate('2020-01-01', '2021-01-01')
.map(maskL8sr);
// Make a median composite.
var composite = collection.median();
// Demonstration labels.
var labels = ee.FeatureCollection('projects/google/demo_landcover_labels')
// Use these bands for classification.
var bands = ['SR_B2', 'SR_B3', 'SR_B4', 'SR_B5', 'SR_B6', 'SR_B7'];
// The name of the property on the points storing the class label.
var classProperty = 'landcover';
// Sample the composite to generate training data. Note that the
// class label is stored in the 'landcover' property.
var training = composite.select(bands).sampleRegions(
{collection: labels, properties: [classProperty], scale: 30});
// Train a kNN classifier.
var classifier = ee.Classifier.smileKNN(5).train({
features: training,
classProperty: classProperty,
});
// Classify the composite.
var classified = composite.classify(classifier);
Map.setCenter(-122.184, 37.796, 12);
Map.addLayer(classified, {min: 0, max: 2, palette: ['red', 'green', 'blue']});
Python kurulumu
Python API'si ve etkileşimli geliştirme için geemap kullanımı hakkında bilgi edinmek üzere
Python Ortamı sayfasına bakın.
import ee
import geemap.core as geemap
Colab (Python)
# Cloud masking for Landsat 8.
def mask_l8_sr(image):
qa_mask = image.select('QA_PIXEL').bitwiseAnd(int('11111', 2)).eq(0)
saturation_mask = image.select('QA_RADSAT').eq(0)
# Apply the scaling factors to the appropriate bands.
optical_bands = image.select('SR_B.').multiply(0.0000275).add(-0.2)
thermal_bands = image.select('ST_B.*').multiply(0.00341802).add(149.0)
# Replace the original bands with the scaled ones and apply the masks.
return (
image.addBands(optical_bands, None, True)
.addBands(thermal_bands, None, True)
.updateMask(qa_mask)
.updateMask(saturation_mask)
)
# Map the function over one year of data.
collection = (
ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
.filterDate('2020-01-01', '2021-01-01')
.map(mask_l8_sr)
)
# Make a median composite.
composite = collection.median()
# Demonstration labels.
labels = ee.FeatureCollection('projects/google/demo_landcover_labels')
# Use these bands for classification.
bands = ['SR_B2', 'SR_B3', 'SR_B4', 'SR_B5', 'SR_B6', 'SR_B7']
# The name of the property on the points storing the class label.
class_property = 'landcover'
# Sample the composite to generate training data. Note that the
# class label is stored in the 'landcover' property.
training = composite.select(bands).sampleRegions(
collection=labels, properties=[class_property], scale=30
)
# Train a kNN classifier.
classifier = ee.Classifier.smileKNN(5).train(
features=training, classProperty=class_property
)
# Classify the composite.
classified = composite.classify(classifier)
m = geemap.Map()
m.set_center(-122.184, 37.796, 12)
m.add_layer(
classified, {'min': 0, 'max': 2, 'palette': ['red', 'green', 'blue']}
)
m
Aksi belirtilmediği sürece bu sayfanın içeriği Creative Commons Atıf 4.0 Lisansı altında ve kod örnekleri Apache 2.0 Lisansı altında lisanslanmıştır. Ayrıntılı bilgi için Google Developers Site Politikaları'na göz atın. Java, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-26 UTC.
[null,null,["Son güncelleme tarihi: 2025-07-26 UTC."],[],[]]