winform在表格中输入一个完整的时间字段_浅谈ARCGIS在测绘项目中的 一般应用

浅谈ARCGIS在测绘项目中的

一般应用

一、概述

众所周知,ARCGIS是由Esri公司生产的一款的GIS平台。问世至今,已升级数代,现在比较常用的是ARCGIS10.2的版本。由于其强大及全面的地理数据处理功能,在许多行业中被应用,作为地理相关的测绘行业尤其如是。本人在参与的测绘项目中也经常使用到此款软件,现将一点小小的经验总结如下。

a4fc164f39a70a4d67d43e47b8961009.png

图1.1 ARCGIS主界面

ARCGIS中一个很重要的应用ArcToolbox,个人认为可以说是此款软件的精髓所在。其中涵盖的数据处理功能颇多,迫于能力所限,我至今也未能尽览全貌,只说说我比较常用的几种工具,分别是”转换工具”、”分析工具”、”数据管理工具”以及”制图工具”这四大项。

e1d97a06d67940aef03d8b8786d04dcf.png

图1.2 ArcToolbox

二、转换工具

首先是”转换工具”,它实现的主要功能是外部数据和ARCGIS之间的转换,这点其实非常重要,因为测绘项目的自身特点及历史原因,测绘人员直接作业的原始数据多为EXCEL的表格数据及CAD的图形数据,所以如果想在项目作业中应用到ARCGIS强大的功能,必须首先将这两种数据转换成ARCGIS的数据环境。”转换工具”中就提供了比较全面的此类转换功能。

2.1 Excel转换

首先”转换工具”——”Excel”下就分别有两种将Excel表格导入转出的工具——”Excel转表”及”表转Excel”,前者导入,后者导出。功能操作清晰易懂,值得注意的是,Excel表格中有可能存在多个”Sheet”,在将”Excel转表”时,需要确认”工作表(可选)”一项中的”Sheet”默认值是不是需要转入的数据,如果不是,在此项中选择相应的”Sheet”导入即可。

cc0b2408e21d6a5ced317621bc5d78ee.png

图2.1 EXCEL转表

另外,Excel由于版本关系,有以”xls”和”xlsx”为后缀名的两种文件,这二者的区别在于最大数据行数,前者为65536,后者为1048576,也就是后者能存储更多的数据。但ARCGIS的Excel表格导出功能却只能导出”xls”文件,也就意味着一旦某份表格的数据总数超过”xls”文件格式的数据上限,从ARCGIS导出的数据就会被截取,从而导致数据丢失。解决这个问题的方法也很简单,只需在”内容列表”中右键单击相应的表格文件,点击”导出”,在”输出表”选择路径时选取”保存类型”为”dBASE表”,然后用EXCEL直接打开生成的以”dbf”为后缀的文件,另存为相应的”xlsx”格式文件即可。需要说明的是,”Excel转表”功能则没有这个问题,”xls”和”xlsx”两种格式都可以进行转换。

附:如何查看ARCGIS内部表格的数据总行数。右键单击表格文件”打开”,在打开的属性表左下角即会显示该表的总数据数。

2.2 CAD转换

CAD “dwg”格式的文件导入可以使用”转换工具”——”转出至地理数据库”——”CAD至地理数据库”来完成。这里重点要讲的是两点,一是在”输入CAD数据集”时对CAD文件的选择时,不要直接双击”dwg”文件,而是先单击选中”dwg”文件,再点”添加”即可。另一个比较重要的一点是”空间参考(可选)”这个选项,这虽然是个可选项,但却是比较关键的一点,如果此项默认为空,则ARCGIS在数据导入后不会为其分配相应的坐标系,也就是默认无坐标系,由于涉及到计量单位和坐标对应等问题,ARCGIS在使用某些功能的时候就无法调用此份数据,例如”分析工具”中的”叠加分析”之类的,从而影响此份数据的操作。所以,在使用这项转换功能时应尽量填写相应的坐标系。当然,实在没有,不填写以默认为空的话,也不会影响到转换,后续如果有需要,”定义投影”也可以补充这个功能。

