利用VisualLisp实现CASS导出异平台坐标数据

2018-03-15 08:43杨一洋刘小生陈毅
江西理工大学学报 2018年1期
关键词:数据格式界址多边形

杨一洋, 刘小生, 陈毅

(1.湖南省地质矿产勘查开发局四〇三队,湖南 常德415000;2.江西理工大学建筑与测绘学院,江西 赣州341000;3.东莞市万江区测绘队,广东 东莞 523000)

0 引 言

CASS地形地籍成图软件是基于AutoCAD技术平台的GIS前端数据处理系统,广泛应用于地形成图、地籍成图、工程测量应用、空间数据建库、市政监管等领域[1-3].由武汉中地数码技术有限公司研发的“国土资源‘一张图’信息发布系统”依托计算机、“3S”等技术,将国土工程与信息化技术结合起来,科学、高效地管理土地资源的开发与利用[4-5].在实际工作中,如土地开发、土地整治工程实施前后,需要利用CASS对项目施工界限、地类界限进行数字化处理,获得对应范围的界址点坐标,再将坐标导入“一张图”系统,通过调用“多边形叠加分析”功能,实现对项目选址、规模大小、地类变更等信息的管理、查询、校验与审核.

采用CASS软件中“界址点生成”工具导出的数据与“‘一张图’多边形叠加分析”所要求的格式并不一致.因此,将界址点数据集导入至“一张图”系统之前,需要对其数据排列进行调整.在以往工作中,方法之一是将CASS导出的界址点数据以Excel方式打开或拷贝至UltraEdit文本编辑器,进行手工调整,该方法不仅耗时、低效,而且当项目区的坐标数据量庞大时,调整过程极易出现差错,会增加复检与修改的频次和难度;方法之二是通过编程设计数据转换程序,实现数据格式的快速转换,该方法减少了手动工作量,较传统方式在效率上有较大提升,并能有效降低转换过程的差错,但无法查验转换使用的源数据是否完整无误.

文中针对上述技术问题,以最大化减少数据格式调整的工作量为目的,在AutoCAD平台中,根据“多边形叠加分析”线要素“简单坐标串”文件的数据排列特征,利用VisualLisp编写转换代码,实现在CASS软件中以命令的方式直接导出“‘一张图’多边形叠加分析”所需的“简单坐标串”,从而提高生产效率,保证数据的完整性、格式的正确性.

1 数据格式说明

“国土资源‘一张图’信息发布系统”提供了“多边形叠加分析”功能,通过该功能,用户首先需要导入正确格式的“简单坐标串”数据文件,再选择指定年份的土地利用现状图或遥感影像作为叠加分析底图,即可对区域土地利用现状与变更的位置、类型、数量、规模等信息进行快速查询与分析.“简单坐标串”数据格式与“农村土地整治监测监管系统”中的“地块坐标”数据格式相同,即可跨平台使用,其数据排列特征可参考《农村土地整治监测监管系统——省、市、县(区)用户手册》[6]中的格式说明:

点号,地块圈号,X(北)坐标,Y(东)坐标

......

点号,地块圈号,X(北)坐标,Y(东)坐标

......

在该类数据文件中,每一行代表一个界址点,所有的逗号分隔符不能在全角方式下输入,都必须为英文格式的标点符号;X坐标、Y坐标必须为数值型且无投影带号缺失,文本中无空字符(或空字符串);可以将多个地块界址点存放在一个文件中,以地块圈号进行区分,并且地块圈号应大于等于零,文件扩展名为“txt”.

在日常工作中,通常以执行CASS“地籍”菜单中提供的“界址点生成数据文件”工具导出地块的界址点数据,其文件扩展名为“dat”,数据排列格式如下[1]:

点号,编码,Y(东)坐标,X(北)坐标,高程

......

点号,编码,Y(东)坐标,X(北)坐标,高程

......

2 数据转换模块设计

本次数据转换模块设计,主要目的是消除传统方法中存在的大量手工调整步骤,在保证数据完整性的基础上,将工作总量和工作时间压缩至最低,这就需要以循环计算代替人工重复操作.对传统方法以及现有的相关改进技术进行分析总结之后[7-9],设计了如图1所示的数据处理优化流程:

