目标
工作中经常能遇到将坐标串数据转为SHP或者GDB的空间矢量数据。使用传统的Arcmap处理这类坐标串数据较为繁琐,且不能批量处理。但每次接到处理这类坐标串数据任务时,都是几十或上百个TXT坐标串,采用传统处理方式会导致大量的重复工作,且效率低下。为解决这个问题,现探究使用FME工具制作处理流程,避免重复工作,提升工作效率。
01 通常方式
将TXT格式坐标放入Excel表格中,然后使用Arcmap打开,再导出数据。具体步骤为:
1,将TXT坐标放入Excel中,并设置XY字段;
2,将Excel表格加入Arcmap,并将坐标串转为点集数据;
3,再使用“点集转线”工具转为线要素;
4,使用“要素转面”工具转为面要素;
5,录入属性信息。
02 优秀基于FME流程处理
FME是加拿大Safe Software公司开发的空间数据转换处理系统,它是完整的空间ETL解决方案。该方案基于OpenGIS组织提出的新的数据转换理念“语义转换”,通过提供在转换过程中重构数据的功能,实现了超过250种不同空间数据格式(模型)之间的转换,为进行快速、高质量、多需求的数据转换应用提供了高效、可靠的手段。现使用FME强大的数据处理能力,来解决问题。
(一)分析
首先进行TXT坐标串数据分析。通过下图可知,第一部分为坐标串基本属性信息;第二部分为地块名称等属性信息;第三部分为坐标XY值,并包括J1等序号。所以将坐标串转为SHP或GDB时,重点是提取XY坐标值,并保留地块属性信息。
(二)流程制作
1,FME读数据模块可以读取众多的数据类型,数据类型类型包括Text File、Microsoft Excel、Esri Geodatabase (File Geodb)、Esri Shapefile等。这里处理的坐标串为TXT格式,选择“Text File”,如果坐标串数据为Excel格式,也可以选择“Microsoft Excel”。
2,FME Inspactor工具,可以将读取的数据进行查看,分析数据特征,针对性数据特征修改、处理。根据下图可知,数据所有信息都存储在第一列“text_line_data”中,先需要将其进行分列提取信息。
3,AttributeSplitter转换器可以根据分隔符或固定宽度模式将属性值拆分为多个部分,并为每个部分创建包含一个列表元素的列表属性;AttributeCreator可以创建一个或多个字段属性,并指定字段值。结合这2个转换器,可以将第一列拆分,并将其中的XY值提取到对应字段中。
4,通过上述步骤完成坐标XY值的提取,但一个坐标串中会有多个地块,如果不进行分类会导致所有地块合并到一起,所以还需进行地块的分类。通过分析,下图每一个地块属性值往下每一行,均为该地块坐标点,且每一个地块属性值都不相同,所以可以此进行分类,将地块属性值赋值给对应的地块坐标点,以达到区分地块的目的。
5,AttributeCreator转换器将坐标值转换为点几何图形。将XY坐标值对应转换器参数,即可生成点空间矢量数据。
6,LineBuilder转换器按照输入点要素的输入顺序连接这些要素,形成线性或多边形要素。这个转换器将点转为面空间矢量数据。
7,FME写模块可以将流程中的数据转为包括SHP、GDB等类型的数据。这里我们转为GDB格式数据,如果需要转为SHP或其他格式的空间矢量数据,就在Format选择对应的格式就行。至此,将坐标串转为GDB的流程就完成了。
(三)批处理
经过上面步骤完成了坐标串TXT数据转GDB的过程。下面需要完成批处理,以提升工作效率。
1,参数设置。当有多个TXT坐标串时,在运行数据源窗口选择所有需要处理的坐标串,暴露下图属性,然后再写入要素名称选择暴露的属性即可,最后运行就可以处理多个TXT坐标串。
2,验证。以下有35个坐标串TXT数据,将他们全部选择运行,最后完成时间共计不到1分钟。这样有再多的TXT格式坐标串也可以轻松的转为GDB或SHP了。