空间查询技术在遥感数据编目处理中的应用
2010-06-05王凤华
李 雷,王凤华
(北京卫星信息工程研究所 北京 100086)
随着地理信息系统 (Geographic Information System,GIS)在理论和软件研制水平上的不断提高,其应用范围不断扩大,而GIS的空间查询技术及其发展也成为人们倍加关注的热点。卫星遥感作为卫星应用的重要手段之一,为人类研究地球获取了大量的珍贵图像资料。对于海量的遥感卫星数据必须考虑采用有效的手段进行组织、存储和管理,并在此基础上能够充分、有效地实现数据查询、数据共享和数据发布,这些都对遥感卫星数据的编目存档系统提出了更高的要求。由于地球遥感卫星图像中具有丰富的地理信息,将GIS的空间查询技术应用于编目系统后,能够产生出更丰富的编目信息。基于这些多元化的编目信息,遥感卫星用户能更高效、灵活、便捷地利用遥感图像。
1 地理信息系统(GIS)中的空间查询技术
1.1 地理信息系统(GIS)简介
GIS是一种采集、传输、存储、管理、处理、分析、表达和使用地理空间数据的计算机系统,是分析、处理和挖掘海量地理空间数据的通用技术[1]。GIS集计算机科学、地理学、环境科学等多种学科于一体,研究计算机技术与空间地理分布数据的结合,通过一系列空间操作和分析方法,为地球科学、环境科学和工程设计等领域提供规划、管理和空间决策的信息。现今,GIS作为一个新兴的信息产业,随着数字化信息产品及空间信息服务需求的迅速增长,在资源评估、勘察与管理、环境评价与检测、灾害预报、城市规划、消防、公安和军事指挥、工程选址等各个方面发挥了越来越大的作用,并已很快地进入个人生活(如:车载导航系统)。
最初的GIS源于地图制图应用,它在地理学上具有先天的优势。GIS存储和处理的信息是经过地理编码的,这为它与编目系统的结合奠定了良好的基础:地理位置及与该位置有关的地物属性信息能更加直观地描述遥感图像的特征。
1.2 空间查询技术
空间查询是通过几何对象之间的空间位置关系来构建过滤条件的一种查询方式[2]。相对于完全由属性过滤条件构建的基于属性的查询(如:SQL查询),基于空间位置关系且同时可以应用属性过滤条件的查询称为空间查询。
对于空间数据来说,有2方面重要信息:一方面是地学几何对象的位置信息。GIS中的数据一般都是经过投影转换的平面数据,把以经纬度标记的点投影为平面数据就是为了获得地学点对象的位置信息;另一方面是地学几何对象之间的空间关系(如:包含、相交、重叠、相离等)。可利用这些空间关系进行空间查询。按照地学几何对象的形状类型 (如点、线、面),将不同类型的地学几何对象组合,可有多种空间查询方式。如:以点查点、以线查点、以面查点、以线查线等。本系统主要应用包含关系,其具体说明如图1所示。
图1 包含关系说明Fig.1 Explanation of containing
面包含点示例:以某地学点对象为基准,在省市面图层中进行空间查询,查询方式设置为面包含点,就可获得该点属于哪个省市,这个省市的其他信息如面积、人口、森林覆盖率等也就可获得,这些信息都可作为该点的描述信息写入数据库。
1.3 开发平台的选用
MapInfo,GRASS,ArcGIS都是较成功的国外GIS软件,它们经过多年的发展已经比较成熟。GIS的研制与应用在我国起步较晚,但发展较快,发展势头迅猛。目前,我国GIS的发展进入了产业化阶段,在技术研究、成果应用、人才培养、软件开发等方面进展迅速,并力图将研究试验、局部应用推向实用化、集成化、工程化,为国民经济发展提供辅助分析和决策依据。中国地质大学的MAPGIS、武汉大学的GeoStar、中国林业科学研究院的VIEWGIS、超图公司的SuperMap等都是当前国内比较流行的GIS软件,打破了国外GIS软件对我国市场的垄断,对我国的GIS发展做出了积极的推进作用。
国产GIS软件的本地化、自主版权、售后支持、成本优势都使其成为国外GIS软件强有力的竞争者。SuperMap作为优秀的国产GIS软件,具有较强的空间数据管理能力、拓扑处理功能,便捷的地图编辑功能,强大的空间分析能力。其组件式软件开发平台(SuperMap Object)支持多种开发语言,可扩展性强,伸缩性强,可进行可视化开发,这更为二次开发提供了便捷的工具。本文选用SuperMap作为GIS开发平台。
2 数据编目存档系统介绍
卫星遥感作为地球环境信息动态监测的重要手段,获取多光谱、多时相、多分辨率遥感资料,其应用领域越来越广泛。随着国民经济的快速发展,各部门对卫星遥感资料的应用提出了越来越多的要求。把遥感数据合理地、便于检索地组织到一起就需要编目系统,它可为用户使用遥感数据提供有效的查询手段。遥感数据的编目就是将多时相、多载荷的遥感数据依照一定的规则加以系统的组织与整理,将之编辑成目录,供人们进行数据的检索[3]。
2.1 数据编目存档处理的作用
卫星数据地面接收系统包括多个子系统,遥感卫星下行数据经过解调器、基带开关后,可进行帧同步、解密/去压缩、记录快视得到0级数据(如fred数据),也可直接记录成原始数据(raw格式数据),待回放时使用。0级数据经过辐射校正、几何校正、几何精校正后,生成各种级别的图像产品。这些数据通过SAN技术存储于磁盘阵列,编目存档系统就是对这些数据进行编目、存档、查询。
目前的系统中0级数据采用fred规范。fred数据(帧扩展原始数据)是一种高可靠性的卫星遥感数据的存档格式,它适用于多种卫星及多种传感器。fred数据中含有图像数据和与其对应的辅助数据(如GPS数据、时间数据、星上载荷状态数据等)。系统在编目处理时把整轨的fred数据分成大小一致的图像景 (逻辑分景),并把每景图像的描述信息计算出来,存入对应的数据表。
如果在编目中采用空间查询技术,可扩充0级数据的数据库表结构,加入更多的地理元信息,在编目时自动生成对应表项,以便查询时灵活应用。对0级数据的数据库进行扩充后,以它为基础处理生成的各级图像产品也就增加了相应地理信息,为用户查询数据提供更方便的手段,这正是本文研究的内容。遥感卫星数据接收系统结构框图如图2所示。
图2 遥感卫星数据接收处理系统结构框图Fig.2 Structure diagram of remote sensing data processing system
2.2 数据编目存档处理流程
编目处理包括对原始数据、0级数据、1、2、3级图像产品的编目处理。其中0级数据的编目处理是最重要的处理,其工作流程如下:数据记录设备将数据存放至公共存储区(磁盘阵列)后,由0级数据编目模块对0级数据进行编目处理。编目处理首先对长条带数据进行逻辑分景,并生成逻辑图像的单景浏览图(及拇指图),同时生成逻辑分景的基本描述信息,即编目元信息。编目元信息中包括四角点和中心点的经纬度信息,以及逻辑景在长条带数据文件中的起始位置信息等,以XML格式存储。元信息存储模块对文件形式的编目元信息进行解析,更新至数据库。编目过程结束。
3 空间查询技术在编目处理中的应用
编目处理过程中生成的编目元信息中包括图像中心点的经纬度,可利用这一地理信息在GIS中运用空间查询的方式获取更多的地理信息,并把这些丰富的地理信息加入编目元信息,提高图像查询、检索的利用效率。
3.1 地理数据与投影数据的转化
图像中心点的经纬度属于地理数据,而GIS提供的数据一般是经过投影的平面数据。若要利用经纬度获取GIS的空间数据,须先经过地图投影。
地图投影的实质是将地球椭球面上的经纬网按照一定的数学法则转移到平面。地图投影的分类方法很多,根据投影变形性质的不同可以将地图投影分为:等角投影、等积投影、任意投影。等角投影没有角度变形,等积投影可保持面积不变,任意投影则适用于要求面积变形不大、角度变形也不大的地图。按投影面几何形状的不同将其分为:圆锥投影、圆柱投影及方位投影。根据投影面与球面位置关系的不同又可将其划分为:正轴投影、横轴投影、斜轴投影[4]。
本系统的投影方式为高斯-克吕格投影,它是一种“等角横轴圆柱投影”。原点纬度0,中央经度L0,将大地坐标(B,L)转化为平面直角坐标(X,Y),高斯-克吕格投影转换公式为:
转换公式都基于椭球体,其中:
a为椭球体长半轴,b为椭球体短半轴;
B为纬度,单位为rad;L为经度,单位为rad;XN为纵直角坐标,单位为m;YE为横直角坐标,单位为m;FE=500 000 m+带号×1 000 000 m;高斯-克吕格投影比例因子k0=1。
地图投影的数学模型是比较复杂的,SuperMap软件将其封装为投影坐标系模型,包括:投影方式、投影参数、坐标单位和地理坐标系,如图3所示。根据此模型可把图像中心点的经纬度转化为对应的平面数据。
图3 SuperMap投影坐标系的数学模型Fig.3 The mathematical model of SuperMap projected coordinate system
3.2 空间查询
3.2.1 SuperMap中的数据类型
使用SuperMap的空间查询功能,就是要按照一定规则查询出几何对象并获取其属性信息,这就需要先理解SuperMap中与本文相关的几种数据类型:
1)工作空间 工作空间是用户的工作环境,用于保存用户的工作环境和工作过程中操作和处理的所有数据,包括数据源、地图等内容。
2)数据源 数据源是存储空间数据的场所。一个工作空间里可以包含多个数据源。所有的空间数据都存储于数据源,任何对空间数据的操作都需要先打开并且获得数据源。
3)数据集 数据集是SuperMap空间数据的基本组织单位之一。一个数据源通常由多个不同类型的数据集组成。可以根据自己的实际需要,或者按照数据集的特征、或者按照不同的使用目的来组织它们,把它们存放到不同的数据源中。数据集可分为空间数据集和非空间数据集(纯属性,无几何对象)。空间数据集又可分为矢量数据集(如点、线、面)和栅格数据集(如影像、格网、数字高程模型)。
4)图层 当数据集被加载到地图窗口中显示时被称为图层,因此图层是数据集的可视化定义。图层可以被看成是地图窗口中的透明薄膜,而地图就是由一系列的透明薄膜叠加形成。 一般情况下一个图层对应着一个数据集。数据集和图层间的关系如图4所示。
图4 数据集和图层间的关系Fig.4 Relation between dataset and layer
5)记录 记录是SuperMap空间数据组织和存储方式的基本单位。每个空间几何对象(如点、线、面)对应一条记录,这条记录中既有属性字段(或称属性列),又有几何字段。数据集就是由若干个这种记录组成的。
6)记录集 记录集是数据集中记录的子集。记录集通常是把数据集中的记录按照某种条件筛选出来的。可以是对行的筛选,也可以是对列(字段)的筛选,或者二者结合起来。如果在记录集中添加、修改或删除某个记录,数据集中的数据将发生相应的变化。SuperMap中记录集结构表如表1所示。
表1 SuperMap记录集结构表Tab.1 SuperMap recordset's structure
这些属性字段的属性值就是真正被应用的数据,本文就是要按照一定的分析方法在编目时获取有价值的属性值,并生成编目元信息写入数据库。
3.2.2 空间查询的具体方法
利用矢量数据集的QueryEx方法进行空间查询,它可实现通过几何对象之间的空间位置关系联合属性过滤条件查询矢量数据集,语法为:soRecordset soDatasetVector.QueryEx(geometry As soGeometry,nSpatialQueryMode As seSpatialQuery Mode,strFilter As String).
首先要建立一个几何对象objGeometry。本文把标准景视为一个点,所以创建一个几何点对象objGeoPoint,再把它转换为objGeometry,代码如下:
其次要获取待查询的矢量数据集objDatasetVector。世界面矢量数据集为待查矢量数据集,它在数据集集合中的索引为2。过程为:打开数据源->获取数据集集合->获取待查数据集->转化为待查询的矢量数据集。代码如下:
objDatasetVector.AttachDispatch (objDataset,FALSE);
//数据集objDataset强制转化为矢量数据集objDatasetVector
空间查询模式nSpatialQueryMode为scsContainedBy,即:在面矢量数据集中查询出包含该几何点对象的面对象。在VC开发环境下应用数字8代替 scsContainedBy,在VB中可直接使用scsContainedBy。QueryEx最后一个参数strFilter为过滤条件,相当于SQL语句中的where字句,此处为空。
查询结果记录在记录集objRecordset中,代码如下:
丰富的地理信息就存储在objRecordset中,利用GetFieldInfo、GetFieldValue方法就可把它们提取出来。把这些信息作为元信息写入编目数据库就达到了本文的研究目的。
3.3 空间索引
随着地理信息系统的数据量逐渐增大,空间数据的访问速度会不断降低,而空间索引就是用来提高数据的空间查询效率的数据结构。
地理信息系统中的空间索引是相对于字段索引而言的。字段索引是数据库系统或者其他计算机系统中提供键值快速定位的数据结构,提供了对特定键值数据快速访问的能力[5]。字段索引的功能就象字典的目录,可以帮助使用者快速定位目标信息。字段索引一般采用B树或者B树的衍生数据结构。由于空间数据特有的位置相关性,传统的字段索引不能满足空间数据快速定位的需求,因此需要利用空间索引提供的位置相关数据提高访问能力。
R树是基于磁盘的索引结构,是B树(一维)在高维空间的自然扩展,能够支持各种类型的空间查询处理操作,在实践中得到了广泛的应用[6]。R树空间索引方法是通过设计虚拟的矩形目标,将一些空间位置相近的目标对象,包含在这个矩形内,把这些矩形作为空间索引,它含有所包含的空间对象的指针。示例如图5所示,A中包含空间对象D、E、F,B中包含空间对象 H、I、J、K,C中包含空间对象 L、M。在进行空间检索的时候,首先判断哪些矩形落在检索窗口内,再进一步判断哪些目标是被检索的内容,这样可以提高检索速度。
图5 R树索引示例Fig.5 An example of R-tree index
R树索引的空间检索效率非常高,检索精度也很高。但它的更新涉及到R树的平衡和分裂,比较复杂,更新速度较慢,大规模编辑后的查询效率降低,需要重建空间索引,这种索引技术适用于只读数据或者不经常进行空间数据编辑的数据。可以对首都点、国家面等图层建立R树索引以提高效率和精度,而首都点、国家面等图层基本上可以认为是只读数据集,不会经常变化。
4 结 论
在遥感卫星地面应用系统中,编目处理的效率直接影响到用户对遥感数据的使用。本文研究了在原有编目信息的基础上利用GIS增加丰富的地理信息的方法,并以SuperMap为开发平台完成了编程实现。
随着技术的发展,GIS数据会越来越丰富,越来越精细。若有精度足够高的GIS数据,可以不将标准景图像视为一个地学点对象,而是根据图像四角点经纬度把它视为一个地学面对象,以这个面对象为基准,对高精度的河流、道路线图层进行查询。这样可以获得穿过该图像所拍摄区域的河流、道路的丰富信息,这些地理信息作为元信息加入到遥感图像编目数据库中,图像数据查询的效率会更高。
总之,利用GIS技术进行编目处理给遥感图像加入更多元化的地理信息,可以使用户便捷、高效地查询到需要的信息,从而提高遥感图像的使用效率,也就提升了整个卫星应用系统的效能。把更直观、更全面、更有效的遥感信息呈现在用户面前,是今后卫星遥感数据编目技术研究的方向。
[1]陈述彭,鲁学军,周成虎.地理信息系统导论[M].北京:科学出版社,2000.
[2]魏强.GIS在地理空间查询分析中的研究与应用[J].山西建筑,2009,35(23):358-360.WEI Qiang.Research and application of GIS in query analysis of geographical space [J].SHANXI Architecture,2009,35(23):358-360.
[3]汪超亮,李传荣,贾斌.新型遥感卫星数据目录服务系统的研制[J].遥感学报,2007,11(3):385-389.WANG Chao-liang,LI Chuan-rong,JIA Bin.Development of satellite data catalogue and archive system [J].Journal of Remote Sensing,2007,11(3):385-389.
[4]徐智.GIS中地图投影的应用[J].水土保持研究,2004,11(2):55-58.XU Zhi.The applications of map projections in GIS[J].Research of Soil and Water Conservation,2004,11(2):55-58.
[5]张诗雨,陈汶滨.基于索引的SQL语句优化方法探讨[J].计算机与现代化,2009,13(3):134-136.ZHANG Shi-yu,CHEN Wen-bin.Discussion on method optimizing index-based SQL [J]. Computer and Modernization,2009,13(3):134-136.
[6]罗琪,李军,陈荦.基于GIS平台的R树索引模型研究与实现[J].计算机工程与科学,2003,25(6):93-96.LUO Qi,LI Jun,CHEN Luo.Research and implementation of a R-Tree index model based on the GIS platform [J].Computer Engineering&Science,2003,25(6):93-96.