Arcmap中点转面

今天的主题是利用工具实现点转面,我们都知道Arcmap中,有要素转点、要素转线和要素转面三个工具,但是三个转换工具对输入要素的要素类型有明确的限制,而要素转面的输入要素只能是线或者面,或者两者兼有,但并没有点转面,所以整个过程需要先点转线,然后进行线转面。接下来,我们说的是最复杂的点转线和线转面问题,即将点按先后顺序转为闭合的线将闭合的相交线转面不产生碎面,如下图所示,我们想要的是有顺序的线(图1)和有规律的面(图3),而非杂乱无章的线(图2)和碎图斑极多的线(图4)。
Arcmap中点转面
Arcmap中点转面
Arcmap中点转面
Arcmap中点转面
首先我们来解释一下以上结果是由哪个工具产生的,图1,由点集转线工具实现;图2,由XY转线生成;图3模型(Model builder)生成;图4,由要素转面生成。

2和图4均为ArcGIS Toolbox中现成工具,路径为:数据管理工具→要素→XY转线或要素转面,由于这两个工具没有太多参数设置,此处不做详细讲解,图5XY转线的对话框。
Arcmap中点转面
注意:图5要求的表数据需要有对应的X1、X2、Y1、Y2四列坐标值

接下来,我们重点来理解点集转线和利用模型工具避免相交线转面时产生碎图斑的过程。

对于点集转线工具,路径为:ArcGIS Toolbox中数据管理工具→要素→点集转线,该工具的使用有几个要点需要注意:

输入要素为:要转换为线的点要素。

线字段:输出中的各个要素都将基于“线字段”中的唯一值,也就是说最后想要生成几条线便有几个唯一值,相当于最后生成的线的唯一ID

排序字段:默认情况下,用于创建各个输出线要素的点将按照它们被找到的先后顺序依次使用。如果希望按照其他顺序,请指定一个“排序字段”。这句话的意思就是组成线的点的排序,也就是说每条线所经过的点的先后顺序。

闭合线:指定输出线要素是否应该闭合。勾选前边复选框,即添加一个额外的折点以确保每个输出线要素的终点与起点相重合。然后便可使用要素转面工具基于线要素类生成面。不勾选复选框,即不添加额外的折点来闭合输出线要素。这是默认设置(因为本次实验后期需要转面,所以我们勾选该复选框)。

针对以上,需要对点数据进行属性表的字段赋值,其中一个为线字段,另一个为排序字段。如下表,序号1、7、11、8、12代表五条线,排序1、2、3、4代表每条线所经过点的顺序。在线字段中选择图6中序号,在排序字段中选择图6中排序,即可生成有顺序的线,如图1所示。
Arcmap中点转面
Arcmap中点转面
有没有很好奇图1的结果是什么样呢?让图8来告诉你!
Arcmap中点转面
至此,我们就将获得有顺序的线这个问题全部解决了,你还有疑问么?

如果这一步没有问题了,那么我们就开始下一步,做好心理准备,接下来将上述结果转变为没有碎图斑的面,也就是说我们最后要得到15个面,不能多于该数字,步骤繁琐复杂,集中注意力哦!

该步骤使用是ModelBuilder(模型构建器),实现上述结果的思路为:首先对要素按属性中的序号进行选择,进而进行要素转面,即要生成15个面,注意,将输出结果以%值%的形式存储,不然会被迭代掉,最后只生成了一个面,那就不好玩了。进行到这一步,我们想的把15个面合并即可,但是直接添加合并工具并不能将15个面作为输入要素进行处理,所以在生成的15个面和合并中间需要插入一个收集值,这样整个程序就跑通了,每个步骤如下:

步骤一:打开模型构建器,插入迭代器进行要素选择;
Arcmap中点转面
Arcmap中点转面
双击迭代要素选择,进行参数设置
Arcmap中点转面
设置完毕单击确定,结果如下图所示:
Arcmap中点转面
设置完毕,单击确定,结果界面如下:
Arcmap中点转面
步骤三:插入收集值;
Arcmap中点转面
同样,双击收集值,将polygon%值%作为输入,参数设置完毕后,单击确定,结果界面如下:

Arcmap中点转面
步骤四:合并要素;

将合并工具(路径:数据管理工具→常规→合并)加载到模型中,利用模型构建器中的连接工具将输出值作为合并的输入要素集,如下图:
Arcmap中点转面
最后设置输出数据集的路径,即可,最终模型如下图:
Arcmap中点转面
验证整个模型运行即可!
Arcmap中点转面
运行结果如下表,即图3的属性表!十五个面妥妥的,告别小碎图斑全靠ModelBuilder
Arcmap中点转面
至此,今天的任务大功告成啦~~

想要了解更多知识,获得干货,关注微信公众号:GIS点滴

PS:
上述模型可以保存,保存路径通常为数据库下的工具箱中,因为模型只能以工具的形式保存,方便下次使用。
上述解决办法还可以通过Python来解决,此处不做详细介绍。
学会ModelBuilder,数据处理再也不用重复劳动,加油哦!