2024年4月26日发(作者:)

基于Creator的三维地形建模中DED文件的生成

聂文兵;高飞

【摘 要】DED(Digital Elevation Data)是MultiGen Creator引入数字网格高程

数据的惟一格式,其他高程数据在引入前必须先转换为DED格式.本文结合基于

MultiGen Creator的某院校常用训练场地三维地形模型的建立,通过对DED文件

的格式的研究,探讨了利用等高线地图生成DED文件的过程、方法和技巧;开发了

自定义地形数据格式转换成DED文件的转换软件,实现了高质量DED文件的生成.

【期刊名称】《现代电子技术》

【年(卷),期】2009(032)012

【总页数】4页(P159-162)

【关键词】Creator;DED;DEM;地形数据;地形建模

【作 者】聂文兵;高飞

【作者单位】南昌陆军学院,分队战斗实验室,江西,南昌,330103;军械工程学院,军械

技术研究所,河北,石家庄,050003

【正文语种】中 文

【中图分类】TP311

0 引 言

MultiGen Creator是一套功能强大、在视景仿真中应用广泛的建模软件。然而各

种格式的地形数据文件不能在Creator中使用,必须经过处理转换成Creator专

用的数字高程数据(Digital Elevation Data,DED)文件,基于该文件生成的地形,

精确度高,并且支持从多方面对地形模型进行优化调整,比如:BSP(Binary

Separating Planes),LOD(Level Of Detail),CAT(Continuous Adaptive

Terrain)等。因此,由DED文件生成地形是Creator地形建模的一种重要方法,

如果能将其他常用数字地图文件中有用的数据读出,直接生成DED文件,将对

Creator的建模提供很大的方便。这里主要探讨利用军用等高线地图生成三维地形

模型的过程中DED文件的生成过程、方法和技巧。

1 由等高线地图生成DEM

数字高程模型(Digital Elevation Model,DEM)是以数字形式存储的表示物体位

置高程值的集合。DEM是美国国家图像和地图测绘局(National Image And

Mapping Agency,NIMA)开发的描述地面高程的一种模型,它采用x,y,z坐标表

达地表形态。DEM数据经过格式转换,可以在大多数地形生成软件(如

ARC/INFO,MultiGen Creator,MapInfo,IMAGIS,MAPGIS等)中生成三维

地形。

1.1 地形源数据的获取

地形源数据主要是建立数字高程模型(Digital Elevation Model,DEM)用到的高

程数据。它的获取方法有以下几种:

(1) 采用大地测量的方法直接从地形上测出高程;

(2) 利用航空摄影测量照片,采用数字高程判断仪从两张对应的照片上读取高程;

(3) 利用卫星摄影测量照片读取高程数据(遥感);

(4) 从小比例尺普通等高线地图上读取高程数据;

(5) 从现有的地图数据库提取所需区域的地形高程数据。

等高线地形图生产DEM的方法已经可以广泛应用于生产。以现有某院校的常用训

练场地用图为基础数据来源,充分利用自有条件对纸质军用地图进行扫描、预处理、

数字化、高程赋值等操作,最后生成DEM,既体现了经济性,又能满足战术演练

的需求。

1.2 等高线地图的矢量化

等高线地形图经过扫描、二值化、细化等预处理后,保留了表达地形的最基本的特

征——等高线。这时可以用专门的矢量化软件进行矢量化处理,也可以根据用户

的需求开发一个矢量化系统来进行等高线地图的矢量化工作。在此采用第三方软件

Able Software R2V for Windows(R2V)来完成这部分工作。它是一种高级光栅图

矢量化软件系统,具有强有力的智能自动数字化技术与方便易用的菜单驱动图形用

户界面有机地结合到Windows & NT环境中,为用户提供了全面的自动化光栅图

像到矢量图形的转换功能;它可以处理多种格式的光栅(扫描)图像,是一个可以用

扫描光栅图像为背景的矢量编辑工具。

将经扫描并处理完成的某院校常用场地训练用图()导入R2V软件,

可以直观地看到地图上的任意位置;接下来的工作就是按照R2V软件提供的矢量

化过程,按部就班地进行地图矢量化,以获取生成DEM所必须的高程信息,主要

包括如下几个步骤:

(1) 对等高线进行屏幕跟踪矢量化;

(2) 对等高线标赋高程值;

(3) 对离散高程点进行屏幕矢量化;

(4) 对高程点标赋高程;

(5) 对这些矢量化结果进行编辑、检查、拼接以生成拓扑关系完整的矢量图。

1.3 DEM的生成

通过屏幕数字化软件对某院校常用训练场地用图进行数字化,并对等高线赋ID值