c13c4452354bd504a9ed5421894c3f1c.png

图2.2.1 CAD至地理数据库

在ARCGIS将CAD文件转换成地理数据库后,系统会默认将此数据库添加到地图中,一般数据库就会出现”Point”(点)、”Polyline”(线)、”Polygon”(面)、”Multipatch”(多面体)及”Annotation”(注记)等5项,其后按需选择文件操作即可。

“转换工具”——”转为CAD”——”要素转CAD”的功能即可对ARCGIS中的要素进行CAD格式的转换,在转换时注意”输出类型”选项的选择与外部CAD软件版本的匹配。

21a373becde94d5d104b86395774fe8d.png

图2.2.2 要素转CAD

三、数据连接

在将原始数据导入到ARCGIS中后,就可以利用ARCGIS的工具对数据进行相应的操作。一般比较常用的功能是数据之间的挂接以便于字段间的赋值,例如将”权利人”中的”权利人名称”字段根据”宗地代码”匹配赋值到”宗地”的同名字段中。说到数据挂接,依然要分为表格文件和图形文件两个方面来讲。

3.1 表格连接

以被连接要素为表格文件来讲,也就是连接要素为表格文件,无论被连接要素(也就是目标要素)是图形或者表格,一般的连接方式均为右键点击目标要素——”连接和关联”——”连接(J)…”,然后根据需要选择连接要素和字段。这里的重点是,由于字段属性值的不匹配,会出现目标要素的部分数据匹配不到连接要素的数据,而如果出现这种情况,由于ARCGIS默认在”无选择”的状态下,是对要素中的全体数据进行操作,直接利用”字段计算器”对两个要素字段间进行赋值的话,就会报错而无法运行,需要在”打开属性表”后对连接成功的数据行进行选择再赋值,但同时,有时因为数据量的庞大,进行这种操作不仅麻烦且容易出错,所以我采取了另一种曲折的方法,就是”二次连接”。

10d1afa6c61557d48108d3ac83156b6e.png

图3.1 数据连接

首先将两要素之间进行”连接”,但在此次”连接”时,我会对”连接选项”——”仅保留匹配记录”进行勾选,”连接”完后,”打开属性表”,快捷键”Alt+A”全选选中匹配成功的数据,再右键点击要素——”连接和关联”——”移除连接”——”移除所有连接”解除二者之间的连接, 再次进行”连接”。这次勾选”保留所有记录”,此时匹配成功的数据已被选中,再进行”字段计算器”赋值便不会报错了。为什么不在首次连接”仅保留匹配记录”勾选后便进行赋值,是因为在这种状态下也会报错,只有在”保留所有记录”下才能有效的运用”字段计算器”。同样利用这种方法,还可以对指定的数据进行有效的选择或者删除,读者可以自行试验。

3.2 图形连接

上面所讲的是与表格之间的连接,而图形之间的连接需要用到的功能我一般选择的是”分析工具”中的”叠加分析”。在”叠加分析”中关于”连接”比较常用的是”空间连接”,此项功能可以将两个图形要素在空间层面上进行匹配,而不是像表格那样的字段值的匹配,因而更适合图形要素的连接,由于涉及到空间结构,结合实例说明可能更加清晰。

603d00a86b48fa7d566e231509583889.png

图3.2 空间连接

3.2.1 图形连接实例1

