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.


发布评论