arcgis遥感图像去黑边林林种种(至少7种方法)

数据库

当咱们在ArcGIS中打开一景遥感影像时,是否是老是在咱们的研究区周围出现咱们并不但愿看见的黑边,这种黑边在咱们作图像分析或排版出图时老是个累赘,今天就教给你们在ArcGIS中轻松去除黑边。函数

     影像产生黑边的缘由无外乎在设置无效值时,将无效值设成了0,而影像在导入软件进行渲染时,并无进行黑边的预处理,致使展现时有黑边出现。工具

    在ArcMap中打开地图,咱们会发现,黑边区域像元的DN值为0。咱们的第一反应就是将影像中像元DN值为0的部分抹掉。不错,软件就是应用这个原理来工做的。如下提供至少7种方法用于去黑边,由于有的方法里面还有好几种。ui

1、单个或多个图像导入软件时属性中设置去除黑边

一、 单个图像属性设置去除   spa

在ArcMap中,每一个图层均可以在其属性中进行符号化设置,黑边是图像中的背景,所以,去除黑边也是在对图层进行符号化时设置。具体步骤以下:3d

    (1)右键单击图层,在下拉菜单中选择Properties;code

    (2)在打开的图层属性(Layer Properties)对话框中,选择Symbology选项卡;htm

    (3)在此选项卡中找到DisplayBackground Value:(R,G,B)可选框,这里勾选上,而后,设置RGB的值均为0,设置颜色显示为Nocolor。blog

二、多个图像属性设置get

或者在影像导入以前,设置ArcMap地图属性。操做过程为,arcmap 菜单 自定义-arcmap选项-栅格-栅格图层-去除背景值,勾选0-0-0.

 

    可是,用这种方式去除黑边只是会改变背景的显示状态,并无对数据自己作任何改变,从新将图层加载进来时,仍会显示黑边。

2、应用setnull工具去除黑边

    该工具的原理是将某一数值设置为Nodata(这里咱们把值为0的像元设置为Nodata,其它像元数值保持不变)。该工具只能是对单波段数据进行操做,若是咱们获得的数据是单波段的,那这种方法再合适不过了。

    工具位置:ArcToolbox—Spatial Analyst Tools—Conditional—Set Null

    参数设置以下:

 

        Inputconditional raster:这里选择的样例数据为Landsat5数据的第5波段;

        Expression(optional):写入SQL查询语句,这里将值为零的像元设为Nodata。

        Input falseraster or constant value:值不为零的像元数值保持不变,仍为原始像元值。

        Output raster:设置输出影像位置。

3、应用copyraster工具去除黑边

    Copy Raster工具能够对多波段和单波段数据进行操做,固然,该工具不只仅是用来去影像黑边的,它的功能很强大,这里不作过多赘述。咱们来看他是如何去除影像黑边的。

    工具位置:ArcToolbox—Data Management Tools—Raster—Raster Dataset—CopyRaster。

    参数设置以下:

 

        Input Raster:输入须要去黑边的影像;

        Output RasterDataset:设置去黑边后影像的位置;

        IgnoreBackground Value:设置要忽略的像元值,这里将像元值为0的抹掉。

        其余参数选择默认。

 

若是你的研究数据中也有0,也就是说部分0值像元为有效像元,不用担忧,Copy Raster工具只会处理周边0值。

四,软件不兼容产生的黑边去除    

若是是两种不一样软件产生的影像金字塔也有可能出现黑边,好比,使用erdas生成了边缘为0值影像的金字塔,那么该影像在导入arcgis 中展现时也必定会有黑边现象。这种状况是因为两款软件不兼容产生的,解决办法是将原有金字塔所有删掉,使用arcgis金字塔工具所有从新建立金字塔,就不会出现黑边了。

5、 栅格计算器/Raster Calculator 去除黑边

单波段数据处理起来经常相对容易些,最经常使用的工具就是 栅格计算器/Raster Calculator 了。Raster Calculator 能够经过输入的Python语法的表达式,对当前数据框内的栅格图层进运算。它是个很是实用的栅格数据处理工具,若是你想 Dive In ,点 这里了解 Raster Calculator 的工做原理。

例如这个需求中仅须要一个简单表达式,使用到SetNull函数,以下所示:

其中,表达式是 SetNull("RasterLayer" == 0 , "RasterLayer" )

这样执行工具以后,全部的 0 值变成了 Nodata,完全去了黑边。

6、影像分析去除黑边

多波段数据一样会受到黑边的困扰,并且现实状况每每没有单波段数据那么理想,仅经过一个表达式就能够搞定。例如,咱们经常使用的影像底图数据,一般有三个波段,经过包含RGB三个波段的一组值来表示像元值,例如 (0,255,129)。我通常会根据须要处理的数据量的多少给出不一样的处理方法建议:

一样第一步须要确认黑边值是什么?本例中是 (0,0,0)

ArcMap的 Windows 菜单中有 Image Analysis 。在 Image Analysis 窗口中的 Processing 部分能够对当前数据框中的图层赋予函数或函数链,从而对栅格数据实时处理。

在弹出的窗口中,在 fx行右键插入函数,例如这个需求中会使用到 Mask Function。

设置 Mask Function,(0,0,0) 组合是无效值。为何选择 All 而不是 Any? 这个答案很显见,同时都为0的像元值才是无效值,不然不是,例如(1,255,0)是有效的。或者说各个波段的0值是and关系,而不是or。

这样带有函数的新栅格图层会自动加入 ArcMap 的 TOC,看起来万事大吉,然而这里须要说明下,这个图层须要Export到硬盘上的某个位置,它目前仍是个临时数据,当layer被移除掉,这个结果就不复存在。

因此,最后重要的一步,导出数据。

 这种方法,还适用于具备多种无效值的状况。例如,除了(0,0,0) 还包含 (255,255,255) :

咱们须要作的仅是继续增长栅格函数。在 Function Template Editor 中函数们顺序相接,像个环环相接的链条,因此称为 ”函数链/ Function Chain“,咦,好像跑题了。请继续看如何设置无效值:

这样就实现了去掉两组无效值。

7、镶嵌数据集去除黑边

那么摆在你面前的数据不是一个,而是“不少”呢?凡事保证质量以后,重复工做多了以后就同时须要保证效率,那么这种方法适用于“不少”、“大量”……

ArcGIS 的镶嵌数据集是个理想与实用兼备的影像数据管理模型,咱们用它来“处理”大量栅格数据也是个不错的选择。

在地理数据库中建立镶嵌数据集,并将数据添加到镶嵌数据集中,以后:

在镶嵌数据集中可使用工具 Define Mosaic Dataset Nodata 工具,对数据的无效值进行定义。

从而批量去除了无效值。

镶嵌数据集自己也支持栅格函数,相似影像数据窗口中函数模板的设置,一样能够设置函数链来实现一些复杂的要求。

固然,咱们在使用镶嵌数据集的时候,也能够在重建footprint的时候去除无效值。但它只适用于影像边缘值同样的状况下。

      使用 Build Footprint 工具执行系统计算获得新的轮廓线。
      从新定义轮廓线的方法有:
        RADIOMETRY:根据像素值范围来从新定义轮廓线的形状,从而排除无效数据(*辐射法从新计算轮廓线这个小专题能够展开,之后有时间能够详细整理。)
       GEOMETRY:将轮廓线的形状从新定义为其原始几何形状
       COPY_FROM_SIBLING:在使用全色锐化的栅格类型时,轮廓线将被替换为多光谱项的轮廓线。

      设置有效值区域,好比,影像位深是8位,那么设置为将像素值设置为1-255,0黑边自动去除。