“宗地”要素中的字段”是否为基本农田”需与”基本农田”要素进行空间上的匹配才能进行填写,因为二者在字段之间并没有什么关联,只有在空间上有所匹配。此时,我们便可以利用”空间连接”完成此项操作。打开”空间连接”功能,将”宗地”和”基本农田”两个分别设置为”目标要素”和”连接要素”,”连接操作(可选)”设为”JOIN_ONE_TO_ONE”(一对一连接),勾选”保留所有目标要素(可选)”,”匹配选项(可选)”选为”COMPLETELY_WITHIN”(完全包含在内),这个选项的目的是只有”宗地”中的某块宗地完全在某块”基本农田”之中,才会被匹配上,否则,即便部分包含在其中,也无法匹配成功,这就保证了只有整块”宗地”都位于”基本农田”之中才能被算作基本农田。点击”确定”后,系统会自动生成一个新的要素文件,其图形要素与”宗地”一致,字段则是”宗地”和”基本农田”两要素字段之和,之后,通过字段间的赋值,就可以得到”是否为基本农田”的属性值了。

3.2.2 图形连接实例2

“界址线”要素中的”宗地代码”字段要表示的某条界址线所在宗地的宗地代码,同一条界址线最多可以被两宗宗地所有。依旧打开”空间连接”功能,”界址线”、”宗地”分别设为”目标要素”、”连接要素”。”连接操作(可选)”设为”JOIN_ONE_TO_ MANY”(一对多连接),勾选”保留所有目标要素(可选)”,”匹配选项(可选)”选为”SHARE_A_LINE_SEGMENT_WITH”(共边匹配),点击”确定”,生成”界址线_SpatialJoin”。

“界址线_SpatialJoin”中的字段”排序”运行”字段计算器”,输入如图代码,利用字段”界址线号”在原”界址线”的唯一性,对新要素中的重复数据进行排序编号。然后利用”数据管理工具”——”表”——”数据透视表”功能对”界址线_SpatialJoin”中的数据通过”排序”字段生成新的数据透视表,新表中的”F1”、”F2”字段就是原先的”排序”编号,其属性值就是对应顺序的宗地代码,在再”字段计算器”通过连接符”&”将”F1”和”F2”组合起来就生成了所需的完整宗地代码字段。

160a256c70a20d161efe4f2b003cb49d.png

图3.2.2.1 字段计算器

c080f01267ca5407e5a1d1b3781a0f56.png

图3.2.2.2 数据透视表

以上的”连接操作(可选)”、”保留所有目标要素(可选)”和”匹配选项(可选)”都可以根据自身情况自行选择。尤其 “匹配选项(可选)”中的选项则更多,应用场景也更加灵活多变,读者可以根据功能窗口中的”工具帮助”说明进行选择,在此就不一一赘述了。

6cf609e9dc698d107a68472281d5fa96.png

图3.2.2.3 空间连接

171db47ec2fb04268cb40b04c48f6d69.png

图3.2.2.4 帮助

四、分析工具

以上所用到的主要是“叠加分析”中的“空间连接”工具,其实在“分析工具”中还有很多常用的工具,为尽量规避此文的错漏不当之处,我仅对我曾经使用过的工具进行说明,其他的可参阅ARCGIS自带的“帮助”,其中有更为细致精确的详解。

4.1 叠加分析

4.1.1 擦除

“叠加分析”中的“擦除”是将“输入要素”中与“擦除要素”几何相交的部分删除,从而生成一个新的要素。这个工具我依稀记得用过,但却想不出什么好的实例进行说明,简单来说,这个工具就是个“减法”。

e10edb6bd32642fee49e4cdfaabeb1fc.png

图4.1.1 擦除

4.1.2 标识

“叠加分析”中的“标识”可以在几何相交的情况,将一个要素的属性标识到另一个要素上。举例说明,在三调中,有时需与二调数据对比宗地前后的地类变化,此时就可以使用“标识”工具进行操作。点击“标识”工具,将三调数据和二调数据分别设为“输入要素”和“标识要素”,调用工具后,输出的要素是三调数据沿着二调数据界线重新分割后的数据,并在属性表中加入二调的属性,这样就可以在同一个属性表中比较二者前后的变化。在这里要注意的一点,这样的切割会使新数据产生“多部件”(即多个不接边的地块被组合成一个地块,),若不想产生这样的数据,可以使用“数据管理工具”——“要素”——“多部件至单部件”来解决。

