- OSGB 数据介绍
一般倾斜摄影测量数据的下一级目录有一个名称为Data文件夹和一个XML文件,见图一所示。
XML文件包含了一些关于倾斜摄影测量数据的元数据信息,版本信息 (): 表示该元数据的版本、空间参考系统 (): 此项指明了所使用的空间参考系统(SRS),这里是“EPSG:32622”,它是一个特定的坐标系统,用于定义地理位置。EPSG:32622对应于WGS 84 / UTM zone 22N、空间参考系统的原点 (): 这指定了在空间参考系统中的原点位置,格式为“X, Y, Z”坐标。在这里,2049697,17427843,0代表了三维空间中的某个具体位置、纹理信息 (): 这部分包含纹理的来源,这里标注为“Visible”,可能表示该模型使用的是可见光影像数据作为纹理来源。
现在很多专业的软件就是通过加载这个XML文件来进行可视化,主要就是来确定坐标系。
Data文件夹内的每一个子文件夹其实表示一个瓦片区域,主要内容都是在这些子文件夹里面,这也是刚接触这方面研究的初学者最头疼的地方,接下来的内容十分重要,我会尽自己所能讲清楚这里面的细节,希望能够帮助其他人。
现在我们随便打开一个子文件夹,我们可以看到我用红圈和绿圈圈出了两部分数据,其中红色框圈出的文件是这个瓦片文件的入口,也就是根节点。为什么这么说呢,因为这个节点连接了LOD层级最低的一级(这里就是Tile_0022_0031_L16_0.osgb 文件),然后该层级连接下一个LOD层级(这里是Tile_0022_0031_L17_00.osgb)(这里也许具体的理论说法不是这样,我是按照自己的想法说的。希望大家不要怪罪,最好能够给出指正)。
绿色框圈出的部分是什么呢?现在的倾斜摄影测量数据有一种细节层次(Level Of Detials)表达技术,其主要思想就是相机距离三维模型越远,网格数目越少、图片分辨率越低。我们发现每个子文件夹里面的所有层次目录都是一样的,第一个文件就是根节点,其他节点都是不同LOD层级的文件,绿色框的文件名称种有“L16、L17、L18、L20、L22"等字样,这里的数字就是代表不同的LOD,数值越大,三维模型就越精细。
介绍了这些知识后,相信已经减少了不少初学者的摸索时间,如果有帮助,请给个赞,点个关注吧。接下来还有介绍。
前面我们从宏观上了解了同一个文件夹内OSGB文件的相互关系了,下面我们介绍一下每个OSGB文件的内容。
OSGB中的B是binary 二进制的意思,那我们没办法直接看,所以我们把它转换成文本文件。
现在我们讲一些主要的内容,首先是红色框内的数据说明,这表示该OSGB文件的数据类型是osg::Group类型(这是OpenSceneGraph图形库定义的一种数据类型),Children 1表示它有一个子节点,该子节点的类型是osg::PagedLOD,该子节点有一个RangeList字段,里面有一段描述 0 7.07216 ,7.07216 1e+30 。这是说明当相机距离低于7.07216时,该osgb时可见的,当超过7.07216后,该osgb文件不可见了。
DatabasePath 字段也是一个重要的属性,这个属性旨在说明该文件的路径位置,在编程的时候,一定注意这个属性的设置,要不然可能会出现自己电脑处理的文件在别人电脑上没办法使用,这种问题主要是这个字段没有设置为输出路径。
前面我讲第一个OSGB文件是入口文件,可能有初学者不明所以,关键点就是这个RangeDataList字段,它说明它下一个节点的文件路径,我们可以看到该OSGB文件的下一个节点文件是Tile_0022_0031_L16_0.osgb,而该文件就是Tile_0022_0031.osgb,那我们看Tile_0022_0031_L16_0.osgb的RangeDataList字段的值是多少呢?我们发现是Tile_0022_0031_L17_00.osgb,这样的话,只需要读取入口文件,然后不断读取下一个节点,最后能够将这一个瓦片的所有文件读取出来。
RangeDataList 2 {
“”
“Tile_0022_0031_L16_0.osgb”
}
下面这张图的最后一个白框圈出的部分,主要说的是该Children节点的Children节点的数据,包括几何类型、纹理数据、三角形数目、顶点数目、纹理坐标
##这是我关于OSGB数据的理解,接下来的文章,我将讲一下倾斜摄影测量数据轻量化的算法策略以及具体效果。