欢迎关注公众号:GEEer成长日记
目录
01 首先,chatGPT是什么?
02 进入正题,如何进行边缘检测?
chatGPT推出之后,引发了激烈的讨论,今天带各位看看它在GEE方面能为我们做什么。原本想着它可以帮我们写代码,奈何昨晚奋战到巴西输球,也没得到一个较好的结果。
我想让它在GEE实现两个数组的相关性分析,并输出相关系数,但是尝试了20次,都没有成功。每次都给我推荐一些GEE没有的函数,不过看起来有理有据的样子。所以今天试试提取海岸线,也就是边缘检测。
关于边缘检测我在之前的推文中有涉及到,但没有较好的应用,今天作为一个小小案例,抛砖引玉一波。
01 首先,chatGPT是什么?
它可以帮你写信:
也可以帮你查资料,但准确度有待考证:
02 进入正题,如何进行边缘检测?
比较好的一点是,这个案例非常准确,但是函数稍有错误,我们需要简单修改就OK。替换成ee.Algorithms.CannyEdgeDetector
// 根据给定的研究区域,按照海拔进行边缘检测就OK
// 加载图像
var image = ee.Image('CGIAR/SRTM90_V4').clip(geometry);
// 运行边缘检测,阈值设置为100
var edge = ee.Algorithms.CannyEdgeDetector(image,100);
// 展示结果
Map.addLayer(edge);
03 Wait!我们今天想进行海岸线的提取,How can do it?
// 我对代码进行了简单的修改
// 读取遥感影像数据
var image = ee.ImageCollection('COPERNICUS/S2').filterBounds(geometry).filterMetadata('CLOUDY_PIXEL_PERCENTAGE','less_than',1).median();// 计算MNDWI指数
var mndwi = image.expression('(B3 - B11)/(B3 + B11)',{B3:image.select('B3'),B11:image.select('B11')
}).rename('MNDWI');// 利用Canny边缘检测算法进行边缘检测
// 0.8代表了MNDWI指数的阈值
var mndwiEdges = ee.Algorithms.CannyEdgeDetector(mndwi,0.8, 0.1);// 显示结果
Map.addLayer(mndwiEdges.gte(1).selfMask(), {palette:['red']}, 'MNDWI edges');
从图中我们可以看出,示例代码稍加修改还是可以实现的,但是每个影像的边缘也会检测到,是因为我选择的影像并没有进行研究区域裁剪。
ChatGPT还可以为我们做什么?拭目以待吧。