GEE實(shí)現(xiàn)圖像隨機(jī)森林分類

對圖像進(jìn)行土地利用分類颓屑,因此下面是監(jiān)督分類的流程以及代碼案例禾进。
1.首先分類最開始應(yīng)該建立樣本數(shù)據(jù)集,在這里我分了四類酷勺,然后就開始自己的采樣戴已,設(shè)立好分類后固该,對目標(biāo)進(jìn)行分類。


image.png

然后對每個樣本進(jìn)行顏色選擇和屬性定義


image.png
//選擇需要裁剪的矢量數(shù)據(jù) 
var aoi = ee.FeatureCollection("users/yangyao19960805/NewFolder");
//加載矢量邊框糖儡,以便于在邊界內(nèi)選取樣本點(diǎn)
var empty = ee.Image().toByte();
var outline = empty.paint({
 featureCollection:aoi, // 行政邊界命名為fc
 color:0, //顏色透明
 width:3 //邊界寬度
});
Map.addLayer(outline, {palette: "ff0000"}, "outline");
//Function to mask the clouds in Sentinel-2
function maskS2clouds(image) {
  var qa = image.select('QA60');

  // Bits 10 and 11 are clouds and cirrus, respectively.
  var cloudBitMask = 1 << 10;
  var cirrusBitMask = 1 << 11;

  // Both flags should be set to zero, indicating clear conditions.
  var mask = qa.bitwiseAnd(cloudBitMask).eq(0)
      .and(qa.bitwiseAnd(cirrusBitMask).eq(0));

  return image.updateMask(mask).divide(10000);
}

//Build the Sentinel 2 collection, filtered by date, bounds and percentage of cloud cover 
var dataset = ee.ImageCollection('COPERNICUS/S2_SR')
                  .filterDate('2019-01-01','2020-12-31')
                  .filterBounds(aoi)
                  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE',10))
                  .map(maskS2clouds);
