• PIE-Engine 教程:水稻面积提取2—监督分类(宿迁市)


    这里是第二部分计算水稻提取,这里采用的是监督分类。这里我们将上一次影像的的波段加载出来,然后将其已经选择好的样本点进行分析,这里我们主要用到随机样本点的产生,然后按照7/3分为训练和验证样本进行分析,利用随机森林或者支持向量机的分类方法对训练样本进行分类,我们看样本点等函数:

    sampleRegions(collection,properties,scale,projection,tileScale,geometries)

    Image中随机采样,返回结果是一个FeatureCollection,FeatureCollection下的每一个Feature中存储采样点的相应波段的信息

    方法参数:

    - image(Image)

    Image实例。

    - collection(FeatureCollection)

    样本点,需要包括分类字段

    - properties(List)

    采样保留字段集合

    - scale(Float)

    图像采样比例尺

    - projection(String)

    未启用

    - tileScale(Float)

    未启用

    - geometries(Boolean)

    未启用

    返回值:Image

    randomColumn(columnName,seed,distribution)将矢量集合产生一列随机数

    向FeatureCollection中添加一列确定性伪随机数。

    方法参数:

    - featureCollection(FeatureCollection)

    FeatureCollection实例

    - columnName(String)

    新增列的名称,默认为 'random'

    - seed(Long)

    随机种子,默认为0

    - distribution(String)

    生成随机数的分布类型。赋值为'uniform' 、'normal'之一

    返回值:FeatureCollection

    pie.Classifier.svm(options)

    SVM分类方法分类器

    方法参数:

    - Classifier(Classifier)

    监督分类分类器实例

    - options(Object)

    参数对象

    返回值:Classifier

    pie.Classifier.rTrees(options)

    随机森林分类方法分类器

    方法参数:

    - Classifier(Classifier)

    监督分类分类器实例

    - options(Object)

    参数对象

    返回值:Classifier

    代码:

    1. /**
    2. * @Name : 基于 PIE Engine Studio 的水稻自动提取
    3. * @Author : 武汉大学VHR队
    4. * @Desc : 淮安市水稻提取 - 进行监督分类
    5. * @Source : 航天宏图第四届 “航天宏图杯”PIE软件二次开发大赛云开发组三等奖获奖作品
    6. */
    7. //2.进行监督分类
    8. var area = pie.Geometry.Polygon([
    9. [
    10. [
    11. 118.19042604840365,
    12. 32.717477656827796
    13. ],
    14. [
    15. 119.67193792508522,
    16. 32.717477656827796
    17. ],
    18. [
    19. 119.67193792508522,
    20. 34.12687250105918
    21. ],
    22. [
    23. 118.19042604840365,
    24. 34.12687250105918
    25. ],
    26. [
    27. 118.19042604840365,
    28. 32.717477656827796
    29. ]
    30. ]
    31. ], null);
    32. //选择淮安市矢量
    33. var roi = pie.FeatureCollection("NGCC/CHINA_CITY_BOUNDARY").filter(pie.Filter.eq('name', '淮安市')).first().geometry()
    34. Map.centerObject(roi, 8)
    35. Map.addLayer(roi)
    36. //导入用于分类影像并勾选波段
    37. var bands = ["B1", "B2", "B3", "B4", "B5", "B6", "B7", "B8", "B9"]
    38. var l8Image = pie.Image('user/pieadmin/saas/06/l8Image_1320')
    39. .select(bands);
    40. //合并样本点并采样
    41. var sample = pie.FeatureCollection('user/pieadmin/saas/06/sample');
    42. var sampleFeatureCollection = l8Image.sampleRegions(sample, ["type"], 30);
    43. sampleFeatureCollection = sampleFeatureCollection.randomColumn('random');
    44. //训练样本按0.7比例划分
    45. var trainingFeatures = sampleFeatureCollection.filter(pie.Filter.lte("random", 0.7));
    46. var testingFeatures = sampleFeatureCollection.filter(pie.Filter.gt("random", 0.7));
    47. //随机森林或支持向量机分类
    48. var classifier = pie.Classifier.svm().train(trainingFeatures, "type", bands); //支持向量机
    49. //var classifier = pie.Classifier.rtrees().train(trainingFeatures, "type", bands); //随机森林
    50. // 影像分类,并加载显示
    51. var imageA = l8Image.classify(classifier, "classifyA");
    52. var visParam = {
    53. min: 1,
    54. max: 4,
    55. palette: 'EAF2F5,000032,1F3600,FAFFC8'
    56. };
    57. Map.addLayer(imageA, visParam, "ClassifyImage");
    58. // 添加图例
    59. var data = {
    60. title: "淮安市水稻分类",
    61. colors: ['#EAF2F5', '#000032', '#1F3600', '#FAFFC8'],
    62. labels: ["水稻", "其他植被", "城镇", "水体"],
    63. step: 1
    64. };
    65. var style = {
    66. bottom: "10px",
    67. right: "450px",
    68. width: "350px",
    69. height: "70px"
    70. };
    71. var legend = ui.Legend(data, style);
    72. Map.addUI(legend);
    73. //导出随机森林或支持向量机分类结果
    74. Export.image({
    75. image: imageA,
    76. description: "svmImage",
    77. assetId: "svm",
    78. region: area,
    79. scale: 30
    80. });

    结果:

     这个图的结果不太好,因为这里我们看到白色作为水稻的区域并不是太符合常理,一般绿色更好,水体面积一般是绿色,而这里用的是黄色,市区一般不透水层应该用红色。

  • 相关阅读:
    360测试开发技术面试题目
    scanf总结
    java毕业设计下载含论文+PPT+源码等]javaweb企业财务|记账|账单管理系统设计与实现
    【C++基础】2. 标准库
    巧记大小端字节序
    初识C语言 -- 结构体,分支和循环语句
    软件测试找bug小技巧总结,从初级跨入中级测试......
    阿里云ACP知识点(三)
    系分 - 项目管理
    英语单词记忆(词缀 / 词根)
  • 原文地址:https://blog.csdn.net/qq_31988139/article/details/127038637