收藏 分销(赏)

CNSDTF-DEM转DWG工具的设计与实现_李蔚林.pdf

上传人:自信****多点 文档编号:301414 上传时间:2023-07-26 格式:PDF 页数:4 大小:181.84KB
下载 相关 举报
CNSDTF-DEM转DWG工具的设计与实现_李蔚林.pdf_第1页
第1页 / 共4页
CNSDTF-DEM转DWG工具的设计与实现_李蔚林.pdf_第2页
第2页 / 共4页
CNSDTF-DEM转DWG工具的设计与实现_李蔚林.pdf_第3页
第3页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第 39 卷第 2 期2023 年 6 月测 绘 标 准 化Standardization of Surveying and MappingVol 39No 2Jun 2023收稿日期:2022 08 23第一作者简介:李蔚林,工程师,现主要从事测绘数据处理及土地管理方面的工作。CNSDTF DEM 转 DWG 工具的设计与实现李蔚林1郭海泉2(1 射阳县自然资源和规划局江苏射阳224300;2 江苏省地质测绘院江苏南京211102)摘要:针对 AutoCAD 软件不支持读取 CNSDTF DEM 格式文件的问题,本文分析 CNSDTF DEM和 DWG 格式文件的结构、内容和功能,研究将 C

2、NSDTF DEM 格式的 DEM 数据转换为 DWG 格式的方法,并利用 AutoCAD 提供的 Object AX NET 进行二次开发,在 Visual Studio 2013 环境下设计开发将 CNSDTF DEM 格式的 DEM 数据转换为 DWG 格式的程序,实现将某项目 CNSDTF 格式的DEM 数据转为 DWG 格式,推进 DEM 数据的广泛应用。关键词:CNSDTF DEM;ObjectAX NET;AutoCAD;DWG中图分类号:P209DOI:10 20007/j cnki 61 1275/P 2023 02 18Design and implementation o

3、f CNSDTF-DEM to DWG toolLI Weilin1,GUO Haiquan2(1 Sheyang Natural esources and Planning Bureau,Sheyang,Jiangsu 224300,China;2 Jiangsu Geologic Surveying and Mapping Institute,Nanjing,Jiangsu 211102,China)Abstract:Aiming at the problem that AutoCAD software does not support reading CNSDTF-DEM formatf

4、iles,this paper analyzes the structure,content and function of CNSDTF-DEM and DWG format files,studies the method of converting DEM data in CNSDTF-DEM format to DWG format,utilizes ObjectAX NET provided by AutoCAD for secondary development,and designs a program for converting DEMdata in CNSDTF-DEM f

5、ormat into DWG format in the environment of Visual Studio 2013 This tool reali-zes the conversion of DEM data in CNSDTF format into DWG format for a project,promoting the wide-spread application of DEM dataKeywords:CNSDTF-DEM;ObjectAX NET;AutoCAD;DWGDEM 是对地球表面地形地貌的一种数字表达,能真实反映地球表面形态,是重要的基础地理信息数据。DEM

6、 数据常被用于生成等高线图、坡度剖面图,用于数字正射影像图数据制作,并广泛用于不同地形的比较和统计分析。DEM 数据已经在测绘、地质等多个领域得到广泛地应用1 2。DEM 有多种表达方式,主要包括规则矩阵网格、不规则三角网及矩阵网格与三角网混合形式3。CNSDTF DEM 格式的 DEM 被定义于 GB/T 177982007地理空间数据交换格式 中,其数据表达方式是规则矩阵网格形式。CNSDTF DEM 采用纯文本格式保存数据,具有良好的可读性,但常规的 CAD 软件不支持此类文件的正常读写,需要将 CNSDTF DEM 格式数据转换为 DWG 格式。AutoCAD 是 Autodesk 公

7、司开发的自动计算机辅助设计软件,在测绘行业中有着广泛的应用。同时,AutoCAD 不仅是一个绘图平台,还是一个二次开发平台,向用户提供了丰富的开发接口用于扩展其功能,主 要 接 口 包 括:Auto Lisp(Visual Lisp)、ActiveX、VBA、ObjectAX、ObjectAX NET 等4。第 2 期李蔚林,等:CNSDTF DEM 转 DWG 工具的设计与实现DWG 是 AutoCAD 默认的数据保存格式。本文拟通过 AutoCAD 提供的 ObjectAX NET 二次开发接口,设计开发一个格式转换工具,实现将 CNSDTF DEM 格式的 DEM 数据转换为 DWG 格

8、式。1CNSDTF DEM 格式数据结构CNSDTF 格式的 DEM 数据采用纯文本方式保存,按照 GB2312信息交换用汉字编码字符集 的规定进行编码。CNSDTF DEM 格式数据包括文件头和数据体两部分。文件头用于描述数据的基本特征,包括基本项和扩充项。基本项是基本必须的信息,扩充项是附加信息。数据体用于保存高程值,数据平面位置信息需要基于文件头信息及高程值的索引号计算得到5。1 1文件头文件头的基本项由网格数据交换格式标志、版本号等 12 个必选项构成。文件头的扩充项由坐标系类型、坐标单位、参考椭球等 11 个可选项构成,见表 1。基本项是描述 DEM 的基础,每一项必须写在DEM 文