7f8476a7f3e7b4eca7437aca9f1c7515.png

图4.1.2.1 标识

5e63d907de56f871771a5e82b775964c.png

图4.1.2.2 多部件至单部件

4.2 提取分析

4.2.1 分割

再来是“提取分析”,顾名思义,此工具就是对数据进行不同类型不同方式地提取。“提取分析”——“分割”也是将某一要素沿着另一要素的界线进行分割,与“标识”不同的,会输出多个要素,个数与“分割要素”相关。例如,有时需要将某一行政级别的数据分成更下一等级的行政区域的数据,简单说,将“县”数据分成 “村”数据,利用“分割”,将“村级行政区”设为“分割要素”就可以一次性完成。

8fde1662113d5c99f71f753040bc5503.png

图4.2.1 分割

4.2.2 Python小提

但上述方法只能以空间几何上的划分来分割数据,但却不能以权属划分,例如涉及到飞地或者绘图不规范产生的跨区地块等问题。当然使用“筛选”也可以一个个生成,但这种方法耗时费力,这里就要提到Python。Python是一种可以配合ARCGIS使用的计算机语言,其中包含的名为“arcpy”的类包含了大部分ARCGIS的工具,使用相应的命令就可以调用ArcToolbox中的各类工具,可以说是ArcToolbox的编程语言版, ARCGIS的深度用户甚至可以跳过ArcToolbox,直接用Python进行操作。

f5aeed78eb0a7a0861e94d6920d09a9c.png

图4.2.2.1 筛选

arcpy.Select_analysis函数就是对“筛选”工具的调用。在这个实例中,将全县数据根据字段“权属单位代码”的属性值对函数变量进行调整,生成多个“筛选”语句,再将语句复制到ARCGIS自带的Python语句窗口中,就可以批量完成“筛选”操作。Python加上ARCGIS功效强大,只是本人才智一般,且无韧性,未能深解,但个人认为每个ARCGIS的用户其实都应该对Python有一定的了解,这对理解ARCGIS的本质是有所助益的。

c0efc9f5ab54cd94d54d3108de8440b8.png

图4.2.2.2 Python

4.3 统计分析

4.3.1 频数

“统计分析”中的“频数”根据字面意思就可以理解其功能,就是计算出数据中某一字段的属性值出现的次数。这个工具最直接的用法就是“查重”。例如常用的权利人身份证号的重复,将“权利人”设为“输入表”,“证件号”设为“频数字段”,在输出表中的“FREQUENCY”字段中就可以很快找出重复的证件号。当然,字段右键中的“汇总”也有相同的功效。

2753b240b90e3d556832e6a6137a193c.png

图4.3.1 频数

五、数据管理工具

“数据管理工具”是ARCGIS中对数据进行一些基础操作的工具,其中的功能相对简单,划分得也较细,与其他工具结合使用能起到事半功倍的效果。

5.1删除字段

在进行数据库处理时,往往会产生一些过程数据,这些数据不是最终成果文件,但却是操作中无法跳过的,而这些过程数据在经过多次连接后,会产生许多多余字段,对查找有效数据产生干扰,此时就需要删除这些多余字段。“数据管理工具”——“字段”——“删除字段”可以将在属性表内需要单个单次手动删除字段的功能在一个工具下一次完成,将某过程数据设为“输入表”,在“删除字段”中选中多余字段,就可以一次性删除多个字段了。

28c7cc38eaa2f05fc599adae80b2f228.png

图5.1 删除字段

5.2删除相同的

进行原始数据绘制时,由于操作不当或不规范等缘故,有可能产生要素重叠,“数据管理工具”——“常规”——“删除相同的”可以有效修正此类错误。将需要修正的数据设为“输入数据集”,如果不仅要删除几何重叠元素,同时还要删除属性值重复的元素,可以在“字段”选项中选中的相应的字段即可。