(高程)后,选用合适的算法,生成自定义规则格网DEM模型,从而获取了地形建

模的数据源DEM文件。用等高线生成规则格网DEM最主要的方法是内插法。按

内插点的分布范围,可将内插分为整体内插、分块内插和逐点内插三类,具体的选

择依据是精度和运算速度之间平衡。

这里采用逐点内插法中的加权平均法。为了求每个格网点的高程值,采用4个方

向的搜索,分别为东南方向、西南方向、西北方向和东北方向。寻找距离待求点距

离最近的点,考虑精度的要求参考点的数目不小于5。而邻近数据点采用基于点的

范围进行选择,选择方式如图1所示。

邻近点的选取,由于圆的半径取决于原始数据的疏密程度和原始数据点可能影响的

范围。为了解决这个问题,可以采用动态圆半径的方法,它的思路是从数据点的平

均密度出发,确定圆内数据点数(平均要有10个),以求解圆的半径R,其公式为:

πR2=10(A/N)

(1)

根据这些已知点的高程值,以距离参数作为权重,利用加权平均法求解待定点的高

程值。数学方程式如下:

(2)

式中:Zp是待定点p的高程;Zi是第i个参考点的高程值;n为参考点的个数;

pi是第i个参考点的权重,这里权重由参考点与待求点的距离决定。

图1 动态圆取点

2 DED文件的生成

2.1 DED文件格式和计算方法

2.1.1 DED文件格式

标准DED文件由标准文件头、统计记录、数据单元文件头和数据单元四部分组成,

各部分定义如下:

(1) 标准文件头(128 B)

typedef struct ss_ stdhdr {

long len;

/* 块的字节数,4 B */

char id[4];

/* 文件识别码 */

char part[8];

/* 软件分号 */

char rev[8];

/* 软件修订号 */

char create[26];

/* 创建日期时间 */

char update[26];

/* 最后更新日期时间 */

char spare[52];

/* 空格 */

}ss_stdhdr;

(2) 统计记录(32 B)

typedef struct stats {

long ncell;

/* 数据单元数目 * /

short minz,maxz;

/* 整个文件最小、最大高程 */

char spare[24];

/* 空格 */

}stats;

(3) 数据单元(40 B)

typedef struct cell_hdr {

float latstart,latend;

/* 起止纬度 */

float longstart,longend;

/* 起止经度 */

float deltalat,deltalong;

/* 经纬间距,单位10 s */

float nptlat,nptlong;

/* 纬度和经度上的点数 */

float deltax,deltay;

/* 两点间距离(英尺)*/

}cell_hdr

(4) 单元数据

数据为2 B Short型,所有数据无间隔的连续存放。

2.1.2 DED文件的计算方法

生成DED文件的重点是计算单元格两点间的距离。DED中数据单元的两点间实际

距离即DED数据网格的间距,是用地球椭球面上大地线的长度来度量的。网格中

任意两点A(B1,L1)和B(B2,L2)间的距离可以采用大地主题解算方法来计算。

首先将B1,L1和B2,L2换算成以弧度为单位,然后进行下列计算。计算中常数采

用的是克拉索夫斯基椭球体元素。

b=B2-B1

(3)

P=sin bcos L2

(4)

Q=cos L1sin L2-sin L1cos L2cos b

(5)

M=sin L1sin L2+cos L1cos L2cos b

(6)

A0=arctan(P/Q)

(7)

(8)

A=arctan[(Psin A0+Qcos A0)/M]

(9)

S=6 356 863.020+(10 708.949-

13.474cos A1)cos A1

(10)

得到A,B间距离为:L=AS,最后将“米”为单位的数据转化为“英尺”单位。

2.2 DEM数据格式转换成DED数据格式

在分析DED文件的格式规范和计算方法后,通过格式转换软件便可实现DEM数

据格式文件向DED格式文件的转换。由于可获得的原始高程数据无统一标准,文

件格式也有所差别,有时MultiGen Creator自带的工具并不能派上用场,这就需

要自己开发地形数据格式转换工具软件。

在编制地形数据转换软件主要做的工作有以下几项:

(1) 从文件中读取有用的高程数据

一些常用的标准的高程数据文件如DEM,DMA等,Creator自带了转换工具。

对于一些自定义的文件格式或Creator不支持的其他文件格式,须根据其文件格

式,将其中有用的数据分离读出。

(2) 根据DED文件的格式计算出DED文件需要的相关参数

DED文件表示的是某一经纬度区域内的地形,需根据高程文件的地形参数,计算

出DED文件中有关的参数,如:经纬度的起始值和终止值、经纬度的跨度及相邻

