ee.Classifier.smileKNN

একটি খালি k-NN ক্লাসিফায়ার তৈরি করে।

k-নিকটবর্তী প্রতিবেশী অ্যালগরিদম (k-NN) হল তার প্রতিবেশীদের সংখ্যাগরিষ্ঠ ভোটের মাধ্যমে বস্তুর শ্রেণীবিভাগ করার একটি পদ্ধতি, যেখানে বস্তুটি তার k নিকটতম প্রতিবেশীদের মধ্যে সবচেয়ে সাধারণ শ্রেণিতে বরাদ্দ করা হয় (k হল একটি ধনাত্মক পূর্ণসংখ্যা, সাধারণত ছোট, সাধারণত বিজোড়)।

ব্যবহার রিটার্নস
ee.Classifier.smileKNN( k , searchMethod , metric ) ক্লাসিফায়ার
যুক্তি টাইপ বিস্তারিত
k পূর্ণসংখ্যা, ডিফল্ট: 1 শ্রেণীবিভাগের জন্য প্রতিবেশীর সংখ্যা।
searchMethod স্ট্রিং, ডিফল্ট: "অটো" অনুসন্ধান পদ্ধতি। নিম্নলিখিতগুলি বৈধ [AUTO, LINEAR_SEARCH, KD_TREE, COVER_TREE]৷ AUTO মাত্রা গণনার উপর নির্ভর করে KD_TREE এবং COVER_TREE এর মধ্যে নির্বাচন করবে। দূরত্বের বন্ধন এবং সম্ভাব্যতা মানের জন্য বিভিন্ন অনুসন্ধান পদ্ধতির মধ্যে ফলাফল পরিবর্তিত হতে পারে। যেহেতু SMILE এর ডকুমেন্টেশন এবং অন্যান্য সাহিত্যের সাথে পরামর্শ করে কর্মক্ষমতা এবং ফলাফল পরিবর্তিত হতে পারে।
metric স্ট্রিং, ডিফল্ট: "ইউক্লিডিয়ান" ব্যবহার করার জন্য দূরত্ব মেট্রিক। দ্রষ্টব্য: KD_TREE (এবং নিম্ন মাত্রার জন্য AUTO) নির্বাচিত মেট্রিক ব্যবহার করবে না। বিকল্পগুলি হল: 'ইউক্লিডিয়ান' - ইউক্লিডীয় দূরত্ব। 'মহলনোবিস' - মহালনোবিস দূরত্ব। 'ম্যানহাটন' - ম্যানহাটনের দূরত্ব। 'BRAYCURTIS' - Bray-Curtis দূরত্ব।

উদাহরণ

কোড এডিটর (জাভাস্ক্রিপ্ট)

// 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']});

পাইথন সেটআপ

পাইথন এপিআই এবং ইন্টারেক্টিভ ডেভেলপমেন্টের জন্য geemap ব্যবহার করার জন্য পাইথন এনভায়রনমেন্ট পৃষ্ঠাটি দেখুন।

import ee
import geemap.core as geemap

Colab (পাইথন)

# 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