PIE-Engine 教程:水稻面积提取4—阈值筛选(宿迁市)

简介: PIE-Engine 教程:水稻面积提取4—阈值筛选(宿迁市)

   这里水稻面积提取用阈值法进行,这里我们需要用到的是将随机森林和svm支持向量机的监督分类分析的结果用mask去除和提取,这里我们所需要用到几个函数

where(condition,value)

执行值的有条件替换。

方法参数:

- image(Image)

Image实例。

- condition(Image|Double)

测试图像。

- value(Image|Double)

测试不为零时使用的输出值。

返回值:Image

水体指数

LSWI=(NIR-SWIR)/(NIR+SWIR式)中,NIR和SWIR分别表示MODIS近红外和短波红外波段处的地表反射率;

2)、提取水稻像元:利用水指数LSWI与植被指数EVI的关系,提取水稻像元,其过程为:在灌水移栽期LSWI >0.12,EVI <0.26,(LSWI+0.05)>EVI,且其后第6到11个8天合成的图像的平均EVI>0.35;

代码:

/**
 * @Name    :   基于 PIE Engine Studio 的水稻自动提取
 * @Author  :   武汉大学VHR队
 * @Desc    :   淮安市水稻提取 - 阈值筛选
 * @Source  :   航天宏图第四届 “航天宏图杯”PIE软件二次开发大赛云开发组三等奖获奖作品
 */
//4.阈值筛选
//加载淮安市矢量
var roi = pie.FeatureCollection("NGCC/CHINA_CITY_BOUNDARY").filter(pie.Filter.eq('name', '淮安市')).first().geometry()
Map.centerObject(roi, 8)
//导入监督分类结果
var rf = pie.Image('user/pieadmin/saas/06/rf').select('B1');
var svm = pie.Image('user/pieadmin/saas/06/svm').select('B1');
//可视化参数
var visParam = {
    opacity: 1,
    min: 0,
    max: 1,
    palette: '00FFFF, 0000FF'
};
//设置mask,提取监督分类结果中水稻像素,并将两种分类结果取并集
var mask = rf.lt(2)
var rf_rice = mask.where(mask.eq(0), 0)
var rf_ricenew = mask.updateMask(mask)
var mask2 = svm.lt(2)
var svm_rice = mask2.where(mask2.eq(0), 0)
var svm_ricenew = mask2.updateMask(mask2)
//并集
var symm = rf_rice.add(svm_rice)
var symmetricDifference = symm.gt(0)
symmetricDifference = symmetricDifference.updateMask(symmetricDifference)
//计算阈值
function VI(image) {
    var lswi = image.select('B1');
    var evi = image.select('B2');
    var vi = evi.subtract(lswi);
    return image.addBands(vi.rename('VI'));
}
function negative(image) {
    var lswi = image.select('B1');
    var evi = image.select('B2');
    var negvi = lswi.subtract(evi);
    return image.addBands(negvi.rename('negVI'));
}
//doy:14 45 74 105 135 166 196 227 258 288 319 349
//选择位于水稻插秧期的月度影像
var col1 = pie.ImageCollection.fromImages([
    pie.Image("user/pieadmin/saas/06/s2_huaian_apr"),
    pie.Image("user/pieadmin/saas/06/s2_huaian_may"),
    pie.Image("user/pieadmin/saas/06/s2_huaian_june"),
    pie.Image("user/pieadmin/saas/06/s2_huaian_july")
])
col1 = col1.select(['B1', 'B2']).map(negative)
var apr = col1.getAt(0).addBands(pie.Image().constant(105).rename('doy'))
var may = col1.getAt(1).addBands(pie.Image().constant(135).rename('doy'))
var june = col1.getAt(2).addBands(pie.Image().constant(166).rename('doy'))
var july = col1.getAt(3).addBands(pie.Image().constant(196).rename('doy'))
var transplant = pie.ImageCollection.fromImages([apr, may, june, july]) //B1,B2,negVI,doy
//选择位于水稻生长期的月度影像                                    
var col2 = pie.ImageCollection.fromImages([
    pie.Image("user/pieadmin/saas/06/s2_huaian_mar"),
    pie.Image("user/pieadmin/saas/06/s2_huaian_apr"),
    pie.Image("user/pieadmin/saas/06/s2_huaian_may"),
    pie.Image("user/pieadmin/saas/06/s2_huaian_june"),
    pie.Image("user/pieadmin/saas/06/s2_huaian_july"),
    pie.Image("user/pieadmin/saas/06/s2_huaian_aug"),
    pie.Image("user/pieadmin/saas/06/s2_huaian_sept"),
    pie.Image("user/pieadmin/saas/06/s2_huaian_oct")
]).select(['B1', 'B2'])
var mar = col2.getAt(0).addBands(pie.Image().constant(74).rename('doy'))
var apr2 = col2.getAt(1).addBands(pie.Image().constant(105).rename('doy'))
var may2 = col2.getAt(2).addBands(pie.Image().constant(135).rename('doy'))
var june2 = col2.getAt(3).addBands(pie.Image().constant(166).rename('doy'))
var july2 = col2.getAt(4).addBands(pie.Image().constant(196).rename('doy'))
var aug = col2.getAt(5).addBands(pie.Image().constant(227).rename('doy'))
var sept = col2.getAt(6).addBands(pie.Image().constant(258).rename('doy'))
var oct = col2.getAt(7).addBands(pie.Image().constant(288).rename('doy'))
var growth = pie.ImageCollection.fromImages([mar, apr2, may2, june2, july2, aug, sept, oct]) //B1,B2,doy   
阈值筛选/
//插秧期合成negVI最大值,并记录doy1
var flood = transplant.qualityMosaic('negVI').select(['B2', 'negVI', 'doy']).clip(roi)
//生长期合成EVI最大值,并记录doy2
var peak = growth.qualityMosaic('B2').select(['B2', 'doy']).clip(roi) //B2 doy
//计算水稻插秧期快速生长后EVI值的变化
var datediffer = (peak.select('doy').subtract(flood.select('doy'))).abs()
var ratio = (peak.select('B2').subtract(flood.select('B2'))).divide(datediffer.divide(30)).rename('ratio') //.clamp(-1,1)//(0,1)
//确定阈值并筛选
var floodmask = flood.select('negVI').gte(-0.26) //flood:LSWI-EVI>-0.26排除其他植被、城镇像素
var peakmask = peak.select('B2').gte(0.47) //peak:EVI>0.47排除水体、城镇像素
var ratiomask = ratio.select('ratio').gte(0.13) //(peak_EVI - flood_EVI)/(date/30)>0.13 排除其他植被中EVI变化速率小但均值较高的像素
var thersold = symmetricDifference.updateMask(floodmask).updateMask(peakmask).updateMask(ratiomask)
//加载显示
Map.addLayer(thersold, visParam, '阈值筛选后结果')
Map.addLayer(symmetricDifference, { min: 0, max: 1, palette: '00FFFF, FFE100' }, '并集')
//导出阈值筛选后图像
Export.image({
    image: thersold,
    description: "result",
    assetId: "result_huaian",
    region: roi,
    scale: 30
});

