GEE专栏:GEE水体提取之MNDWI(矢量裁剪、数据导出)

计算区域2018年6-10月武汉市所有Landsat 8数据。

效果图

1、基于otsu计算结果,基于otsu提取结果,之前一直处于途中计算状态,原因推测数据量大,计算耗时,此外GEE给每个人分配的计算资源是有一定的限制的,非无线计算资源。

源码部分

/*
author by Lbta     https://blog.csdn.net/qq_48104689?spm=1000.2115.3001.5343
*/function maskL8sr(image) {var cloudShadowBitMask = (1 << 3);var cloudsBitMask = (1 << 5);var qa = image.select('pixel_qa');var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0).and(qa.bitwiseAnd(cloudsBitMask).eq(0));return image.updateMask(mask);
}
var dataset2016 = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR').filterDate('2018-05-01', '2018-10-31').map(maskL8sr).filterBounds(table).map(addS2VIs);
var visParams = {bands: ['B4', 'B3', 'B2'],min: 0,max: 3000,gamma: 1.4,};
Map.setCenter(114.5, 30.25);
Map.addLayer(dataset2016.median().clip(table), visParams);
//计算MNDWI指数
function ND_VI(image,b1,b2,bName)
{var VI = image.normalizedDifference([b1,b2]).rename(bName);return VI.updateMask(VI.gt(-1).and(VI.lt(1)));
}
function addS2VIs(img)
{var MNDWI=ND_VI(img,'B3','B6','mNDWI')return img.addBands(MNDWI);
}
//var mNDWI = adds2VIs(dataset2016);
var MNDWI_landsat8=dataset2016.select('mNDWI').median();
Map.addLayer(MNDWI_landsat8.clip(table),{min:-0.2,max:0.05},'MNDWI_landsat8');//otsu算法
function otsu(histogram) {var counts = ee.Array(ee.Dictionary(histogram).get('histogram'));var means = ee.Array(ee.Dictionary(histogram).get('bucketMeans'));var size = means.length().get([0]);var total = counts.reduce(ee.Reducer.sum(), [0]).get([0]);var sum = means.multiply(counts).reduce(ee.Reducer.sum(), [0]).get([0]);var mean = sum.divide(total);var indices = ee.List.sequence(1, size);var bss = indices.map(function(i) {var aCounts = counts.slice(0, 0, i);var aCount = aCounts.reduce(ee.Reducer.sum(), [0]).get([0]);var aMeans = means.slice(0, 0, i);var aMean = aMeans.multiply(aCounts).reduce(ee.Reducer.sum(), [0]).get([0]).divide(aCount);var bCount = total.subtract(aCount);var bMean = sum.subtract(aCount.multiply(aMean)).divide(bCount);return aCount.multiply(aMean.subtract(mean).pow(2)).add(bCount.multiply(bMean.subtract(mean).pow(2)));});return means.sort(bss).get([-1]);
}var histogram = MNDWI_landsat8.reduceRegion({reducer: ee.Reducer.histogram(), geometry: table, scale: 30,maxPixels: 1e13,tileScale: 8});var threshold = otsu(histogram.get("mNDWI"));
//var threshold = ee.Number.parse(threshold1.format("%.4f"));var mask = MNDWI_landsat8.gte(threshold);print(threshold,'threshold_Landsat')var water_landsat8 = mask.rename("water");//.updateMask(mask)
Map.addLayer(water_landsat8.clip(table),{min:0,max:1,palette:['black','blue']},'water_landsat8_otsu_based');
//输出
Export.image.toDrive({image:water_landsat8,description: 'water_landsat8_2017-2018',scale:30,region:table,fileFormat: 'GeoTIFF',maxPixels:1e13,
});
//统计面积
var waterarea_landsat8_based=ee.Number((((water_landsat8.eq(1)).multiply(ee.Image.pixelArea())).reduceRegion({reducer: ee.Reducer.sum(),geometry: table,scale: 30,maxPixels: 1e13,})).get('water'))
//var waterarea_landsat8_based = ee.Number.parse(waterarea_landsat8_based1.format("%.4f"));
print('waterarea_landsat8_based',waterarea_landsat8_based)

