小议ArcMap面转线的几种方式
ArcMap是一个功能丰富的复杂系统,但凡对它有些认知的会同意这个观点。
它的丰富与复杂体现在一个objective有多种implementation,还体现在多种implementation有类似的result。分析这些同与不同,可以帮助我们更好地认识与综合运用这个系统。
这里,博主单拎出“面转线”这个objective小议一下。
Preparation
1、演示使用软件版本为ArcGIS Desktop 10.1,其他版本可能存在结果不一致的情况(这也是“复杂”的一种表现),演示中会使用ArcToolbox组件。
2、搞一个面要素类,最好存在如下图所示的孔洞、岛屿、重叠面等要素,保证我们测试数据足够的复杂。
Implementation 1—Feature To Line
第一种实现方式我们选择“要素转线”,它在ArcToolbox的“数据管理”工具箱——“要素”工具集中,具体的工具功能可以阅读其说明。
输入的要素类是我们准备的面要素类,输出结果博主这里是"p2_FeatureToLine"面要素类,使该要素类图层进入编辑状态,我们看一下结果的特征:
1、线是根据面相接或者面重叠断开的
2、所有的交界部分的公共边(下图高亮部分)生成了2次
需要特别说明的是最下边的圆形是一个岛屿与外围面的公共边。
Implementation 2—Polygon To Line
第二种实现方式使用“面转线”工具,它的路径与“要素转线”工具路径一致。
输入的要素类仍然是我们准备的面要素类,输出结果博主这里是"p2_PolygonToLine"面要素类,使该要素类图层进入编辑状态,我们看一下结果的特征:
1、线是根据面相接或者面重叠断开的(同上一种公具,不再附图)
2、公共边界只生成了一条线
3、重叠面的边界生成了2次,重叠面覆盖的公共边生成了4次
Implementation 3—Polygon Copy To Polyline
这是一种简单生硬的操作方式。
新建一个线要素类(注意空间参考与面要素类一致),将要转线的面要素类在编辑状态选中所有要素图斑,复制→粘贴到这个新建的要素类,博主这里该要素类的名字是“Polygon2Polyline”。
同样,我们看一下它的特征(请忽略图中的2,4字样注记,截图疏忽,忘记删掉):
1、所有的面要素均转为了独立的线要素,不受要素图斑空间关系的影响
2、多部件面要素会转换为多部件线要素
需要补充一下的是不知道如何验证是否多部件的翻翻博主的这一篇博文→解析ArcGis的字段计算器(二)——有玄机的要素Geometry属性,在属性表就能查出孔洞、多部件
Implementation 4—Intersect
这个工具有一个快捷打开入口,在工具栏——“地理处理”下拉。
可以将输出类型设置为“LIne”,从而输出面公共边为线要素类。
接下来,编辑一下,看看特征:
1、结果不受重叠面的影响,只是将公共边生成线要素(如下图,红色)
2、所有公共边生成2次线要素
Summary
1、如果需要获取面要素根据邻接关系转换成多线,使用Polygon To Line工具,需要注意的是先排除一下面要素类可能存在的重叠问题,再进行转换。
2、如果需要获取面要素完全转换成单个线要素,使用上述的第3种实现方式,即Polygon Copy To Polyline,借助这种操作可以变相使用线要素类的自相交拓扑检查面要素的自相交。
3、如果需要获取面要素的公共边,使用Interset工具,注意设置输出类型为“Line”。
4、对于“面转线”这个objective,想不出Feature To Line工具有啥鸟用。
小议ArcMap面转线的几种方式的更多相关文章
- 不停止MySQL服务增加从库的两种方式
不停止MySQL服务增加从库的两种方式 转载自:http://lizhenliang.blog.51cto.com/7876557/1669829 现在生产环境MySQL数据库是一主一从,由于业务量访 ...
- Spring依赖注入三种方式详解
在讲解Spring依赖注入之前的准备工作: 下载包含Spring的工具jar包的压缩包 解压缩下载下来的Spring压缩包文件 解压缩之后我们会看到libs文件夹下有许多jar包,而我们只需要其中的c ...
- Linux就这个范儿 第15章 七种武器 linux 同步IO: sync、fsync与fdatasync Linux中的内存大页面huge page/large page David Cutler Linux读写内存数据的三种方式
Linux就这个范儿 第15章 七种武器 linux 同步IO: sync.fsync与fdatasync Linux中的内存大页面huge page/large page David Cut ...
- 创建线程的两种方式比较Thread VS Runnable
1.首先来说说创建线程的两种方式 一种方式是继承Thread类,并重写run()方法 public class MyThread extends Thread{ @Override public vo ...
- IOS--实现滤镜效果的四种方式
IOS–实现滤镜效果 demo地址: https://github.com/AbeDay/ios–.git 使用CIFilter来完成IOS中滤镜效果 在IOS中可以使用系统自带的方法来达到路径效果: ...
- 加载xib文件的两种方式
一.加载xib文件的两种方式 1.方法一(NewsCell是xib文件的名称) NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@&quo ...
- 不停止MySQL服务增加从库的两种方式【转载】
现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库.前提是不能影响线上业务使用,也就是说不能重启MySQL服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作. ...
- HBase读写的几种方式(三)flink篇
1. HBase连接的方式概况 主要分为: 纯Java API读写HBase的方式: Spark读写HBase的方式: Flink读写HBase的方式: HBase通过Phoenix读写的方式: 第一 ...
- MySQL InnoDB 备份与恢复七种方式
有几种方式: 1 mysqldump, 这种方式不仅适用于InnoDB,还适用于其它类型的存储引擎,如MyISAM.备份的时候将数据库备份成SQL(包含drop,create,insert等语句),恢 ...
随机推荐
- YARN的伪分布式安装
前提:安装完HDFS以后 1.修改mapred-site.xml 这个文件初始时是没有的,有的是模板文件,mapred-site.xml.template 所以需要拷贝一份,并重命名为mapred-s ...
- JavaScript深入之词法作用域和动态作用域(转载)
作用域 作用域是指程序源代码中定义变量的区域. 作用域规定了如何查找变量,也就是确定当前执行代码对变量的访问权限. JavaScript 采用词法作用域(lexical scoping),也就是静态作 ...
- 解析天启rk3288源码 /kernel/drivers/char/virtd
virtd为编译后产生的中间文件,可使用ELF格式逆向 1.ELF文件内容解析readelf: 可解析ELF文件的所有内容;strings: 查看ELF文件中的字符串;file : 查看ELF文件 ...
- 微信小程序(8)--头部导航滑动
项目需求:实现头部导航,可左右滑动. <view class="top-news"> <view class="self-box"> & ...
- weblogic启动脚本01
DATE=`date +%Y%m%d%H%M%S` user=`whoami` logDir=/app/logs/sguap_admin #启动日志存放路径sguap是例子系统简称# logDestd ...
- hive中的列转行和行转列
1.列转行 1.1 相关函数的说明: concat(string1,string,...) //连接括号内字符串,数量不限. concat_ws(separator,string1,string2,. ...
- 人生苦短_我用Python_def(函数)_004
# coding=utf-8 # function函数:内置函数 # 例如: len int extent list range str # print insert append pop rever ...
- Factory Methods
The static factory method pattern is a way to encapsulate object creation. Without a factory method, ...
- springmvc REST风格的URL
1:需要配置一个filter <!-- 配置 org.springframework.web.filter.HiddenHttpMethodFilter: 可以把 POST 请求转为 DELET ...
- bzoj4397【Usaco2015 Dec】Breed Counting(前缀和、树状数组)
题目描述 Farmer John's N cows, conveniently numbered 1…N, are all standing in a row (they seem to do so ...