
简介Landsat 8是一颗遥感卫星用于获取地球表面的高分辨率影像。在图像获取过程中云是一个常见的问题因为云层会遮挡地面影响影像的质量和可用性。为了去除云可以使用遥感图像处理技术例如云检测和云去除算法。这些算法可以根据云的特征如亮度、颜色和纹理等将云区域与地表区域分离开来。去除云的原因是为了提高遥感影像的质量和可用性。云会阻碍对地表的观测并影响地表特征的提取和分析。如果在遥感影像中保留云可能会导致图像中存在遮挡、模糊或不一致的地表信息。去除云还可以提高遥感影像在各种应用中的可靠性。例如对于地表覆盖分类、土地变化监测、环境研究等应用云的存在可能会引入误差并降低结果的准确性和可信度。因此去除云能够提高遥感影像的可靠性和准确性使其更适用于各种应用领域。Landsat 8影像的QA_PIXELQuality Assessment波段提供了关于每个像素的质量信息包括云、阴影、水体等地物的掩膜。利用QA_PIXEL波段去除云可以按照以下步骤进行1. 查看QA_PIXEL波段将Landsat 8影像加载到图像处理软件中并查看QA_PIXEL波段。该波段是一个16位的整数波段每个像素的每个位都包含了不同的质量信息。2. 分析位信息根据QA_PIXEL波段中的位信息确定表示云的位通常为云第5位和阴影第3位。不同的软件可能有不同的位定义因此要根据所使用的软件和数据产品进行相应的调整。3. 创建云掩膜根据确定的位信息创建一个云掩膜。将云和阴影所对应的像素设置为1其他像素设置为0。这样在接下来的处理中云和阴影所在的像素将被排除在外。4. 应用云掩膜将云掩膜应用到原始影像中。根据云掩膜将云和阴影所在的像素设置为缺失值例如0或者使用其他插值或填充方法进行修复。需要注意的是利用QA_PIXEL波段去除云并不是一种完美的方法由于遥感数据的特性和成像条件的不同可能会出现误差和不完全的去除。因此在进行遥感影像分析时还需要结合其他方法和技术如多时相数据、特定的云检测算法等以提高云去除的准确性和可靠性。函数map(algorithm)针对ImageCollection中的每个Image进行循环计算方法参数- algorithm( function )将应用于集合中的每个图像的算法返回值: Collection代码/** * File : CloudMask_LandsatSR * Time : 2023/05/23 * Author : GEOVIS Earth Brain * Version : 0.1.0 * Contact : 中国(安徽)自由贸易试验区合肥市高新区望江西路900号中安创谷科技园一期A1楼36层 * License : (C)Copyright 中科星图数字地球合肥有限公司 版权所有 * Desc : 利用QA_PIXEL波段进行Landsat SR数据集掩膜运算去云 * Name : Landsat SR数据集云掩膜运算 */ /** */ // QA_PIXEL 波段掩膜去除像素. function maskLandsatSR(image) { var qaMask image.select([QA_PIXEL]).bitwiseAnd(31).eq(0); var saturationMask image.select([QA_RADSAT]).eq(0); var opticalBands image.select(B.*).multiply(0.0000275).add(-0.2); return image.addBands(opticalBands, null, true) .updateMask(qaMask) .updateMask(saturationMask); }; var geometry gve.Geometry.Polygon([ [ [ 116.54603647147701, 32.41625845398016 ], [ 118.01823269264935, 32.41625845398016 ], [ 118.01823269264935, 31.358171432120955 ], [ 116.54603647147701, 31.358171432120955 ], [ 116.54603647147701, 32.41625845398016 ] ] ]) var style {color: #8b0000, polygonFillColor: #00000000, lineWidth:3} Map.addLayer(geometry, {style:style}); //获取影像集合 var imageCollection gve.ImageCollection(LANDSAT_8/02/T1/SR) .filterBounds(geometry) .filterDate(2022-04-01,2022-04-30) .select([B2,B3,B4,QA_PIXEL,QA_RADSAT]); //影像集合Mask去云 var collection imageCollection.map(maskLandsatSR); //影像集合合成裁剪 var composite collection.median().clip(geometry); var visParams { bands: [B4, B3, B2], min: 0, max: 0.3 }; //影像集合显示 Map.centerObject(composite) var id Map.addLayer(composite,visParams,maskImage); // Map.flyto(id);结果