【技术类】ArcGIS里做影像分幅裁剪

0
分享 2013-07-03
最近在写ArcGIS影像技术培训教程,今天在数据准备的过程中遇到一个问题,我想利用镶嵌数据集管理dem产品,但是手里只有一景中国的90米分辨率的dem,为了实现多景dem产品的管理,我得想办法把这一景给裁了...问题来了,怎样给影像做分幅裁剪呢?我总不能通过栅格函数(clip函数),利用矢量边界裁切影像吧,这未免也太费时费力了。

栅格影像分幅裁剪
原来ArcGIS中提供了用于影像分幅裁剪的工具,Split Raster (Data Management>Raster>Raster Processing>splitRasterToolset),即分割栅格工具。


图:工具界面
工具介绍:

摘要:
根据输入栅格数据集创建分块输出。
用法:
  • 输出文件将共享输入源栅格的大部分属性,例如,空间参考、源类型、像素类型、像素深度和像元大小。
  • 分块方法可确定使用哪些可选参数来判断输出分块的尺寸和位置。在这两种情况下,使用 NoData 值在没有相应源数据的位置填充分块。数据格式取决于各种格式规范的限制以及源图像数据类型。无效组合会产生相应的错误消息。
  • 如果分块已经存在(如果存在同名文件),则不会覆盖此分块。
  • 如果分块仅包含 NoData 像素值,则不会创建此分块。

分割方法描述:
分割栅格数据集时使用的分块方法。该方法将确定每个输出数据集的分块大小和数量。
  • SIZE_OF_TILE —用于指定分块宽度和分块高度。随后将创建相应数量的分块。这是默认方法。 还可以指定不同的左下角原点和输出像素大小,以及邻接分块之间的重叠量(以像素、米、英尺、度、英里或千米为单位)。
  • NUMBER_OF_TILES — 用于指定要在水平和垂直方向上创建的栅格分块的数量。随后将为每个数据集创建相应的分块大小。 还可以指定不同的左下角原点和输出像素大小,以及邻接分块之间的重叠量(以像素、米、英尺、度、英里或千米为单位)。

因为我只想得到分幅的影像数据,所以就选择了NUMBER_OF_TILES,分块为10*10,通过这种方式我得到了100景dem数据。



图:分割方法选择

通过c#也可实现影像分幅裁剪,代码如下:

图:代码实现影像分幅分割
代码下载地址:http://vdisk.weibo.com/s/x5vzP

矢量数据分幅裁剪
上面说了对于栅格数据的分幅分割,那么对于矢量数据呢?ArcGIS同样提供分割工具(Analysis Tools>Split)。在此之前要进行渔网创建,Create Fishnet (Data Management>Feature class>Create Fishnet Toolset) 。
Create Fishnet工具介绍:

摘要:
创建由矩形像元组成的渔网。输出可以是折线或面要素。
用法:
  • 可通过在模板范围参数中输入要素类或图层,或通过设置“输出坐标系”环境变量,来设置输出的坐标系。
  • 除了创建输出渔网外,如果将创建标注点参数设置为LABELS(选中),则还会在每个渔网单元的中心创建一个包含标注点的新的点要素类。此要素类的名称以_label 为后缀并与输出要素类相同,且创建于同一位置。
  • 几何类型参数用于选择是创建输出折线单元(默认)还是面单元。创建面渔网可能很慢,具体情况取决于行数和列数。
  • 单元宽度和单元高度值所用的单位与输出要素类定义的相同。


设计一个应用场景,如何做矢量数据的分幅裁剪?
第一步,利用Create Fishnet工具创建渔网;

图:渔网创建

第二步,添加属性字段
向所得的渔网图层添加数据类型为“TEXT”的字段。


图:字段添加
第三步,利用split工具得到裁剪矢量边界
打开矢量分割工具,Analysis Tools>Split

图:矢量分割

执行,得到用于裁剪的矢量边界。进行影像分幅分割时,可利用实时处理函数(clip)逐景得到裁剪影像,也可以利用Model Builder建模工具完成批量裁剪。

文章来源:http://blog.csdn.net/arcgis_all/article/details/8785064

0 个评论

要回复文章请先登录注册