立即注册 登录
气象家园 返回首页

瞌睡猫喵的个人空间 http://bbs.06climate.com/?13768 [收藏] [复制] [分享] [RSS]

日志

Arcgis:用不规则矢量多边形裁切栅格数据的方法和问题

已有 185 次阅读2020-5-12 17:14 |个人分类:Arcgis

空间分析中的掩膜提取和栅格处理中的裁剪。

  1空间分析中的掩膜提取

  在ArcGIS中,空间分析中的掩膜提取是通过ArcToolbox->Spatial Analyst Tools->Extraction->Extract byMask实现的。在Extract by Mask对话框中设置好输入输出参数以后,直接点击OK即可得到掩膜后的栅格数据。然而看似简单的过程实则包含了几个比较棘手的问题。

  1.1错位重叠

  裁切前后两个栅格的像元并不一定是完全重叠的,有可能错位,也就是说对应像元的中心点不是一个点,如下图1所示。这时裁切后像元的值可能是裁切前相邻像元的值,所以对应值就可能不一致,尤其在高程变化比较大的地方表现得更为明显。
  图1 栅格数据裁切像元不完全重叠

  若想让裁切前后的每个像元都完全重叠,可在裁切界面的Environment Settings里设置snap raster成裁切前的数据即可。

  1.2 Pixel Depth变化

  用不规则矢量多边形裁切栅格数据时,Extract by Mask对话框中没有提供设置Nodata的选项,这导致有时会出现裁剪后的pixel depth由原来的8bit变成了16bit(如下图2所示)。
  原因为Unsigned 8 bit栅格的值的范围是0~255,当用不规则polygon裁切时,为了保留mask的准确的形状,系统会在polygon外的部分生成nodata区域,而nodata在栅格里是以某个极大值存储的(一般是65535)。当裁切部分的值已经占满0~255的所有值时,nodata的值只能是255以外的某个值了,系统自动会将栅格改为Unsigned 16 bit,导致数据量倍增。

  解决方法为在arctoolbox中使用栅格计算器工具,运用setnull命令将选定(个数最少的那类象元值)的值(如0值)设为nodata,然后再裁剪。

  1.3 黑边处理

  在栅格数据中,除了符合比特深度(Pixel Depth)的值之外,用于标记此处Nodata的值----就是空值。产生空值的原因有很多种,有可能是在数据采集的时候,传感器没有记录下某个位置的反射值,或者是由于噪声。然而最常见的则是对卫星影像做了地理配准后,影像的覆盖范围变为菱形/平行四边形所造成的边角是黑色的情况。

  用Identify工具查看黑边所示的像元值,通常会发现用0或者极小值来标记Nodata,而在ArcGIS中0值是一个有效值而不是空值。出于这个原因,在渲染这类影像的时候,ArcGIS会将0值渲染成黑色,而不是作为空值处理成透明色。那么我们如何消除这个黑边的问题呢?

  在ArcGIS中,我们可以在图层属性Symbology页下看到这样的一个设置:Display Background value…as…。通过输入0,0,0,以及将颜色设置成透明,就可以达到让黑边消失的渲染效果(如下图3)。
  图3 在Symbology中设置黑边

  以上黑边处理是对单一的栅格数据,在实际应用中有时会遇到Mosaic Dataset这种数据模型,ArcGIS中提供了一个解决Mosaic Dataset中黑边问题的工具Define Mosaic DatasetNoData。在工具中可以对每一个波段单独设置空值,完成后也可以得到理想的黑边变透明的效果。

  然而以上处理并没有从根本上裁切掉那些黑边,要从根本上解决问题可以通过导出的方式将黑边设置为空。具体操作就是在Export Data的时候,在NoData的选项中输入0,0,0(如图4)。看似问题得到了解决,然而这种做法会将影像中那些本来就是0值的像元也抹掉,所以这个办法要慎用。
  图4 在导出栅格数据时设置Nodata

  那么目前有没有既有效又彻底的方法来解决不规则矢量多边形裁切栅格数据时出现的上述问题呢,答案依然是裁剪,接下来介绍栅格处理中的裁剪方法。

  2栅格处理中的裁剪

  在ArcGIS中,空间分析中的掩膜提取是通过ArcToolbox->Data ManagementTools->Raster->Raster Processing->Clip实现的。在Clip对话框中输入待裁切的栅格数据以及矢量多边形数据等参数,直接点击OK即可完成裁剪。通常输入矢量多边形时,系统会自动获取该矢量多边形的最小外包矩形的范围作为实际裁剪的区域,而我们只需要勾选Use Input Features forCliping Geometry(Optional)选项(如图5所示)就可以保证裁剪出来的栅格区域就是我们真正想要的。同时还需要注意的是,Clip对话框中同样还提供了Nodata Value选项,我们可以将那些需要设置为空值的像元过滤掉。
  图5 Clip中参数设置

  通过对比以上两种矢量裁切方法,我们发现栅格处理中的裁剪方法既简单又有效。对于习惯用Extraction by Mask方法的用户来说,与其舍近求远不如直接用Data Management Tool中的Clip工具。
————————————————
版权声明:本文为CSDN博主「地理国情监测云平台」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dsac1/article/details/41212685


二、ArcMap中裁剪影像或DEM等栅格数据,clip和mask遇到的问题
转载:CSDN 刘坤的博客
arcgis中的ArcToolbox的使用,必须是在英文路径下!!!英文路径下!!!英文路径下!!!进行保存等操作。

1、首先新建工作区面矢量,不会新建面矢量的:传送门。

2、利用search搜索mask工具或者clip工具

3、选择extract by mask或者clip(Data Management)裁剪(保存的名称必须是英文,必须带上后缀“.tif”或者“.img”,而且名称长度有限制)
4、如果mask提示License不能用,那么就是没有打开Spatial Analyst的工具,打开如下图:顺便把3D等工具也都打开吧!!!

5.如果使用clip裁剪出来是个矩形,那是因为没有将下面的打勾,没有使用矢量图形作为边界,而使用四至点作为顶点了。因此,将下面打勾即可:


6.clip可以调节影像的stretch的方式和值、以及Apply Gamma Stretch的值可以改变影像的显示效果

7、mask可用于有拓扑问题的图形的裁剪,即:只要是有面矢量,不管这个矢量有什么问题,mask都能裁剪;而clip不行,clip对矢量要求比较高。

8、mask与clip的区别:mask掩膜只是把不需要的地方不显示;而clip是真正的裁剪

9、clip结束后可以右击,data,export raster data导出数据,然后修改名字

注意:mask裁剪的影像可能会产生“白点”等问题,因此优先推荐使用clip,如果clip不行,再换mask。
 
————————————————
版权声明:本文为CSDN博主「刘坤的博客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/liukunrs/article/details/80320354

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

返回顶部