在矢量叠加,即将同一区域、同一比例尺的两组或两组以上的多边形要素的数据文件进行叠加产生一个新的数据层,其结果综合了原来图层所具有的属性。矢量叠加操作分为:交集(Intersect)、擦除(Erase)、标识叠加(又称交补集,Identify)、裁减(Clip)、更新叠加(Update)、对称差(Symmetrical Difference)、分割(Split)、合并叠加(Union)、添加(Append)、合并(Merge)以及融合(Dissolve)等类型。
 
这里首先提醒一下:
编辑里边的merge是将同一要素类里边的要素合并生成新的要素,并将原要素删除,其属性按指定的要素修改。
编辑里边的union可将同一要素类或不同要素类的要素合并生成新的要素,不删除原要素,新要素的属性为系统默认值(空格或0等,根据字段属性而定)。
编辑里的merge和union是对选中的要素进行操作,而arctoolbox里的是对要素类进行操作。
 
交集(Intersect),计算两个图层几何对象相交的部分。对于ArcToolBox中的Intersect工具来说,可以选择保留所有的属性字段或是只有FID或是除了FID所有的字段。而相应的Editor Tool中也有一个类似于Intersect的工具,对于这个工具来说,与我们ArcToolBox中Intersect不同的是,它所产生的最后结果是没有属性的,是需要人工输入属性值的。
此工具要求input features是简单要素类,如point、line、polygon,不能是复杂要素类,如annotation、network等。
当input features是不同的要素类型时(如point和polygon、line和polygon),输出的结果默认是维数较低的类型,如line和polygon的默认结果是line,point与line的默认结果是point。结果类型可以降低维数,比如polygon和polygon的默认结果是polygon,但可指定为line或point。
结果可能有多部件要素(multipart features),可用multipart to singlepart工具打散。
擦除叠加(Erase),目标特征与要擦除区域多边形进行叠加,只有落在要擦除区域外的特征方可能保留下来,并拷贝到输出特征集中。使用中需注意,用于擦除的区域必须是多边形,不能是点线。 erase后的结果可能有多部件要素(multipart features),可用multipart to singlepart工具打散。
标识叠加(Identify,这个工具最让人迷惑了,说实话,当时我就没记得还有这样一种工具,呵呵。现在看起来,这个工具还是挺有用的嘛,至少从ArcGIS的帮助文档看来。该工具只能在拥有ArcInfo许可的时候才能使用。它的功能是,将输入特征与标识叠加对象进行Intersect操作,输入对象中与标识对象叠加的部分也获得了标识叠加对象的属性信息,其他部分保持不变。
此工具要求input features是简单要素类,identity features必须是polygon要素类。
结果可能有多部件要素(multipart features),可用multipart to singlepart工具打散。
当选中keep_relationships选项时,结果的属性表中将会增加input features和identity features空间相关的字段。当input features是line时,结果的属性表将会增加两个字段left_poly和right_poly,分别存放左边和右边identity features的fid值。
裁减(Clip,这个工具最能让人与Erase工具弄混了,与Erase功能相反,它保留了输入特征与裁减特征相重的部分。Clip工     具可以裁减特征集、栅格数据与coverages(裁减Coverages需要有ArcInfo级的许可)。需要注意的是在Editor Tool中也有Clip这样的一个工具,其功能与矢量叠加中的Clip功能并不相同,它既可以保留相重部分,也可以减去相重的部分。当然,Editor Tool中的Clip就不属于我们这里讨论的矢量叠加的范围之中了。
更新叠加(Update,两者相交的部分属性信息为更新特征所有的属性信息,其他不相交的部分保持不变。
update features全部写入输出结果中。
结果可能有多部件要素(multipart features),可用multipart to singlepart工具打散。
此工具要求input features和update features必须是polygon类型的,且属性表结构要一致,否则将丢失属性。当borders选项选中时,update features中的每个要素的外轮廓都将保留在结果中,即保持update features原来的形状,这是默认选项。当borders选项未选中时,update features的所有要素及与之相交的input features的要素会融合在一起,形成重叠的几个要素,重叠要素的个数和update features的要素的个数形同,这几个要素分别赋予update features的每个要素的属性。
对称差(Symmetrical Difference,即计算输入特征与更新特征不相交的部分形成新的文件。
结果文件的属性表根据joinattributes选项的不同而不同。当选项为no_fid时,将input features和update features的属性表中除fid外的所有字段传递到结果的属性表中;当选项为only_fid时,只将input features和update features的属性表中的fid传递到结果的属性表中;当选项为all时,将input features和update features的属性表中的所有字段传递到结果的属性表中;
从属性表中可区分各个要素原属于input features还是update features中。例如某个要素的fid_fa为-1时表示此要素原来不在input features中而是位于update features中。
此工具要求input features和update features均为polygon要素类。
分割(Split,即将一个特征对象分割成多个对象。这个比较好理解,可能是用以分割特征对象的那个分割文件中的任何一个多边形的边界都会起到分割的作用。
合并叠加(Union,平行输入一组特征对象,所有对象的所有属性信息都将被写入到输出文件当中去。与Update的区别在于Union保留了所有的信息而update则没有,update在输入特征与更新特征相交的部分只保留了更新特征的属性信息。
图形:union只能合并polygon类型的要素类。两个要素类合并时会处理相交部分,使之单独形成多部件要素,并且有选项选择允许缝隙(gaps)或不允许缝隙。如果过选择不允许缝隙,两个要素类合并后的缝隙将生成要素。
属性表:union合并属性表的选项有三个:all、no_fid和only_fid。all将两个要素类的属性表字段按顺序全部放在输出要素类的属性表中,包括fid。同名的字段(除fid外)在字段名后加数字以示区别(fid后加要素类名称)。no_fid将两个要素类的属性表中除fid外的字段按顺序全部放在输出要素类的属性表中。only_fid只将两个要素类的属性表中的fid放到输出要素类的属性表中,在fid后加要素类名称
添加(Append,合并输入要素类、表、栅格影像及栅格目录到一个已有的要素类、表、栅格影像及栅格目录中。感觉上是将几个图层合并成一个图层,可以把相互重合的部分融合起来。当schema type选项为test时,输入输出的要素类属性表结构必须一致,既字段名、类型、排列顺序必须完全相同,当schema type选项为no_test时可以不同。
图形:append可以合并点、线、多边形等要素类和表、栅格影像及栅格目录,但必须是相同类型的。append不处理要素,只简单地把要素放到一个要素类里,因此输出的要素类可能会有重叠或缝隙。
属性表:同输出要素类的属性表。输入要素类属性表中的字段如果在输出要素类属性表中没有将会被丢弃,但可做字段映射,将输入要素类的某个字段映射到输出要素类的某个字段。
合并(Merge,合并输入要素类、表到新的要素类、表中。就是应该是Split的反操作,把有公共边的相邻的对象连接起来。与Append有些差别,可能,据我理解,Append容许操作的数据有相重叠的部分,而Merge一般只操作相邻的对象。
图形:merge可以合并点、线、多边形等要素类和表,但必须是相同类型的。merge不处理要素,只简单地把要素放到一个要素类里,因此输出的要素类可能会有重叠或缝隙。
属性表:merge处理属性表时会把相同名字的字段合成一个,不同名字的字段按原名字、顺序全部加入输出要素类属性表中,原fid将会丢弃。merge可以进行字段映射。
融合(Dissolve,将数据按属性信息进行整合,将具有相同指定属性信息的对象融合成一个对象。这个比较简单,一般会用于大量细块操作后的整合,可以减少数据量吧。
 

最新文章

  1. OpenGL ES无法获取贴图数据原因
  2. js,jq新增元素 ,on绑定事件无效
  3. Solrj和Solr DIH索引效率对比分析
  4. Configuring a Windows Azure Project
  5. threaded模式下,比prefork模式要省资源
  6. bss 概念
  7. Java 集合 LinkedList的ListIterator
  8. 移动WEB开发资源
  9. webpack学习(三)之web-dev-server不能自动刷新问题
  10. 简单又炫酷的two.js 二维动画教程
  11. Effective Java 第三版——4. 使用私有构造方法执行非实例化
  12. Activiti开发案例之代码生成工作流图片
  13. 关于sizeof与#pragma pack 以及网络上关于字节对齐的一点感想
  14. MATLAB:图像乘除法运算(immultiply、imdivide函数),同时比较双精度类型图像运算结果
  15. [phy]在uboot阶段失能phy芯片
  16. 解决谷歌google不能访问造成wordpress打开缓慢的问题
  17. P3620 [APIO/CTSC 2007]数据备份
  18. thinkphp5.0升级
  19. 机器学习:SVM(基础理解)
  20. Linux组和提权

热门文章

  1. 一些php常用函数积累
  2. Python3 Selenium自动化web测试 ==>FAQ:隐式等待和sleep区别
  3. DRF视图-5个扩展类以及GenericAPIView基类
  4. android#嵌入式布局并创建自定义控件
  5. 【miscellaneous】多播的实现和需要注意的问题
  6. 获取web项目的绝对路径的方法总结
  7. Spring 循环依赖的三种方式(三级缓存解决Set循环依赖问题)
  8. P1062 数列 题解
  9. Yii源码分享-底层+view层1
  10. GET POST请求区别