GEE水体提取之NDWI(矢量裁剪、统计面积、数据导出)相关推荐

  1. Arcgis提取指定面矢量内点或线数据

    Arcgis提取指定面矢量内点或线数据 本章导读:前人对面与面矢量的分割.联合等相关分析已经做了较多的分享工作.但对于指定面内点矢量数据和线矢量数据的提取经验分享相对而言较少.下面展示对流域内所有河段 ...

  2. 离线仓库模块开发:指标统计开发|数据导出|工作流调度

    大家好,欢迎来到本篇博客,博主是一名刚入大数据行业的小白,利用空闲的时间来分享自己所学的知识,帮助和博主一样刚处于起步阶段的同学,水平不高,若有什么错误和纰漏之处恳请大佬不吝赐教,目前个人博客只有CS ...

  3. 基于python实现高分二号遥感影像水体提取与水质反演(黑臭水体与水体富营养化)

    高分二号遥感影像水体提取与水质反演 水体提取函数--NDWI 基于几何约束提取河流 生成shp,方便后续裁剪水体 水质反演 最终结果 水体提取函数--NDWI 水体提取函数water.py impor ...

  4. GEE:对Sentinel-2遥感影像进行处理,水体提取与可视化

    作者:CSDN @ _养乐多_ 本文介绍了通过Google Earth Engine平台,并使用哨兵数据提取水体掩膜的方法和代码.通过裁剪和去除云等处理步骤,最终得到具有水体掩膜的影像,并进行可视化和 ...

  5. GEE:基于GEE的单个湖泊的实时水体提取(以武汉东湖为例)

    前言 博主不主修遥感方向,不是专业人士,由于毕设需要使用GEE,故临时学习并做了记录,由于是博主自己钻研的,不知道有无其他更便捷的方式.若文中有错误欢迎指正. 在做毕设的时候是对武汉市所有湖泊进行分别 ...

  6. 论文笔记(五)FWENet:基于SAR图像的洪水水体提取深度卷积神经网络(CVPR)

    FWENet: a deep convolutional neural network for flood water body extraction based on SAR images 作者:J ...

  7. ArcGIS中矢量裁剪栅格影像及影像合并【附练习数据下载】

    关于栅格影像数据的裁剪跟合并我们之前发过很多相关教程,工作中小助手经常用的软件是ArcGIS和Global Mapper 关于Global Mapper相关裁切技巧大家可以看之前发过的一篇→Globa ...

  8. 计算机信息提取实验报告,水体提取实验报告.doc

    水体提取实验报告 水体提取实验报告 地理121 王霞 2012211300 一.实验目的 提取TM图像中的水体信息,对试验区1991图像和试验区2002图像中的水体进行提取,分析比较图像结果. 二.实 ...

  9. python矢量裁剪栅格代码_Python中使用面状矢量裁剪栅格影像,并依据Value值更改矢量属性...

    本文整体思路:在Python中使用Geopandas库,依次读取shp文件的每一个面状要素,获取其空间边界信息并裁剪对应的栅格影像,计算所裁剪影像Value值的众数,将其设置为对应面状要素的NewTY ...

最新文章

  1. 高通5G开始挤牙膏?骁龙865+发布,性能小幅提升,一加听了要笑,魅族看了会流泪...
  2. H3C无线 AC网关式部署无线开局(WEB版)
  3. 激光标记舱口轮廓生成_宣城国产圆管激光切割机-利晟激光
  4. python 绝对路径
  5. java wav 时间,Java-调整WAV文件的播放速度
  6. 二叉树的字符图形显示程序_每个程序员都必须知道的8种通用数据结构
  7. KG—ARM-Thumb子程序调用规则—ATPCS
  8. Spring-beans-BeanPostProcessor/InitializingBean
  9. Mysql--Auto_increment详解
  10. day 32 半链接、粘包问题、finally
  11. 高等数学---用python求极限
  12. EAS BOS 序时簿做组织单元隔离
  13. 【每日新闻早报】9月17日 星期二
  14. JESD204B参数及时钟关系
  15. 在Linux下安装配置bochs,并成功跑一个简单的boot引导(超详细)
  16. 由《成为乔布斯》联想而来
  17. 快速了解矢量量化Vector-Quantized(VQ)及相应代码
  18. 数模国赛历年题目 1992——2021
  19. 电源模块中滤波电容的作用
  20. 解决cocos2d-x pvr.ccz格式的图片有时无法读取的一个bug

热门文章

  1. 多所高校官宣:寒假提前,延长假期!开启学生第一批返乡工作
  2. 聊天机器人是一场真正的革命?未来将成为私人小秘书
  3. 离散数学学习笔记— —范式
  4. Python编写微信打飞机小游戏(七)
  5. 做一个正气的杭电人--hdu2500
  6. VS2019实现简易的射击坦克小游戏(easyx)
  7. 淘宝无货源店群模式和亚马逊无货源店群模式有什么不同?
  8. php快递鸟单号查询api接口免费对接调用
  9. 成功就在于再坚持一下之中。
  10. ARMv7-A,ARMv7-R和ARMv7-M之间有什么区别?