论文部分内容阅读
摘要:本文通过阐述航测地形图的图形数据库信息,分析数字高程模型的提取原理和方法,并提出数字高程模型格式及其处理方法。
关键词:航测数字高程模型处理方法
1 航测地形图的图形数据库信息
目前,在工程设计中所使用的地形图大多是AutoCAD状态下的矢量图,在该软件下打开航测地形图,通过对图中实体的属性列表,进行综合分析后可知,航测地形图分两种:一种是等高线带有高程属性;另一种是等高线不带高程属
性。如图1 为部分地形图,通过对线路设计中常用的DWG 图形的分析,其主要内容归纳为以下几方面:
(1) 等高线信息
在地形图中,等高线反映地形的起伏情况,在等高线上标注了绝对标高。在AutoCAD 的图形中,等高线是POLYLINE 实体,对带高程的地形图,该实体包含的几何属性有各转折点的(X,Y, Z)坐标、线段长及封闭区域的面积等,而不带高程属性的地形图中高程Z 为0,其实体的子类都为AcdbPolyline。
(2) 离散点
为完整反映地表形态,在地形图中增加了离散点,标注为点和高程值,点的标注记为一个块(block),块的插入点高程为0,而在高程值文本的对齐点上附加了高程值。
(3) 其他信息
在地形图中还有地类界线、山谷线和山脊线、河流、公路和铁路线、各种管线及电线、建筑物等信息,从图中属性分析可知,这些图线的高程值都为0,与形成数字高程模型无关,所以,在从地形图中提取DEM 时,根据图形交换文件(Drawing eXchange File 缩写为DXF)的组码和组值的对应关系,就可过滤掉这部分不带高程的图形实体。
2 数字高程模型的提取原理和方法
2.1 有高程属性的地形图DEM 获取方法
在AutoCAD 状态下, 从矢量地形图中提取数字高程模型的流程如图2 所示,原理和步骤如下:
(1) 建立工作路径和数据文件
在AutoCAD 状态下打开图形文件(DWG),建立工作路径和数据存储文件。为了操作方便,采用VC++6.0 开发界面友好的对话框录入方式,在对话框中输入工作路径(如:f: work)及数据文件名(如map.dat),并采用警告框提示数据文件创建是否成功,当数据文件创建成功后,以写的方式打開数据文件。
(2) 图形实体获取
利用Visual C++6.0 和ObjectARX 开发工具,运用acedSSGet("a", NULL, NULL, NULL, ads_name all_entities)函数获取当前地形图中的图形数据实体, 然后用acedSSLength(ads_nameall_entities, long entities_count)函数获取选择集中的实体数目。
(3) 获取实体名称
在选择集all_entities 中存放了当前地形图中的所有实体, 利用acedSSName(ads_nameall_entities, long i, ads_name entity)函数,获取参数all_entities 实体集合中第i 个实体的名称并存放于参数entity 中,利用循环可遍历实体集合中所有实体,可逐个提取每个实体中的几何和属性信息,存储所需要的平面坐标和高程值,过滤掉无用的信息。
(4) 实体数据描述表
利用ads_entget(ads_name entity)函数返回参数entity 所指定的实体数据的描述表,将该表存储在结果缓冲区中。结果缓冲区的结构为:struct resbuf
{ 指向下一个结果缓冲区的指针变量
struct resbuf *rbnext;
用来指明resval 值的类型
short restype;
存放该“结果缓冲区”节点值的resval 变量
union ads_u_val resval;
};
resval 变量是个同位union ads_u_val 类型,定义为:
union ads_u_val
{ ads_real rreal;
ads_real rpoint[3];
short rint;
char *rstring;
long rlname[2];
long rlong;
struct ads_binary rbinary;};
结果缓冲区的restype 字段,用来指明返回值resval 的类型,ADS 函数处理实体时,其返回结果缓冲区的restype 字段常常是DXF 实体代码。通过对地图形的分析可知,等高线均为POLYLINE 实体,如果获得地形图中等高线上各节点的(X, Y, Z)坐标,也就生成了大部分数字高程模型的数据。另外,在地形图中还有一些带高程的散点,也需获取其坐标和高程,而要舍弃其它与高程无关的实体,如限定返回z 坐标小于等于0 或大于5000 时,即可过滤掉这部分数据。
由以上DXF 组代码的范围划分,可从实体选择集中获取各种实体的相关信息。通过上述方法,可获取航测地形图中与高程数据有关的实体的(x, y, z)坐标,为在线路平面图上自动获取线路中心线的地面高程,形成纵断面图和横断面提供数字高程模型,极大地提高了工作效率,同时可节省设计单位购置数字高程模型(DEM)的费用。
2.2 不带高程属性的地形图DEM 获取方法
对于没有高程属性的矢量地形图,在数字化过程中,可用人工干预的方法给等高线赋予高程。没有高程属性的地形图,等高线的Z 坐标值都为0,但在每根等高线上都标注了对应高程数值,且相邻两根等高线的高差都相等,这样就可逐根选择等高线并对其赋予高程属性,对高差相同的等高线,程序可根据选择等高线的顺序自动递增或递减高程。这种方法虽然效率不高,但可通过交互功能选择不带高程的矢量地形图中的等高线,获取AcDbPolyline 对象的(x, y)坐标,再输入对应的高程值,将各点的(x, y, h)写入数据文件中,建立数字高程模型。
3 数字高程模型格式及其处理方法
DEM是进行选线设计自动化的基础和前提,在线路平面设计过程中,为了自动获取线路中心线的地面高程数据,就必须对DEM 进行必要的处理,以便生成通过线路中心线的地面线,为后续的竖向设计提供地面起伏情况。
3.13 种DEM 数据格式
只有在分析DEM 的存储格式的基础上才能对其进行处理,以下是3种与地形图配套的DEM格式。
(1) 矩阵式DEM 数据
线路平面设计是在矢量地形图(DWG)中进行的, 测绘局提供的与地形图配套的DEM 格式就是由地面规则格网点的高程值构成的矩阵,形成栅格结构的数据集。这种格式提供地面点的坐标和高程,由3 部分数据组成:数据文件中前5 行是第1 部分,是对文件的说明,包括文件名、比例、单位、坐标原点的(x, y)值;6 到12 行为第2 部分,是对格网的说明,包括DEM 的左上角坐标(x, y),x 和y 方向的格网间隔,对应格网点的高程值的行数和列数,点的高程值小数
点后保留的有效数字的位数;第3 部分为对应于格网点的高程数字的矩阵,图廓以外的点,即无效高程值的格网点处用-99999 表示,其余数据为网格点处的高程值。
(2) 等高线和地形点式DEM 数据
一些大型勘察设计院的航测大队提供的与地形图配套的DEM 格式为等高线和地形点式,在DEM 数据文件中,第1 行数据为数据范围,如左下角坐标为(698165.248,518937.924),右上角坐标为(699150.390,520072.100),第2 行说明此数据共有的组数,第3 行表明第1 组数据共有多少个点和这些点的共同高程值,以后是这些点的(x, y)坐标,然后是第2 组数据,以此类推,直到最后一组数据结束。
(3) “XYZ”格式的DEM 数据
“XYZ”格式的数据文件中,每行为一个点的X、Y、Z 坐标,其中Z 为此点的高程,任何其它格式的DEM 数据都可以转化为此格式使用。如果测绘局和测绘大队提供的DEM 数据格式与前两种格式相差太悬殊,可将其转化为“XYZ”格式,以便后续数字地模的处理。
3.2 数字高程模型处理及应用
数字地形模型是地形表面形态属性信息的数字表达,是带有空间位置特征和地形属性特征的数字描述。数字地形模型中地形属性为高程时称为数字高程模型。高程是地理空间中的第三维坐标。
无论测绘部门提供的数字高程模型还是从地形图中获取的数字高程模型,都不能直接用于选线设计中,必须对数字高程模型进行转换,才能在线路设计中由程序自动获取点的高程数值。
4 结 束 语
数字高程模型(DEM)在地形可视化显示、公路及铁路辅助设计等领域有广泛的应用,运用VC++6.0 和ObjectARX 开发工具,从航测地形图中获取DEM 数据,为在选线设计过程中,利用三角网内插点的高程值并自动生成纵断面地形线提供数字高程模型,极大地提高了公路、铁路的设计效率。
注:文章内所有公式及图表请以PDF形式查看。
关键词:航测数字高程模型处理方法
1 航测地形图的图形数据库信息
目前,在工程设计中所使用的地形图大多是AutoCAD状态下的矢量图,在该软件下打开航测地形图,通过对图中实体的属性列表,进行综合分析后可知,航测地形图分两种:一种是等高线带有高程属性;另一种是等高线不带高程属
性。如图1 为部分地形图,通过对线路设计中常用的DWG 图形的分析,其主要内容归纳为以下几方面:
(1) 等高线信息
在地形图中,等高线反映地形的起伏情况,在等高线上标注了绝对标高。在AutoCAD 的图形中,等高线是POLYLINE 实体,对带高程的地形图,该实体包含的几何属性有各转折点的(X,Y, Z)坐标、线段长及封闭区域的面积等,而不带高程属性的地形图中高程Z 为0,其实体的子类都为AcdbPolyline。
(2) 离散点
为完整反映地表形态,在地形图中增加了离散点,标注为点和高程值,点的标注记为一个块(block),块的插入点高程为0,而在高程值文本的对齐点上附加了高程值。
(3) 其他信息
在地形图中还有地类界线、山谷线和山脊线、河流、公路和铁路线、各种管线及电线、建筑物等信息,从图中属性分析可知,这些图线的高程值都为0,与形成数字高程模型无关,所以,在从地形图中提取DEM 时,根据图形交换文件(Drawing eXchange File 缩写为DXF)的组码和组值的对应关系,就可过滤掉这部分不带高程的图形实体。
2 数字高程模型的提取原理和方法
2.1 有高程属性的地形图DEM 获取方法
在AutoCAD 状态下, 从矢量地形图中提取数字高程模型的流程如图2 所示,原理和步骤如下:
(1) 建立工作路径和数据文件
在AutoCAD 状态下打开图形文件(DWG),建立工作路径和数据存储文件。为了操作方便,采用VC++6.0 开发界面友好的对话框录入方式,在对话框中输入工作路径(如:f: work)及数据文件名(如map.dat),并采用警告框提示数据文件创建是否成功,当数据文件创建成功后,以写的方式打開数据文件。
(2) 图形实体获取
利用Visual C++6.0 和ObjectARX 开发工具,运用acedSSGet("a", NULL, NULL, NULL, ads_name all_entities)函数获取当前地形图中的图形数据实体, 然后用acedSSLength(ads_nameall_entities, long entities_count)函数获取选择集中的实体数目。
(3) 获取实体名称
在选择集all_entities 中存放了当前地形图中的所有实体, 利用acedSSName(ads_nameall_entities, long i, ads_name entity)函数,获取参数all_entities 实体集合中第i 个实体的名称并存放于参数entity 中,利用循环可遍历实体集合中所有实体,可逐个提取每个实体中的几何和属性信息,存储所需要的平面坐标和高程值,过滤掉无用的信息。
(4) 实体数据描述表
利用ads_entget(ads_name entity)函数返回参数entity 所指定的实体数据的描述表,将该表存储在结果缓冲区中。结果缓冲区的结构为:struct resbuf
{ 指向下一个结果缓冲区的指针变量
struct resbuf *rbnext;
用来指明resval 值的类型
short restype;
存放该“结果缓冲区”节点值的resval 变量
union ads_u_val resval;
};
resval 变量是个同位union ads_u_val 类型,定义为:
union ads_u_val
{ ads_real rreal;
ads_real rpoint[3];
short rint;
char *rstring;
long rlname[2];
long rlong;
struct ads_binary rbinary;};
结果缓冲区的restype 字段,用来指明返回值resval 的类型,ADS 函数处理实体时,其返回结果缓冲区的restype 字段常常是DXF 实体代码。通过对地图形的分析可知,等高线均为POLYLINE 实体,如果获得地形图中等高线上各节点的(X, Y, Z)坐标,也就生成了大部分数字高程模型的数据。另外,在地形图中还有一些带高程的散点,也需获取其坐标和高程,而要舍弃其它与高程无关的实体,如限定返回z 坐标小于等于0 或大于5000 时,即可过滤掉这部分数据。
由以上DXF 组代码的范围划分,可从实体选择集中获取各种实体的相关信息。通过上述方法,可获取航测地形图中与高程数据有关的实体的(x, y, z)坐标,为在线路平面图上自动获取线路中心线的地面高程,形成纵断面图和横断面提供数字高程模型,极大地提高了工作效率,同时可节省设计单位购置数字高程模型(DEM)的费用。
2.2 不带高程属性的地形图DEM 获取方法
对于没有高程属性的矢量地形图,在数字化过程中,可用人工干预的方法给等高线赋予高程。没有高程属性的地形图,等高线的Z 坐标值都为0,但在每根等高线上都标注了对应高程数值,且相邻两根等高线的高差都相等,这样就可逐根选择等高线并对其赋予高程属性,对高差相同的等高线,程序可根据选择等高线的顺序自动递增或递减高程。这种方法虽然效率不高,但可通过交互功能选择不带高程的矢量地形图中的等高线,获取AcDbPolyline 对象的(x, y)坐标,再输入对应的高程值,将各点的(x, y, h)写入数据文件中,建立数字高程模型。
3 数字高程模型格式及其处理方法
DEM是进行选线设计自动化的基础和前提,在线路平面设计过程中,为了自动获取线路中心线的地面高程数据,就必须对DEM 进行必要的处理,以便生成通过线路中心线的地面线,为后续的竖向设计提供地面起伏情况。
3.13 种DEM 数据格式
只有在分析DEM 的存储格式的基础上才能对其进行处理,以下是3种与地形图配套的DEM格式。
(1) 矩阵式DEM 数据
线路平面设计是在矢量地形图(DWG)中进行的, 测绘局提供的与地形图配套的DEM 格式就是由地面规则格网点的高程值构成的矩阵,形成栅格结构的数据集。这种格式提供地面点的坐标和高程,由3 部分数据组成:数据文件中前5 行是第1 部分,是对文件的说明,包括文件名、比例、单位、坐标原点的(x, y)值;6 到12 行为第2 部分,是对格网的说明,包括DEM 的左上角坐标(x, y),x 和y 方向的格网间隔,对应格网点的高程值的行数和列数,点的高程值小数
点后保留的有效数字的位数;第3 部分为对应于格网点的高程数字的矩阵,图廓以外的点,即无效高程值的格网点处用-99999 表示,其余数据为网格点处的高程值。
(2) 等高线和地形点式DEM 数据
一些大型勘察设计院的航测大队提供的与地形图配套的DEM 格式为等高线和地形点式,在DEM 数据文件中,第1 行数据为数据范围,如左下角坐标为(698165.248,518937.924),右上角坐标为(699150.390,520072.100),第2 行说明此数据共有的组数,第3 行表明第1 组数据共有多少个点和这些点的共同高程值,以后是这些点的(x, y)坐标,然后是第2 组数据,以此类推,直到最后一组数据结束。
(3) “XYZ”格式的DEM 数据
“XYZ”格式的数据文件中,每行为一个点的X、Y、Z 坐标,其中Z 为此点的高程,任何其它格式的DEM 数据都可以转化为此格式使用。如果测绘局和测绘大队提供的DEM 数据格式与前两种格式相差太悬殊,可将其转化为“XYZ”格式,以便后续数字地模的处理。
3.2 数字高程模型处理及应用
数字地形模型是地形表面形态属性信息的数字表达,是带有空间位置特征和地形属性特征的数字描述。数字地形模型中地形属性为高程时称为数字高程模型。高程是地理空间中的第三维坐标。
无论测绘部门提供的数字高程模型还是从地形图中获取的数字高程模型,都不能直接用于选线设计中,必须对数字高程模型进行转换,才能在线路设计中由程序自动获取点的高程数值。
4 结 束 语
数字高程模型(DEM)在地形可视化显示、公路及铁路辅助设计等领域有广泛的应用,运用VC++6.0 和ObjectARX 开发工具,从航测地形图中获取DEM 数据,为在选线设计过程中,利用三角网内插点的高程值并自动生成纵断面地形线提供数字高程模型,极大地提高了公路、铁路的设计效率。
注:文章内所有公式及图表请以PDF形式查看。