84d149984e5b2f0f7e5208b1299665f7.png

图5.2 删除相同的

附:只选中“SHAPE”即默认只删除几何重叠元素,并且只删除重叠中的随机一个。

5.3合并

“数据管理工具”——“常规”——“合并”可以将多个数据合并成一个数据,例如将多个村级数据合并成乡级数据之类的,当然数据类型必须相同(例如,点文件只能与点文件合并)。这个工具容易忽视的一点是只有字段名称相同的属性值才会合并到同一个字段,如果字段名称不同就会在输出数据中生成两个不同的字段。注意,字段名称和字段别名的不同,只有字段名称相同才能合并成一个字段,字段别名相同而字段名称不同也会生成两个字段。这二者可以右键点击字段——“属性“中查看。

099b0bfacdb602b6a056764794b4a33e.png

图5.3 合并

5.4融合

“数据管理工具”——“制图综合”——“融合”工具是将数据中共边的元素合并成一个整元素。例如在农房一体项目中,宗地的概念是沿着同一户房屋的外边线绘制的外轮廓,大多数同户的房屋是共边的。将房屋数据设为“融合”中的“输入要素”,输出后就可以得到一个大概的“宗地数据”,但由于实地情况的复杂性,此类数据还需人工核查,无法得到最终有效数据,只是在一定程度上缓解人工压力。

2563aa8e8e8b6d9cee24eab1b766701c.png

图5.4 融合

与“删除相同的”工具类似,也可以在“字段”中选中相应字段,将相同属性值的元素进行融合,例如将村级行政区可以通过“权属单位代码”的前几位乡级代码,融合成新的乡级行政区。

5.5要素转点

“数据管理工具”——“要素”——“要素转点”工具,个人比较常用的是标注转属性。ARCGIS中的工具对标注文件的调用十分有限,所以只有将导入的标注转换成点后,输出的点文件会直接继承标注的属性,再与其他数据进行连接,就能转化为属性了。

17fedefca01cc17ce76d8a7dd2765e6a.png

图5.5 要素转点

5.6要素折点转点

“数据管理工具”——“要素”——“要素折点转点”工具,我个人曾经在生成界址点的操作中试用,但是由于数据量过大,效率不高,不过,在对界址点前后点号的赋值上还是可以应用的。近期,参与高标农田的项目时发现另外一个功用。高标农田的文件提交格式中需附上一份完整的界址点坐标表,其中包括界址点所属线名,界址点顺序等。将农田界线数据的设为“要素折点转点”的“输入要素”,“点类型”默认为“ALL”,生成的点文件继承的是线文件的属性,可以在线文件中预设一个属性值具有唯一性的“ID”字段,在点文件中对这个字段属性值重复出现的次数进行编号排序,这里的关键点是点文件自身产生的“OBEJECTID”字段的编号顺序就是按照点在线某一方向上的顺序自动排列的,再利用“字段计算器”中的代码对“ID”进行排序,就可以生成点在其相应线上的顺序号了。并且由于“ID”属性值在线文件中的唯一性,所以可以将其默认为线号。这段的意思实在也是没讲的太明白,如果有兴趣的话,可以试验一下。

a18126891b2392dec7437802bd8d8ee5.png

图5.6.1 要素这点转点

另外,如果质疑这种方法有出错的可能,比如“OBEJECTID”的顺序其实是随机,那么可以在生成点文件根据所作出的顺序号和线号数据,利用“数据管理工具”——“要素”——“点集转线”工具进行回推,即可验证数据是否出错。

aecdac9327d1e386583aedf3990b8449.png

图5.6.2 点集转线

六、制图工具

6.1 数据驱动页面