image.png

 

image.png


相关文章
|
7月前
|
XML 存储 数据处理
python绘制热力图-数据处理-VOC数据类别标签分布及数量统计(附代码)
python绘制热力图-数据处理-VOC数据类别标签分布及数量统计(附代码)
|
7月前
|
定位技术
GEE(CCDC-3)——根据CCDC segment分割后的影像进行地类变化统计和绘制土地覆被变化地图
GEE(CCDC-3)——根据CCDC segment分割后的影像进行地类变化统计和绘制土地覆被变化地图
213 0
|
数据可视化
R语言绘图教程丨Nature论文都在用的多组比较箱线图,自动计算显著性并标注,附带误差线
R语言绘图教程丨Nature论文都在用的多组比较箱线图,自动计算显著性并标注,附带误差线
|
1月前
Fireworks图形怎么平均分布?
FW图形水平/垂直均等分布的技巧
36 7
|
7月前
r语言绘制动态统计图:绘制世界各国的人均GDP,出生时的预期寿命和人口气泡图动画动态gif图
r语言绘制动态统计图:绘制世界各国的人均GDP,出生时的预期寿命和人口气泡图动画动态gif图
|
7月前
|
编解码 数据可视化 定位技术
Google Earth Engine谷歌地球引擎GEE直方图与时间序列多波段折线图绘制与可视化参数调整
Google Earth Engine谷歌地球引擎GEE直方图与时间序列多波段折线图绘制与可视化参数调整
138 1
Google Earth Engine谷歌地球引擎GEE直方图与时间序列多波段折线图绘制与可视化参数调整
|
7月前
Google Earth Engine(GEE)——求指定区域的NDVI时序变化和不同值域范围内的像素数量及其面积
Google Earth Engine(GEE)——求指定区域的NDVI时序变化和不同值域范围内的像素数量及其面积
93 0
|
数据可视化 数据挖掘 Linux
科研绘图丨使用R语言Pheatmap包快速绘制基因表达量热图的方法,支持聚类和配色自定义修改
科研绘图丨使用R语言Pheatmap包快速绘制基因表达量热图的方法,支持聚类和配色自定义修改
|
数据可视化
利用ggcor包绘制相关性组合图及环状热图
ggcor包最初是因为能快速实现19年Science一组合相关性图(上图所示)变得流行起来,除此该包对热图、热图等等的可视化都是很方便快捷的,除了之前介绍过的几种相关性图几种方式,此包也是个不错的选择,且具独特的风格(特别是组合相关性图、环形热图)。但是不知道因为何种原因此包在Github上消失了....,到作者(厚缊)个人博客上瞅了瞅发现关于包的参数介绍示例等也都没有了,在评论区里看到作者回答项目已不再提供任何代码和任何资料,需要的可以去国内的gitee和国外的github搜索看看有没有别人存的代码。
723 0
|
编解码 计算机视觉
PIE-engine 教程 ——新疆石河子市棉花种植面积提取(阈值法)案例分析
PIE-engine 教程 ——新疆石河子市棉花种植面积提取(阈值法)案例分析
421 0
PIE-engine 教程 ——新疆石河子市棉花种植面积提取(阈值法)案例分析