הודעה: כל הפרויקטים הלא מסחריים שנרשמו לשימוש ב-Earth Engine לפני
15 באפריל 2025 חייבים
לאמת את הזכאות לשימוש לא מסחרי כדי לשמור על הגישה. אם לא תאמתו את החשבון עד 26 בספטמבר 2025, יכול להיות שהגישה שלכם תושעה.
ee.Classifier.smileKNN
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
Creates an empty k-NN classifier.
אלגוריתם השכן הקרוב ביותר (k-NN) הוא שיטה לסיווג אובייקטים לפי הצבעה של רוב השכנים שלו. האובייקט משויך לסיווג הנפוץ ביותר מבין k השכנים הקרובים ביותר שלו (k הוא מספר שלם חיובי, בדרך כלל קטן, בדרך כלל אי-זוגי).
| שימוש | החזרות |
|---|
ee.Classifier.smileKNN(k, searchMethod, metric) | מסווג |
| ארגומנט | סוג | פרטים |
|---|
k | מספר שלם, ברירת מחדל: 1 | מספר השכנים לסיווג. |
searchMethod | מחרוזת, ברירת מחדל: AUTO | שיטת החיפוש. הערכים האפשריים הם [AUTO, LINEAR_SEARCH, KD_TREE, COVER_TREE].
האפשרות AUTO תבחר בין KD_TREE לבין COVER_TREE בהתאם למספר המאפיינים. התוצאות עשויות להיות שונות בין שיטות החיפוש השונות של קשרי מרחק וערכי הסתברות. הביצועים והתוצאות עשויים להשתנות, ולכן מומלץ לעיין בתיעוד של SMILE ובספרות נוספת. |
metric | מחרוזת, ברירת מחדל: EUCLIDEAN | מדד המרחק שבו רוצים להשתמש. הערה: KD_TREE (ו-AUTO לממדים נמוכים) לא ישתמשו במדד שנבחר. האפשרויות הן:
'EUCLIDEAN' – מרחק אוקלידי.
'MAHALANOBIS' – מרחק מהלנוביס.
'MANHATTAN' – מרחק מנהטן.
'BRAYCURTIS' – מרחק בריי-קרטיס. |
דוגמאות
עורך הקוד (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
מידע על Python API ועל שימוש ב-geemap לפיתוח אינטראקטיבי מופיע בדף
Python Environment.
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
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers. Java הוא סימן מסחרי רשום של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-26 (שעון UTC).
[null,null,["עדכון אחרון: 2025-07-26 (שעון UTC)."],[],[]]