图1 数据处理优化流程

如图1所示,可以看出文中的技术方案将以往繁杂的手工操作减少至仅仅输入两个参数即可.根据优化后的流程,设计如图2所示的数据转换步骤.

图2 数据转换流程

在该转换模块中,提供两种方式:导出单个地块界址点,导出多个地块界址点;前者根据指定参数确定地块圈号,后者根据选定地块的顺序和个数依次递增确定地块圈号;坐标投影带号则根据项目所在区域进行设置.

3 数据转换模块实现

程序代码结构根据函数定义分成三个部分,主函数定义了坐标转换功能的命令,另在主函数外部定义两个子函数,在主函数内部编写代码,实现对子函数功能的调用[10-13].

3.1 选择生成方式主函数TOM

在CASS环境下,用户输入命令“TOM”,根据提示选择导出坐标的方式.其中,“导出单个地块”用于生成项目规模红线界址点数据,“导出多个地块”用于生成某一种或多种土地利用类型新增部分范围的界址点数据.执行代码如下:

(defunC:TOM ()

(setqoutType(getstring" 导出单个地块 S/导出多个地块 M:"))

(cond((=outType"S")(SOM))((=outType"M") (MOM))

3.2 导出单个地块子函数SOM

在选择“导出单个地块”后,根据提示,用户输入地块圈号和坐标带号,编码将PICKADD系统变量值切换为“0”,冻结多选功能,这样用户仅可选取单个目标地块界址线,随后编写Lisp代码根据界址点编号依次逐行输出并保存在指定文本.部分编码如下:

(defun SOM ()

(setvar"cmdecho"0)

......

(setqqh (getint" 输入地块圈号:"))

(setq dh (getint" 输入坐标带号<37>:"))

(if(null dh)(setq dh 37)

(setvar"pickadd"0)

......

(progn

......

(princ"J"ff) (princzdhff) (princ","ff)(princqhff) (princ","ff) (princ y ff) (princ","ff)(princ dh ff) (princ x ff) (princ" "ff)

(setqzdh (+zdh 1))

)......

3.3 导出多个地块子函数MOM

在该功能中,坐标输出格式可套用单个地块的编码(参照 3.2中 progn部分),因此,不再将其列出.与函数SOM不同的是,执行函数MOM过程中无需用户输入地块圈号,由于是批量连续导出多个地块界址点至一个文件,在用户选取多个目标地块界址线之后,存储闭合区总数,在界址点数据导出的过程中,以闭合线为单位,依次为界址线序号赋值(即地块圈号).

4 应用实例

根据实际工作要求,需要制作项目规模红线坐标与新增地类的范围坐标.规模红线即项目范围线;新增地类是在规模红线基础上,将未发生变化的农用地、建设用地或其他未利用土地的范围进行挖空,在规模红线坐标之后继续输出该部分地块范围坐标即可实现挖空.本部分分别采用传统流程与命令输出的方法,制作新增地类的范围坐标文件.

4.1 数据准备

在CASS9.1平台中,绘制工程实例的权属区域

图3 工程区域

如图3所示,在本例规模红线范围中,A为开发或整治后新增加的农业用地,B为原有池塘,C为原有建设用地,D为原有林地,由于后三者的土地利用状况在开发、整治前后均未发生变化,则在制作新增部分农用地范围的线要素文件时应将其进行挖空处理.

4.2 传统流程

在传统流程中,执行CASS“地籍”-“界址点生成数据文件”获取项目红线及新增地类范围线的坐标数据文件.导出工程区域新增农用地A的范围坐标,需要减去原有池塘、建设用地及林地的面积,因此,在A区域界址点J4之后依次添加B、C、D的界址点数据.通过“界址点生成数据文件”功能导出的结果如图4所示.

图4 数据文件

根据图4内容,工程区的界址点号呈累计输出,这样无法直接识别区域地块数量.要将数据导入“一张图”系统,并成功执行“多边形叠加分析”功能,还需在该文件中进行手工添加地块圈号、删除高程值、添加坐标带号、更换X与Y值顺序等步骤.此部分可在Excel或UltraEdit中编辑列数据进行调整.图5显示的数据即为调整后的可用于“‘一张图’多边形叠加分析”的线要素文件——“简单坐标串”.

图5 手工调整结果

4.3 命令输出

由于数据转换模块是以“先命令,后提示,再输入”的人机交互方式进行,在此通过提供AutoCAD文本窗口显示参数输入的详细过程.图6表示的是命令及参数的输入输出过程;图7表示的是新增地类范围坐标的导出结果.

通过此例验证,与传统流程相比,省去了大量的手工调整步骤.在选定闭合区域后,通过命令导出界址点数据耗时短,坐标按照各宗地内的界址点号依次排列,地块对象及数量易于识别,格式符合“‘一张图’多边形叠加分析”线要素坐标数据排列要求.为了验证“简单坐标串”数据的完整性与准确性,随后将命令导出的数据调整为CASS通用数据格式,接着在CASS软件中以“简码识别”方式打开,显示的自动成图结果与原始图形界线重合.

图6 命令及参数的输入输出

图7 新增地类范围坐标

5 结束语

在AutoCAD平台下利用VisualLisp编程方法,可实现在CASS软件中,输入命令快速导出可跨平台使用的“简单坐标串”文件.在实际工作中,待开发、待整治区域的地形条件复杂,项目范围拐点较多,少有几百,多则上千.利用该模块实现文件的导出,不仅可以将原有以时计算的手工调整的工作量压缩至以秒来计算,减少人力成本;还能避免传统方法中出现的坐标点遗漏缺失的问题,在提高效率的同时还保证了数据完整、格式正确,达到质与量兼得的目的,具有实际应用意义.在“一张图”系统中,虽然“简单坐标串”文件的数据排列格式是成功导入系统的关键,但还需要对各地块的类别、面积、图幅号等信息进行描述,对该部分信息的自动识别与生成将是下一步研究的重点.

[1]数字化地形地籍成图系统CASS9.1参考手册[M].广州:广东南方数码科技有限公司,2011.

[2]林志鹏,余代俊.基于CAD的VisualLISP二次开发在农村土地现状调查中的应用[J].地理空间信息,2012,10(5):153-156.

[3]付崇江,孙峰,张顺斌.在CASS平台下实现钻孔坐标批量输出的一种方法[J].矿山测量,2011(5):47-48.

[4]王成亮,张定强,倪宇智,等.基于“一张图”的金土工程建设模式探讨[J].地理信息世界,2013,20(2):89-93.

[5]何安国.“一张图”推动管理“效能革命”[J].国土资源导刊,2014(4):68-69.

[6]农村土地整治监测监管系统——省、市、县(区)用户手册[M].北京:国土资源部信息中心,2010.

[7]邹富生.LISP语言在宗地界址点成果表的应用[J].中国高新技术企业,2013(15):37-40.

[8]程会超,张之友.全站仪数据格式转换程序设计与实现[J].地理空间信息,2013,11(3):67-69.

[9]龚子桢,花向红,尹相宝,等.基于AutoLISP的高程点批量修改算法设计与实现[J].测绘通报,2011(4):41-43,46.

[10]吴勇进,林美樱.AutoLISP&DCL基础篇[M].北京:中国铁道出版社,2003.

[11]方戈亮,孙力红.Visual LISP程序设计[M].第2版.北京:清华大学出版社,2010.

[12]吴勇进,林美樱.AutoCAD完全应用指南[M].北京:科学出版社,2011.

[13]屠志炜.基于Visual Lisp的AUTOCAD的二次开发[D].长春:吉林大学,2008.

猜你喜欢
数据格式界址多边形
多边形中的“一个角”问题
农村不动产测量中界址点、界址线属性数据快速处理方法
CASS地籍图中界址信息批量转出方法研究
多边形的艺术
解多边形题的转化思想
基于ArcGIS的宗地图自动化制图研究
多边形的镶嵌
MIT—BIH心率失常数据库的识读
基于RFID的户外广告监管系统的设计与实现
一种融合多业务的信息化系统框架研究