日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

google earth engine (GEE)面向对象分类 代码

發(fā)布時(shí)間:2023/12/8 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 google earth engine (GEE)面向对象分类 代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

可以前往“地信遙感數(shù)據(jù)匯”獲取更多數(shù)據(jù)。
https://www.gisrsdata.com/

?

遙感常用的三大類型分類方法:監(jiān)督分類,非監(jiān)督分類,以及面向?qū)ο蠓诸悺G皟蓚€(gè)代碼,我很熟悉,并且都能做出比較好的效果。目前我對某市的landsat影像使用了面向?qū)ο蠓诸?#xff0c;但是結(jié)果不是讓人滿意。

我把代碼放出來,希望能幫到需要的人,如果有人想要深入研究,探討一下為什么面向?qū)ο蠼Y(jié)果差強(qiáng)人意,歡迎留言:

這個(gè)是分類代碼:https://code.earthengine.google.com/66b894f4991df1a955c554f3ba368e82,可以直接使用。

//選擇數(shù)據(jù)源 var imageCollection = ee.ImageCollection('USDA/NAIP/DOQQ'); //研究區(qū) var geometry = /* color: #0b4a8b */ee.Geometry.Polygon([[[-121.89511299133301, 38.98496606984683],[-121.89511299133301, 38.909335196675435],[-121.69358253479004, 38.909335196675435],[-121.69358253479004, 38.98496606984683]]], null, false); //樣本數(shù)據(jù)(這個(gè)是US的cdl數(shù)據(jù),包含了各個(gè)地塊的農(nóng)作物類別信息) var cdl2016 = ee.Image('USDA/NASS/CDL/2016');var bands = ['R', 'G', 'B', 'N'] //數(shù)據(jù)篩選與鑲嵌 var img = imageCollection.filterDate('2015-01-01', '2017-01-01').filterBounds(geometry).mosaic() img = ee.Image(img).clip(geometry).divide(255).select(bands) Map.centerObject(geometry, 13) Map.addLayer(img, {gamma: 0.8}, 'RGBN', false) //設(shè)置種子 var seeds = ee.Algorithms.Image.Segmentation.seedGrid(36);//利用 SNIC 進(jìn)行分割,得到對象。參數(shù)的設(shè)置根據(jù)自己的需求來 var snic = ee.Algorithms.Image.Segmentation.SNIC({image: img, size: 32,compactness: 5,connectivity: 8,neighborhoodSize:256,seeds: seeds }).select(['R_mean', 'G_mean', 'B_mean', 'N_mean', 'clusters'], ['R', 'G', 'B', 'N', 'clusters']) //clusters就是分割得到的一個(gè)個(gè)對象 var clusters = snic.select('clusters') Map.addLayer(clusters.randomVisualizer(), {}, 'clusters') Map.addLayer(snic, {bands: ['R', 'G', 'B'], min:0, max:1, gamma: 0.8}, 'means', false)//計(jì)算每個(gè)對象的 stdDev. var stdDev = img.addBands(clusters).reduceConnectedComponents(ee.Reducer.stdDev(), 'clusters', 256) Map.addLayer(stdDev, {min:0, max:0.1}, 'StdDev', false)var area = ee.Image.pixelArea().addBands(clusters).reduceConnectedComponents(ee.Reducer.sum(), 'clusters', 256) Map.addLayer(area, {min:50000, max: 500000}, 'Cluster Area', false)var minMax = clusters.reduceNeighborhood(ee.Reducer.minMax(), ee.Kernel.square(1)); var perimeterPixels = minMax.select(0).neq(minMax.select(1)).rename('perimeter'); Map.addLayer(perimeterPixels, {min: 0, max: 1}, 'perimeterPixels');var perimeter = perimeterPixels.addBands(clusters).reduceConnectedComponents(ee.Reducer.sum(), 'clusters', 256); Map.addLayer(perimeter, {min: 100, max: 400}, 'Perimeter size', false);var sizes = ee.Image.pixelLonLat().addBands(clusters).reduceConnectedComponents(ee.Reducer.minMax(), 'clusters', 256) var width = sizes.select('longitude_max').subtract(sizes.select('longitude_min')).rename('width') var height = sizes.select('latitude_max').subtract(sizes.select('latitude_min')).rename('height') Map.addLayer(width, {min:0, max:0.02}, 'Cluster width', false) Map.addLayer(height, {min:0, max:0.02}, 'Cluster height', false)//分類器參數(shù)設(shè)置,選擇分類依據(jù):包括了area,width等 var objectPropertiesImage = ee.Image.cat([snic.select(bands),stdDev,area,perimeter,width,height ]).float(); //選擇訓(xùn)練樣本 var training = objectPropertiesImage.addBands(cdl2016.select('cropland')).updateMask(seeds).sample(geometry, 5); //分類 var classifier = ee.Classifier.randomForest(10).train(training, 'cropland') Map.addLayer(objectPropertiesImage.classify(classifier), {min:0, max:254}, 'Classified objects')

切割的對象的結(jié)果如下圖所示,針對自己的數(shù)據(jù)源,參數(shù)要做出適合的調(diào)整:

基于面向?qū)ο蟮慕Y(jié)果如下所示,可以對結(jié)果導(dǎo)出,查看具體的類別。

需要注意的兩個(gè)地方:1.分割器的選擇以及參數(shù)設(shè)置;2.分類方法的選擇。

?VX:kitmyfaceplease2;歡迎關(guān)注公眾號:銳多寶的地理空間;

總結(jié)

以上是生活随笔為你收集整理的google earth engine (GEE)面向对象分类 代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。