9、件中,扩充项可以根据基本项的需要来决定是否出现在文件头中。表 1文件头的基本项和扩充项的名称及说明Tab 1The names and descriptions of the basic and extension items in the file header文件头的基本项文件头的扩充项DataMark 为网格数据交换格式标志Coordiante System Type 为坐标系类型Version 为版本号XY Uint 为平面坐标单位Alpha 为方向角Z Unit 为高程坐标单位Compress 为压缩方法Spheroid 为参考椭球X0为左上角 X 坐标Prime Meridian

10、为本初子午线Y0为左上角 Y 坐标Projection 为投影类型DX为 X 方向的间距Parameters 为投影参数DY为 Y 方向的间距Vertical Datum 为高程基准ow 为行数值Temporal eference Systerm 为时间参考系Col 为列数值Min V 为数据集最小坐标值Value Type 为网格值的类型Max V 为数据集最大坐标值Hzoom 为高程放大倍率1 2数据体CNSDTF DEM 数据体保存了每个高程点的平面位置及高程值。为实现压缩文件的目的,高程点的平面位置及高程信息采用游程编码的方式保存。2转换工具设计2 1数据体转换设计由于 CNSDTF

11、DEM 格式数据采用游程编码的方式保存,因此数据体无法通过读取方式直接获取,而需要通过文件头中的左上角坐标项(X0,Y0),高程点间距离(DX,DY),行、列数值(ow,Col)及高程点出现的位置计算得到。其次,数据体中的高程值是经过放大后的值,实际高程值需要用此高程值除以高程放大倍率(参数 Hzoom)得到。文件头虽然提供了参数Alpha 表示 DEM 模型的旋转角度,但在实际数据中,此参数的值都为 0,所以不用考虑图形旋转的问题。每个点的平面位置和高程坐标计算方法为X=X0 DX(i/ow)(1)Y=Y0+DY Mod(i,Col)(2)H=Hi/Hzoom(3)式中:X、Y、H 分别为高

12、程点的 X 坐标、Y 坐标和高程值;X0、Y0分别为 DEM 数据左上角的 X 坐标、Y 坐标;ow、Col 分别为数据体的行数与列数;DX、DY分别为数据体点间的行距及列距;Hzoom 为高程放大倍率;Hi为第 i 个点位处的高程值;Mod 表示取余计算。读取 DEM 文件后采用上述方法将 CNSDTF DEM 格式数据中以文本信息保存的高程点转为结98测 绘 标 准 化第 39 卷构化的高程点数组,并对高程点数组做进一步处理,以便将高程点数组写入 DWG 文件中。2 2点结构体设计从 DEM 文件读取的多个高程点数据需要以合适的形式暂存到计算机内存中,以便后续调用。为将以文本信息保存的高程

13、点转为结构化的高程点数组,需要定义一个新的高程点对象。定义高程点对象常见的方式有两种:类方式(Class)、结构体方式(Structure)。因结构体方式有在栈上分配内存的特点,具有更高的性能,适合对大量点数据处理的场景。因此,笔者选择使用结构体方式定义高程点对象,详细结构如下:Public Structure HPointPublicX As DoubleX 坐标PublicY As DoubleY 坐标PublicH As Double高程End Structure2 3程序框架设计ObjectAX NET 是 AutoCAD 提供的二次开发环境之一,是在 Microsoft NET Fr

14、amework 编程框架下使用 P/Invoke 技术对 ObjectAX 提供的 C+函数进 行 重 新 封 装 后 得 到 的 新 开 发 环 境。基 于ObjectAX NET 编程技术的特点,转换工具设计为3 个主要功能模块:DEM 文件解析模块、点对象转换模块、数据库操作模块6 7。1)DEM 文件解析模块的功能是读取CNSDTF DEM 文件的文件头与数据体,并将文本形式的点数据解析为自定义的点结构体方式。2)点对象转换模块的功能是将自定义的高程点结构体对象转换为 ObjectAX NET 对象模型中的点(DBPoint)对象,并设置图层、颜色、点样式等属性信息。3)数据库操作模块

15、的功能是建立 DWG 数据库(Database)对象,并将点(DBPoint)对象写入 DWG数据库的模型空间(ModelSpace)对象中,最后保存为 DWG 文件。2 4转换流程将 CNSDTF 格式的 DEM 文件转为 DWG 格式数据,本质就是读取 CNSDTF DEM 文件并解析为点结构体,再通过 ObjectAX NET 提供的二次开发接口将点结构体转换为点对象,写入 DWG 数据库中的过程。从转换方式上来讲,主要有以下 3 种方式:单个或多个 CNSDTF DEM 文件转到当前 DWG中;单个或多个 CNSDTF DEM 文件转到新的 DWG中;多个 CNSDTF DEM 文件转