两点的距离等。

(3) 将参数及数据写入DED文件

DED文件是二进制文件。在写入数据时应注意以二进制的方式写,并应注意在写

入数据时要按照DED文件中高程数据的排列顺序;否则,生成的DED文件中可

能出现方向的变化。

由于DED文件格式源于SGI Irix系统平台,多字节数据的存储方式是将低字节存

储在起始地址,称为小端(little-endian)字节序;而Windows系统平台的多字节

数据存储方式是将高字节存储在起始地址,称为大端(big-endian)字节序,所以在

读取和写入时需要进行转换。以下是部分示例代码:

CDedHead::ReadFile(CString chName) //读文件

{

for(int i = 0;i < m_;i++)

{

nn = m_(&m_cell,sizeof(cell_Hdr));

m_g = Ex32Float(m_g);

m_ = Ex32Float(m_);

}

}

unsigned long CDedHead::Ex32Int(unsigned long lv)

{

unsigned long *buf = &lv;

for(unsigned int i=0;i<4;i++)

{

ENDIAN_32(buf[i]);

}

return *buf;

}

float CDedHead::Ex32Float(float fv)

{

float *buf = &fv;

for(unsigned int i=0;i<4;i++)

{

ENDIAN_32r(buf[i]);

}

return *buf;

}

unsigned long CDedHead::GetDedLong(unsigned long lv)

{

unsigned long by1 = lv - (lv>>8)*256;

lv = lv>>8;

unsigned long by2 = lv - (lv>>8)*256;

lv = lv>>8;

unsigned long by3 = lv - (lv>>8)*256;

lv = lv>>8;

unsigned long by4 = lv - (lv>>8)*256;

unsigned long lRet = (unsigned long)by4;

lRet += (unsigned long)(by3*256);

lRet += unsigned long(by2*256*256);

lRet += unsigned long(by1*256*256*256);

return lRet;

}

unsigned short CDedHead::GetDedshort(unsigned short sv)

{

unsigned short by1 = sv - (sv>>8)*256;

sv = sv>>8;

unsigned short by2 = sv - (sv>>8)*256;

unsigned short lRet = (unsigned short)by2;

lRet += (unsigned short)(by1*256);

return lRet;

}

采用自主开发的转换软件,将基于等高线地图生成的某院校常用训练地域DEM转

化为DED格式的文件“”,这样就完成了三维地形生成的地形数

据准备工作。

3 结 语

在此以某院校常用训练场地三维地形模型的建立为例,详细介绍了以等高线地图生

成Creator专用数据DED文件的方法、过程和技巧。该方法成本低,效率高,可

操作性强;同时利用专业矢量化软件和自己编制的转换软件,优势互补、使用灵活。

在扫描数字化、插值等步骤中注意了误差的控制,最后得到的DEM数据具有较高

了误差的控制,使得到的DEM数据具有较高的精度,从而得到高精度的DED文件,

实践证明,该方法确能快速有效的生成DED文件,为其他地区批量生成DED提

供了借鉴,从而利用MultiGen Creator软件建立高质量的三维地形模型。

参 考 文 献

[1] 胡少林.基于DEM数据的三维地形建模方法研究与实现[D].长沙:国防科学

技术大学,2002.

[2] 姚建新,冯秀兰.等高线的三维地形建模与实现[J].林业资源管理,2002,

9(4):31-33.

[3] 陈珩.战场环境仿真中的三维地形生成技术研究[J].航空电子技术,2006,

32(2):38-44.

[4] 马龙,杜道生.GIS中DEM产品精度的分析和评价[J].测绘信息与工程,

2003,28(3):4-6.

[5] 马友平,冯仲科,张志华,等.地形图的R2V矢量化与ArcView的三维显示

[J].湖北民族学院学报:自然科学版,2007(3):331-334.

[6] 戴振华.R2V与MapInfo在林业制图中的组合应用[J].湖南林业科技,2003,

30(2):57-58.

[7] 王乘,周均清,李利军.Creator可视化仿真建模技术[M].武汉:华中科技

大学出版社,2005.

[8] 王洪涛.深入剖析Visual C++编程技术及应用实例[M].北京:人民邮电出版

社,2003.

[9] 段琪庆,郝光荣,李培红,等.在Mapinfo下制作DEM的程序设计及方法

[J].山东建筑工程学院学报,2004(3):15-18.

[10] 宗玮,徐雷振.泰宁1∶1万DEM的生成及应用[J].株洲师范高等专科学校

学报,2005,10(5):31-33.

[11] 郭艳萍,娄国胜.等高线三维显示技术的探讨[J].三晋测绘,2004(1):19-

21.