加载的栅格图层在arcgis中显示有黑色背景

方法一:
如果有矢量边界的话,直接用矢量边界把黑色背景裁剪掉即可。

方法二:

如果是RGB三色:

这个只是不显示,并不改变原有的值

如果是值:

附:为影像数据去除无效值

在使用栅格数据时,黑边和白边问题

 方法一:栅格计算器

在去黑边之前最先需要了解的是黑边的像元值是什么? 可以使用 Identify 工具 查查看。 例如这份数据是 0。

这时,你也许会想到设置图层背景值的色彩可以吧?

如果仅为了显示使用,是可以解决问题的,但传统意义上的去黑边,我们一般理解成栅格数据的处理,也就是从存储上修改特定值(本例中是 0)值为 Nodata。

单波段数据处理起来常常相对容易些,最常用的工具就是 栅格计算器/Raster Calculator 了。Raster Calculator 可以通过输入的Python语法的表达式,对当前数据框内的栅格图层进运算。例如这个需求中仅需要一个简单表达式,使用到SetNull函数,如下所示:

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

这样执行工具之后,所有的 0 值变成了 Nodata,彻底去了黑边。

方法二:影像分析窗口

多波段数据同样会受到黑边的困扰,而且现实情况往往没有单波段数据那么理想,仅通过一个表达式就可以搞定。例如,我们常用的影像底图数据,通常有三个波段,通过包含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“,咦,好像跑题了。请继续看如何设置无效值:

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

 方法三: 镶嵌数据集

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

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

在地理数据库中创建镶嵌数据集,并将数据添加到镶嵌数据集中,之后

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

从而批量去除了无效值。

镶嵌数据集本身也支持栅格函数,类似影像数据窗口中函数模板的设置,同样可以设置函数链来实现一些复杂的要求。

常见的操作一般就这几种,总结下,单波段优先考虑栅格计算器;多波段可以使用影像分析窗口;如果数据量较大,建议使用镶嵌数据集。

ArcGIS Desktop中为图像设置成不显示背景色的更多相关文章

  1. 在ArcGIS Desktop中进行三参数或七参数精确投影转换

    转自 在ArcGIS Desktop中进行三参数或七参数精确投影转换     ArcGIS中定义的投影转换方法,在对数据的空间信息要求较高的工程中往往不能适用,有比较明显的偏差.在项目的前期数据准备工 ...

  2. 转-ArcGIS Engine中的License设置

    AE开发中的License有两种方法进行设置,一种是通过LicenseControl控件,另一种是通过IAoInitialize接口设置.整个应用程序中只能有一种方式存在,如果进行了两种License ...

  3. Myeclipse中全部文件设置成UTF-8

    如果要使插件开发应用能有更好的国际化支持,能够最大程度的支持中文输出,则最好使 Java文件使用UTF-8编码.然而,Eclipse工作空间(workspace)的缺省字符编码是操作系统缺省的编码,简 ...

  4. ArcGIS Desktop中面与面之间空隙填充

    1.前言 再给客户培训过程中被问到这样一个问题,几个面中间有一个空心部分(如下图所示),如何快速绘制中心部分的要素. 2.操作流程 1.打开Editor工具栏,开始编辑操作. 2.点击创建要素按钮,打 ...

  5. HTML中tr标签设置边框不显示的解决办法

    今天在操作表格的时候发现设置表格中行的边框没有显示,然后自己新建了一个表格发现确实不显示 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr ...

  6. echarts将图表Y坐标刻度设置成只显示整数

    echarts的配置项中没有直接将坐标刻度强制设为整数的选项,但可以通过minInterval属性将刻度以整数形式显示,在配置项的yAxis对象中添加属性: minInterval: 1 表示将刻度的 ...

  7. Python 读取文件中unicode编码转成中文显示问题

    Python读取文件中的字符串已经是unicode编码,如:\u53eb\u6211,需要转换成中文时有两种方式 1.使用eval: eval("u"+"\'" ...

  8. jmeter设置成中文显示

    meter默认语言设置: 1.临时设置: 进入options -- Choose Language -- 选择中文简体,设置后语言切换成中文,重启失效 2.永久设置:进入jmeter目录下的bin目录 ...

  9. 安卓constraintLayout中app:srcCompat设置的图片显示不出来

    使用 app:srcCompat 的时候 引入的图片显示不出来的解决方案 首先查看的你的Activity 继承的是那个Activity 如果是继承AppcompatActivity  使用 Image ...

随机推荐

  1. 如何Windows下配置Prometheus的监控数据文件为3天

    如上图,prometheus的data文件夹时间久了会变得很大,听说是保留15天的数据.但是实际上,我只需要保留3天的数据就够了,之前试过用批处理文件清理,但是强行删除会导致peometheus崩溃, ...

  2. LinuxProbe小结

    1.修改主机名: /etc/hostname 2.配置 yum 软件仓库: (1)进入到 /etc/yum.repos.d/目录下,创建一个linuxprobe.repo的新文件(文件名称任意,结尾必 ...

  3. Prometheus学习系列(三)之Prometheus 概念:数据模型、metric类型、任务、实例

    前言 本文来自Prometheus官网手册1.Prometheus官网手册2 和 Prometheus简介 说明 Prometheus从根本上存储的所有数据都是时间序列: 具有时间戳的数据流只属于单个 ...

  4. Chilkat9.5.0.75(x86+x64)ActiveX+注册机

    链接:https://pan.baidu.com/s/1GiUnlcRX1pLDiF6yVnBnVQ  密码:ivfv

  5. ESPCMS P8 stable version Front-end reflective xss

    Download the source code first In the directory espcms_web\espcms_load.php line 67 if (!is_file($mod ...

  6. 微信小程序——表单验证插件WxValidate的二次封装(终极版)

    微信小程序表单验证前面的两篇文章做的效果总感觉都有点不太友好,第一篇里的效果是将错误信息通过对话框形式弹出来,这种形式在web形式下早已经淘汰了:第二篇是一次性全部显示所有的错误,然后3秒后自动消失, ...

  7. linux终端 tty pty pts等

    linux终端 tty pty pts等 20140608 Chenxin整理 系统变量TERM不知是用来干什么的?它的值有vt100,vt220等,这些值代表什么意思? 环境变量TERM设置为终端机 ...

  8. TCP安全,SYN Flooding 和 nmap

    目录 SYN flooding nmap nmap idle SYN flooding 简介:向target持续发送SYN=1的TCP报文,使target因内存满而拒绝服务. 命令:netwox 76 ...

  9. 带有Spring Boot和MySQL的Docker:简介(Part 1)

    通过优锐课java学习分享中,我们看一下带有Spring Boot和MySQL的Docker教程.非常实用,分享给大家参考学习. Docker是一种技术,开发人员或DevOps团队可以使用容器来构建, ...

  10. leetcode-字符串篇

    Implement strStr() /** * Implement strStr(). *  * Return the index of the first occurrence of needle ...