
var oam_subset = ee.ImageCollection(\"projects/sat-io/open-datasets/open-aerial-map\");
在这里,我简单做个实例,用无人机影像进行一次地物分类
01
—
GEE部分实现代码
//Shuffle the image collection to fetch random datavar collection = oam_subset.toList(oam_subset.size())print(collection)//Fetch any item from listvar image = ee.Image(collection.get(50))Map.centerObject(image,14)print('Image detail',image)
// Add imageryMap.addLayer(ee.Image(image),{},image.get('platform').getInfo()+' data')
var samples = road.merge(caodi).merge(building);
var sampleData = samples.randomColumn('random')
var sample_training = sampleData.filter(ee.Filter.lte(\"random\", 0.7));var sample_validate = sampleData.filter(ee.Filter.gt(\"random\", 0.7));Map.addLayer(sample_training,{color:'red'},'training samples')Map.addLayer(sample_validate,{color:'blue'},'validation samples')
// 利用样本点拾取特征值用于模型训练和验证
var training = image.sampleRegions({ collection: sample_training, properties: [\"class\"], scale: 1, tileScale:16});
var validation = image.sampleRegions({ collection: sample_validate, properties: [\"class\"], scale: 1, tileScale:16});
var classifier = ee.Classifier.smileRandomForest(50) .train({ features: training, classProperty: 'class', inputProperties: image.bandNames() });
var Classified_RF = image.classify(classifier).byte();var dict = classifier.explain();
var variable_importance = ee.Feature(null, ee.Dictionary(dict).get('importance'));print(variable_importance)
Map.addLayer(Classified_RF, {min: 0, max: 2, palette: [\"3182bd\",\"f0f0f0\",\"e6550d\"]}, 'Classified_RF');
// 混淆矩阵法var validated = validation.classify(classifier);// 混淆矩阵var testAccuracy = validated.errorMatrix('class', 'classification');// 总体分类精度var accuracy = testAccuracy.accuracy();// 用户分类精度var userAccuracy = testAccuracy.consumersAccuracy();// 生产者精度var producersAccuracy = testAccuracy.producersAccuracy();// Kappa系数var kappa = testAccuracy.kappa();
print('Validation error matrix:', testAccuracy);print('User acc:', userAccuracy);print('Prod acc:', producersAccuracy);print('Validation overall accuracy:', accuracy);print('Kappa:', kappa);
采用的是台湾某地区的DOM,目视解译选取了三类样本点,分别是道路、人造建筑物、草地。分类结果还算不错,但没有达到优的等级,后续分类需要加入新的特征要素。
02
—
结果展示
原始影像
分类后结果
分类结果精度
随机区域DOM展示1
随机区域DOM展示2
随机区域DOM展示3
请在微信客户端打开
请在微信客户端打开
代码完整链接请在微信公众号后台私信“
OpenAerialMap无人机数据进行分类
”
感谢关注,欢迎转发!
声明:仅供学习使用!
**希望关注的朋友们转发,如果对你有帮助的话记得给小编点个赞或者在看!****











评论