“制图工具”的主要功用是对数据的图幅输出,例如,项目前期外业调绘用图的制作。“数据驱动页面”是一个可以根据图幅对数据进行批量绘图输出的工具,例如按接合图表和栅格数据输出外业地形图。

ARCGIS的主编辑窗口的左下角图标可以转换至“布局视图”,右键点击视图界面,调出“页面和打印设置”,左下角点击“数据驱动页面”,将接合图表设为“索引图层”,即可调用这一功能。

a84b0e8b34538410d0965cf9a638b547.png

图6.1.1 数据驱动页面

486db34f1d8f1bd854970b3f9192999e.png

图6.1.2 数据驱动页面

6.2 动态文本

每张地形图是根据接合图表的图幅号进行命名的,主工具栏中 “插入”——“动态文本”——“数据驱动页面属性”选择接合图表的“图幅号”字段,就可以生成一个根据“图幅号”对每张图生成相应名称的文本了。“动态文本”其实就是“索引图层”的属性在视图上的体现,用户可以自由根据所需自由选择所需的属性。“动态文本”还细分了很多种类,读者可以一一自行查看试验。

6d305eee48e63166431d541ebf8e3c6d.png

图6.2.1 动态文本

7c370b0d61f4547a39189f683bb666ff.png

图6.2.2 动态文本

6.3计算相邻字段

在输出图幅时,有时需在图幅左上方放置一个九宫格的小结合图表,以方便外业人员查找拼接图幅。“制图工具”——“数据驱动页面”——“计算相邻字段”工具首先为输入要素生成八个以八个方向为名新的字段,再将某一元素与其在八个方向上相邻的元素同字段的属性值赋给这八个字段。例如,将接合图表设为此工具的输入要素,“字段名”选项设为“图幅号”,就可以生成新的八向字段,每个图幅都可以自带其相邻的八个方向上的图幅号,再将八向字段生成“动态文本”,就完成了九宫格接合图表。

7e4005134eb35d4200941566b906aa42.png

图6.3 计算相邻字段

6.4 标注冲突

在生成某些图幅时,还会加上标注以方便绘图使用,但由于数据元素密度高等原因,会造成标注压盖等问题影响图面。右键点击数据文件——“属性”——“标注”——“放置属性”——“冲突检测”中进行设置,可以在一定程度上缓解这个问题。

fa1166ce3eb44188da1652b166fab95e.png

图6.4.1 标注-放置属性

134bf8934df0a290d605da4da770821f.png

图6.4.2 冲突检测

七、其他

模型构建器是将各种工具进行连接和设置对一个流程的操作进行整合,数据导入模型后自动生成走完整个流程的输出数据,就像是自己建的一条自动化流水线。这里只是简单做个介绍,Bilibili上有较为完整清晰地对此工具的讲解(宝藏B站),站内搜索相关关键词即可。

a6f955ae9198366ac173e596c7b62c8a.png

图7.1 模型构建器

个人曾经试验过这一工具,原理上并不复杂,但过程中发现,对原始数据质量要求高,参数设置也需要相对准确精准的表达,稍微有模糊不清之处,数据走向就会偏离。个人认为适合对流程集成度高的项目,或是同时接收多个同类项目的帮助较大。一般类似单个项目接单个工程的作业来说性价比不高,也就是说,完整建好整个模型,说不定自己已经能把整个项目做一遍了。

Tip:ArcToolbox中的工具繁多,查找起来有时会比较费时,推荐“搜索”对需要调用的工具直接进行关键词搜索。

f1d32f3a5999c306636e147456755240.png

图7.2 搜索

小结

余自知此文粗陋浅鄙,亦深知ARCGIS于吾辈之强之大,状若鲲鹏,寥寥千字亦不过管中窥豹,偶得小巧之戏作。既言其萤火之光启瞬息之明,亦恐贻笑于人前。至事懒且散,业荒于嬉,恐不教焉,权以此抚我空虚之灵智,浪荡之暇时矣。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值