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

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

     栅格影像分幅裁剪

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


图:工具界面
工具

        工具介绍:ui

     摘要:spa

     根据输入栅格数据集建立分块输出。设计

     用法:教程

  • 输出文件将共享输入源栅格的大部分属性,例如,空间参考、源类型、像素类型、像素深度和像元大小。ip

  • 分块方法可肯定使用哪些可选参数来判断输出分块的尺寸和位置。在这两种状况下,使用 NoData 值在没有相应源数据的位置填充分块。数据格式取决于各类格式规范的限制以及源图像数据类型。无效组合会产生相应的错误消息。get

  • 若是分块已经存在(若是存在同名文件),则不会覆盖此分块。产品

  • 若是分块仅包含 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建模工具完成批量裁剪。