print("Sentinel 2 Image Collection",dataset);
var dem = ee.Image("NASA/NASADEM_HGT/001")
// Construct Classfication Dataset
// RS Index Cacluate(NDVI\NDWI\EVI\BSI)
var add_RS_index = function(img){
  var ndvi = img.normalizedDifference(['B8', 'B4']).rename('NDVI').copyProperties(img,['system:time_start']);
  var ndwi = img.normalizedDifference(['B3', 'B8']).rename('NDWI').copyProperties(img,['system:time_start']);
  var evi = img.expression('2.5 * ((NIR - RED) / (NIR + 6 * RED - 7.5 * BLUE + 1))', 
  {
    'NIR': img.select('B8'),
    'RED': img.select('B4'),
    'BLUE': img.select('B2')
  }).rename('EVI').copyProperties(img,['system:time_start']);
  var bsi = img.expression('((RED + SWIR1) - (NIR + BLUE)) / ((RED + SWIR1) + (NIR + BLUE)) ', 
  {
    'RED': img.select('B4'), 
    'BLUE': img.select('B2'),
    'NIR': img.select('B8'),
    'SWIR1': img.select('B11'),

  }).rename('BSI').copyProperties(img,['system:time_start']);


  var ibi = img.expression('(2 * SWIR1 / (SWIR1 + NIR) - (NIR / (NIR + RED) + GREEN / (GREEN + SWIR1))) / (2 * SWIR1 / (SWIR1 + NIR) + (NIR / (NIR + RED) + GREEN / (GREEN + SWIR1)))', {
    'SWIR1': img.select('B11'),
    'NIR': img.select('B8'),
    'RED': img.select('B4'),
    'GREEN': img.select('B3')
  }).rename('IBI').copyProperties(img,['system:time_start']);
  return img.addBands([ndvi, ndwi, evi, bsi, ibi]);
};
var dataset = dataset.map(add_RS_index); 
var bands = ['B2','B3','B4','B5','B6','B7','B8','B8A','B11','NDVI','NDWI','BSI'];
var imgcol_median = dataset.select(bands).median();
var aoi_dem = dem.select('elevation').clip(aoi).rename('DEM');
var construct_img = imgcol_median.addBands(aoi_dem).clip(aoi);
//分類樣本
var train_points = cropland.merge(grassland).merge(city).merge(forest).merge(water);
var train_data= construct_img.sampleRegions({
  collection: train_points,
  properties: ['landcover'],
  scale: 10
});
//精度評價
var withRandom = train_data.randomColumn('random');//樣本點(diǎn)隨機(jī)的排列
var split = 0.7; 
var trainingPartition = withRandom.filter(ee.Filter.lt('random', split));//篩選70%的樣本作為訓(xùn)練樣本
var testingPartition = withRandom.filter(ee.Filter.gte('random', split));//篩選30%的樣本作為測試樣本
//分類方法選擇隨機(jī)森林
var rf = ee.Classifier.smileRandomForest({
  numberOfTrees: 20,  
  bagFraction: 0.8
}).train({
  features: train_data,
  classProperty: 'landcover',
  // inputProperties: inputbands
});
//對哨兵數(shù)據(jù)進(jìn)行隨機(jī)森林分類
var img_classfication = construct_img.classify(rf); 
//運(yùn)用測試樣本分類伐坏,確定要進(jìn)行函數(shù)運(yùn)算的數(shù)據(jù)集以及函數(shù)
var test = testingPartition.classify(rf);
//計(jì)算混淆矩陣
var confusionMatrix = test.errorMatrix('landcover', 'classification');
print('confusionMatrix',confusionMatrix);//面板上顯示混淆矩陣
print('overall accuracy', confusionMatrix.accuracy());//面板上顯示總體精度
print('kappa accuracy', confusionMatrix.kappa());//面板上顯示kappa值
Map.centerObject(aoi)
Map.addLayer(aoi);
Map.addLayer(img_classfication.clip(aoi), {min: 1, max: 4, palette: ['orange', 'blue', 'green','yellow']});
var class1=img_classfication.clip(aoi)
//導(dǎo)出分類圖
Export.image.toDrive({  
       image: class1,  
       description: 'rfclass',  
       fileNamePrefix: 'rf',  //文件命名
       folder: "class",  //保存的文件夾
       scale: 10,  //分辨率
       region: aoi,  //研究區(qū)
       maxPixels: 1e13,  //最大像元素,默認(rèn)就好
       crs: "EPSG:4326"  //設(shè)置投影
   });  

分類好啦握联!


image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末桦沉,一起剝皮案震驚了整個濱河市每瞒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌纯露,老刑警劉巖剿骨,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異埠褪,居然都是意外死亡浓利,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進(jìn)店門组橄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來荞膘,“玉大人,你說我怎么就攤上這事玉工∮鹱剩” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵遵班,是天一觀的道長屠升。 經(jīng)常有香客問我,道長狭郑,這世上最難降的妖魔是什么腹暖? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮翰萨,結(jié)果婚禮上脏答,老公的妹妹穿的比我還像新娘。我一直安慰自己亩鬼,他們只是感情好殖告,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著雳锋,像睡著了一般黄绩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上玷过,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天爽丹,我揣著相機(jī)與錄音,去河邊找鬼辛蚊。 笑死粤蝎,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的袋马。 我是一名探鬼主播初澎,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼飞蛹!你這毒婦竟也來了谤狡?” 一聲冷哼從身側(cè)響起灸眼,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎墓懂,沒想到半個月后焰宣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捕仔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年匕积,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片榜跌。...
    茶點(diǎn)故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡闪唆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出钓葫,到底是詐尸還是另有隱情悄蕾,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布础浮,位于F島的核電站帆调,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏豆同。R本人自食惡果不足惜番刊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望影锈。 院中可真熱鬧芹务,春花似錦、人聲如沸鸭廷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽靴姿。三九已至沃但,卻和暖如春磁滚,著一層夾襖步出監(jiān)牢的瞬間佛吓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工垂攘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留维雇,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓晒他,卻偏偏與公主長得像吱型,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子陨仅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內(nèi)容