美文网首页
利用物候差异与面向对象决策树提取油菜种植面积

利用物候差异与面向对象决策树提取油菜种植面积

作者: 任源_c4d5 | 来源:发表于2022-11-11 21:31 被阅读0次

    基于决策树模型的安义县油菜花种植面积提取

    利用多时序油菜花的不同光谱特征,构建决策树模型,进而提取出油菜花

    初始化环境

    import aie
    aie.Authenticate()
    aie.Initialize()
    

    研究区域

    # 指定需要检索的区域
    feature_collection = aie.FeatureCollection('China_District') \
                            .filter(aie.Filter.eq('district', '安义县'))
    geometry = feature_collection.geometry()
    
    # 需要调用task.start()来启动后台导出任务
    # task = aie.Export.feature.toAsset(feature_collection, 'feature_collection_export_result')
    # task.start()
    
    # 指定检索数据集,可设置检索的空间和时间范围,以及属性过滤条件(如云量过滤等)
    dataset = aie.ImageCollection('SENTINEL_MSIL2A') \
                 .filterBounds(geometry) \
                 .filterDate('2021-03-01', '2021-03-31') \
                 .filter(aie.Filter.lte('eo:cloud_cover',10.0)) \
                 .limit(10)\
                 .mosaic()\
                 .clip(geometry)
    map = aie.Map(
        center=feature_collection.getCenter(),
        height=800,
        zoom=9
    )
    vis_params = {
        'bands': ['B4', 'B3', 'B2'],
        'min': 0,
        'max': 2000,
    }
    map.addLayer(
        dataset,
        vis_params,
        'True Color (432)',
        bounds=dataset.getBounds()
    )
    map
    
    安义县哨兵2号影像

    植被指数计算

    NDVI = dataset.normalizedDifference(['B8','B4']).rename(['NDVI'])
    
    RVI = (dataset.select(['B8']).divide(dataset.select(['B3']))).rename(['RVI'])
    

    缨帽变换

    在ENVI,QGIS,R,GEE,PIE中实现缨帽变换,但是好像只有GEE支持哨兵2号(Sentinel-2)缨帽变换得到亮度(Brightness)、绿度(Greenness)、和湿度(Wetness)。不知道为什么我在GEE里面的缨帽变换的数值范围和文章里面的相差很大。

    brightness = aie.Image('user/e4987f27c44143ffb7d1c75defd7a94b')
    brightness = brightness.select(['B1'])
    brightness = brightness.clip(geometry)
    
    
    vis_params = {
        'bands': 'B1',
        'min': 0,
        'max': 1,
        'palette': [
            '#0000ff', '#00ffff', '#ffff00', '#ff0000', '#ffffff'
        ]
    }
    map.addLayer(
        brightness.clip(geometry),
        vis_params,
        'Brightness',
        bounds=brightness.getBounds()
    )
    map
    
    缨帽变换亮度结果

    构建决策树

    # 油菜提取规则集
    mask1 = NDVI.lt(aie.Image.constant(0.1))     # 过滤水体、不透水面、裸地等非植被区域
    mask2 = NDVI.gt(aie.Image.constant(0.4)).And(brightness.gt(aie.Image.constant(0.7)))  # 农作物
    
    mask3 = RVI.gt(aie.Image.constant(3))   # 油菜
    
    cole  = (mask2.And(mask3)).gt(aie.Image.constant(0))
    
    mask_vis  = {
        'min': 0,
        'max': 1,
        'palette': ['#ffffff', '#008000']    # 0:白色, 1:绿色
    }
    
    
    map.addLayer(cole,mask_vis, 'cole', bounds=geometry.getBounds())    # 绿色区域为小麦
    
    map
    
    油菜提取结果

    总结

    利用决策树模型来提取就是快,我也没有能力去验证,在安义县的同学可以联系我帮忙去印证一下,已经报告了AI Earth官方了,相信不久以后,AIE就可以支持缨帽变换了,还有就是谁知道哨兵2号数据的缨帽变换可以联系我,我用GEE做出来的很别人的值范围差异比较大。本案例主要引用了:
    [1]基于PIE遥感图像处理软件的油菜提取解决方案
    [2]李中元,吴炳方,张淼,邢强,李名勇,闫娜娜.利用物候差异与面向对象决策树提取油菜种植面积[J].地球信息科学学报,2019,21(05):720-730.

    相关文章

      网友评论

          本文标题:利用物候差异与面向对象决策树提取油菜种植面积

          本文链接:https://www.haomeiwen.com/subject/gehcxdtx.html