16、到多个 DWG 中。文件格式转换流程如图 1 所示。图 1转换流程Fig 1Conversion process3程序实现CNSDTF DEM 转 DWG 工具的开发基于ObjectAX NET(AutoCAD 2020 版)框架,集成开发环境(Integrated Development Environment,IDE)选 择Visual Studio 2013,使用 Visual Basic NET 作为编程语言实现以上功能。3 1开发环境搭建在 Visual Studio 2013 中创建一个项目,语言选择 Visual Basic NET,类型选择类库。项目创建完后,引入 AutoCA

17、D 2020 安装目录中的 acdbmgd dll与 acmgd dll,并将“复制到本地”属性设为 False,“目标 CPU”属性设为 AnyCPU。3 2创建转换命令在 ObjectAX NET 开发环境中,需要对类中一个无参数方法使用 Command Method Attribute 标签进行标识。程序加载后,就可以在 AutoCAD 命令行中输入自定义的命令对方法进行调用。3 3关键技术点不管采用何种转换方式,都需要将点数据写入09第 2 期李蔚林,等:CNSDTF DEM 转 DWG 工具的设计与实现DWG 格式文件对象中。如果是转到当前文档中,可以通过 Database 对象写入

18、 DWG 格式文件中。如果是转 换 到 新 建 文 档 中,需 要 通 过 New Database(True,True)方法实例化 DWG 格式文件,然后按照以下伪代码描述步骤执行。1)开启转换 事 务:Transaction Manager StartTransaction;2)获 取 模 型 空 间:Transaction Get Object(Object Id,Open Mode For Write);3)创建点对象:New DBPoint(X,Y,Z);4)添加到模型空间:Model Space Append Entity(DBPoint);5)调用事务创建新对象:Transact

19、ion Add NewlyCreated DB Object(DBPoint,True);6)循环执行步骤 3)至 5);7)提交转换事务:Transaction Commit。3 4编译与加载CNSDTF DEM 转 DWG 格式的代码经调试、编译后,可以输出一个 DLL 文件。为保证此 DLL文件能在32 位与64 位系统中通用,编译时应将目标 CPU 类型调整为 Any CPU8。在 AutoCAD 命令行中输入 netload 加载已经编译好的 DLL 文件后,就可以通过 DEM2DWG 运行 CNSDTF DEM 转DWG 格式的命令,并对选择的 DEM 文件进行格式转换。4应用实例

20、在某个 1 1 000 地形图航测项目中,除提交DWG 格式的地形图外,还提交了 1 000 多 km2的CNSDTF 格式的 DEM 数据。由于没有现成的转换工具,导致这些 DEM 数据无法直接使用。为了将DEM 数据用于高标准农田建设,开发了转换工具,将所有 CNSDTF 格式的 DEM 数据采用多对多的转换方式转换为 DWG 格式。本实例中 CNSDTF 格式的 DEM 数据规格为:格网尺寸 2 m、每幅图由 201 行与 201 列组成共计40 401 个点。笔者利用设计的转换工具将上述所有 CNSDTF 格式的 DEM 数据全部转为 DWG 格式共耗时 17 4 min,平均每幅图耗

21、时约 0 24 s,图 2 为单个 DEM 文件转换后的效果。图 2转换效果Fig 2Conversion effect5结语GB/T 177982007 的推广对促进我国地理空间信息数据的共享起到了积极作用,但受 CNSDTF定义数据结构的限制,不能被主流的 CAD、GIS 软件直接读写,影响了这一基于标准数据的应用。本文以 CNSDTF 中的 DEM 数据为例,通过对 CNSDTF DEM 格式文件结构的分析,使用 VisualBasic NET编程语言调用 Object AX NET 二次开发接口,设计开发了基于 AutoCAD 平台的专用转换工具,成功将 CNSDTF DEM 格式的

22、DEM 数据转为 DWG 格式。此转换工具为 CNSDTF DEM 格式数据转换提供了一种解决方法,可促进对数据的进一步利用;另一方面,AutoCAD 提供了丰富的二次开发接口,应在测绘领域加以充分应用,以大幅提升测绘地理信息数据处理水平。参考文献 1 李志林,朱庆著 数字高程模型 M 武汉:武汉大学出版社,2003 2 赵莎莎,王伟丽,徐文会 基于多种软件的 DEM 生产方法探讨 J 测绘标准化,2022,38(1):40 43 3 李山山,彭嫚 3 种常用 DEM 格式自动化互换的初探 J 测绘与空间地理信息,2008,31(3):6 8,11 4 曾洪飞,卢择临,张帆 AutoCAD VBAVB NET 开发基础与实例教程(第 2 版)M 北京:中国电力出版社,2013 5 地理空间数据交换格式:GB/T 177982007 S,2007 6 李冠亿 深入浅出 AutoCAD NET 二次开发 M 北京:中国建筑工业出版社,2012 7 孙幼政,张海青,高名岩 大比例尺地形图制图数据建库技术 J 测绘标准化,2021,37(4):53 57 8 伊夫杰,郝利斯 Visua1Basic2008 高级编程(第 5 版)M 张敏,丁饰译 北京:清华大学出版社,200919

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服