前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AI Earth ——开发者模式案例6:决策树模型实现冬小麦提取

AI Earth ——开发者模式案例6:决策树模型实现冬小麦提取

作者头像
此星光明
发布2024-02-02 10:13:20
1410
发布2024-02-02 10:13:20
举报

决策树模型实现冬小麦提取

依据作物在不同物候期内卫星影像的光谱存在差异的特征,可建立冬小麦提取算法,进行像元尺度冬小麦提取。这里同样是使用的NDVI作为阈值提取条件,分别使用不同的聚合方式完成对影像的筛选,从而得出冬小麦种植面积的提取。

初始化环境
代码语言:javascript
复制
import aie

aie.Authenticate()
aie.Initialize()
指定需要检索的区域
代码语言:javascript
复制
feature_collection = aie.FeatureCollection('China_City') \
                        .filter(aie.Filter.eq('city', '亳州市'))
region = feature_collection.geometry()
影像检索
代码语言:javascript
复制
# 指定检索数据集,可设置检索的空间和时间范围,以及属性过滤条件(如云量过滤等)
def getl8_ndvi(startdate,enddate):
    dataset = aie.ImageCollection('LANDSAT_LC08_C02_T1_L2') \
                 .filterBounds(region) \
                 .filterDate(startdate, enddate) 
                 # .filter(aie.Filter.lte('eo:cloud_cover', 20.0))
    ndvi =  dataset.map(get_ndvi)  
    return ndvi

def get_ndvi(image):
    ndvi = image.normalizedDifference(['SR_B5', 'SR_B4'])
    return ndvi  

# 黄淮海地区冬小麦典型物候期。播种期 10-11月,旺长期3-4月,成熟期5-6月
NDVI_median = getl8_ndvi('2017-10-11', '2017-11-10').median().clip(region) 
NDVI_max = getl8_ndvi('2018-03-20', '2018-04-20').max().clip(region) 
NDVI_min = getl8_ndvi('2018-05-20', '2018-06-30').min().clip(region) 

# 冬小麦提取规则集
mask1 = NDVI_max.gt(aie.Image.constant(0.33))     # 过滤水体、不透水面、裸地等非植被区域
mask2 = NDVI_median.lt(aie.Image.constant(0.50))  # 过滤森林、春播作物

mask3 = NDVI_max.lte(aie.Image.constant(0.48))    # < 0.48存在
mask4 = NDVI_max.gt(aie.Image.constant(0.48))     # 区分植被区域和非植被区域,> 0.48 为植被区域


mask5 = NDVI_min.gt(aie.Image.constant(-0.12))    # 筛选冬小麦区域,成熟/收获期冬小麦植被指数下降
mask6 = NDVI_min.lt(aie.Image.constant(0.17))   
mask7 = NDVI_min.lt(NDVI_max.add(aie.Image.constant(0.5)))

wheat1 = mask1.And(mask2).And(mask3).And(mask5).And(mask6)
wheat2 = mask1.And(mask2).And(mask4).And(mask5).And(mask7)
wheat  = wheat1.add(wheat2).where((wheat1.add(wheat2)).gt(aie.Image.constant(0)),aie.Image.constant(1))
数据可视化
代码语言:javascript
复制
map = aie.Map(
    center=region.getCenter(),
    height=800,
    zoom=7
)

vis_params = {
    'color': '#00FF00'
}

map.addLayer(
    region,
    vis_params,
    'region',
    bounds=region.getBounds()
)

mask_vis  = {
    'min': 0,
    'max': 1,
    'palette': ['#ffffff', '#008000']    # 0:白色, 1:绿色
}

ndvi_vis  = {
    'min': -0.2,
    'max': 0.6,
    'palette': ['#d7191c', '#fdae61', '#ffffc0', '#a6d96a', '#1a9641']
}

map.addLayer(NDVI_median,ndvi_vis, 'NDVI_median', bounds=region.getBounds())
map.addLayer(NDVI_max,ndvi_vis, 'NDVI_max', bounds=region.getBounds())
map.addLayer(NDVI_min,ndvi_vis, 'NDVI_min', bounds=region.getBounds())
map.addLayer(wheat,mask_vis, 'wheat', bounds=region.getBounds())    # 绿色区域为小麦

map
参考文献

潘力,夏浩铭,王瑞萌,等. 基于Google Earth Engine 的淮河流域越冬作物种植面积制图[J]. 农业工程学报,2021,37(18):211-218. doi:10.11975/j.issn.1002-6819.2021.18.025 http://www.tcsae.org

备注:案例以建立规则集提取冬小麦为主,主要借鉴参考文献中部分分类参数和指标用做流程测试,另仅使用 Landsat-8 数据,因此与参考文献中的成果有一定差异敬请谅解。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 决策树模型实现冬小麦提取¶
    • 初始化环境¶
      • 指定需要检索的区域¶
        • 影像检索¶
          • 数据可视化¶
            • 参考文献¶
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档