一种基于内存数据库Redis的土地利用矢量数据存储方法

文档序号:6621766阅读:493来源:国知局
一种基于内存数据库Redis的土地利用矢量数据存储方法
【专利摘要】本发明公开了一种基于内存数据库Redis的土地利用矢量数据存储方法,该方法采用内存数据库Redis存储土地利用矢量数据,设计点、线、面三种不同类型的矢量数据统一的存储结构,实现土地利用矢量数据在内存数据库中的存储。根据空间对象的不同,点、线要素空间特征数据分别设计存储格式,面要素的空间特征数据根据边界是否可由线要素组成分为直接坐标描述和间接坐标描述两类。本发明在土地利用领域具有重要的实际应用价值,可改变目前磁盘数据库管理土地利用数据时因I/O开销而产生的效率不高的现状,成功地将土地利用矢量数据直接存储于内存中,可以对数据进行高效的管理和查询,应用前景较广。
【专利说明】一种基于内存数据库Redis的土地利用矢量数据存储方法

【技术领域】
[0001 ] 本发明涉及GIS (地理信息系统)的矢量数据存储【技术领域】,尤其涉及一种基于内存数据库Redis的土地利用矢量数据存储方法。

【背景技术】
[0002]自2009年10月31日完成第二次全国土地调查后,全国各地每年进行土地变更调查,并将当年数据与上年数据进行比较,生成增量更新数据并对上年数据进行变更,以保持调查成果的现势性。国土部要求第二次全国土地调查成果实行管理信息化、网络化,建立和完善土地调查制度、统计制度和登记制度,实现土地资源信息的社会化服务,满足经济和社会的发展需求。目前土地利用现状数据大多采用对象-关系数据库这一类型磁盘数据库(Disk Resident Database, DRDB)同时管理图形数据和属性数据。然而土地利用现状数据复杂度高、数据量大、变化速度快,Oracle, SQL Server等磁盘数据库对数据的查询与管理需要频繁地访问磁盘,大量的I/O操作所消耗的时间成为制约空间数据实时查询与管理效率的一个重要因素。
[0003]随着传统的磁盘数据库管理土地利用现状数据时凸显出其在实时性和高效性等方面较为薄弱的能力,寻求实时性较高的数据库产品管理土地利用现状数据变得十分有意义。硬件技术的发展,内存容量不断增加,64位处理器等有利条件的出现使得计算机内存容量迅速增长。同时内存价格的下跌也为大容量内存的普及奠定了基础。大容量内存的出现使整个数据库全部或者大部分数据常驻内存成为可能,这种数据库被称之为内存数据库(Main Memory Database, MMDB)。内存数据库系统中命令的执行并不会产生I/O操作,执行中的命令所需的数据集存储于内存中,而硬盘中的数据只是内存中数据的一个备份。因此利用没有I/O开销的内存数据库管理土地利用矢量数据将提高管理和查询数据的效率。
[0004]目前,Redis提供用户字符串(string)、散列(hash)、列表(list)、集合(set)和有序集合(sorted set or zset)等多种键值数据类型来满足不同的存储要求。(I)字符串类型,是Redis最基本的数据类型,也是其他四种数据类型的基础。(2)散列类型存储字符串类型的字段(field)和值的映射表,因此能够存储键的多个属性数据。(3)列表类型每个子元素都是字符串类型的双向链表。(4)集合类型是不重复的字符串类型数据的无序集合。(5)有序集合类型是在集合类型的基础上,对每一个元素都关联一个分数,根据分数对元素进行排序。


【发明内容】

[0005]本发明的目的是克服磁盘数据库管理空间数据效率不高和内存数据库未提供空间数据管理模块等不足,针对土地利用矢量数据这一类空间数据提供一种基于内存数据库Redis的土地利用矢量数据存储方法。
[0006]基于内存数据库Redis的土地利用矢量数据存储方法包括如下步骤:
[0007]I)基于内存数据库Redis设计土地利用矢量数据的数据库结构,采用空间数据库、空间数据集、图层和要素四级组织,其中空间数据库、空间数据集和图层三级分别存储相关元数据;
[0008]2)设计土地利用矢量数据存储方法,点、线、面三种不同类型的矢量数据采用统一的存储结构,采用hash类型数据结构存储矢量要素,其中key为矢量要素对应的唯一标示,通过该描述可访问该矢量要素,field为字段名,包括集合类型、几何特征、属性特征1、属性特征2……等字段,value为字段值,存储字段对应值;
[0009]3)点要素空间特征数据采取统一的存储格式,直接采用坐标值描述;
[0010]4)线要素空间特征数据采取统一的存储格式,线要素的空间特征用点数和有序的坐标串描述,具体采用“点数即坐标串”形式存储;
[0011]5)面要素的空间特征数据根据边界是否可由线要素组成分为直接坐标描述和间接坐标描述两类。直接坐标描述类似点要素和线要素的描述方式,直接用坐标值表示,间接坐标描述是指利用构成面要素边界的线要素唯一标示,即其唯一的key值描述。
[0012]所述的步骤I)为:空间数据库由空间数据集组成。空间数据集按县级行政区划存储划分,由图层组成,土地利用矢量要素根据专题特征不同存储于图层中,空间数据库元数据包括空间数据库信息、空间数据集列表和图层字段结构,空间数据集元数据包括空间数据集信息、最小外包矩形最小坐标、图层列表和空间参考,图层元数据包括图层名称和图层信息。其中空间数据库信息、图层字段结构、空间数据集信息、最小外包矩形最小坐标、空间参考和图层信息采用hash类型数据结构进行存储,空间数据集名称和图层名称采用列表类型数据结构进行存储。
[0013]所述的步骤2)为:土地利用矢量采用hash类型数据结构存储矢量要素,Key为空间要素对应的唯一标示,通过该描述可访问该空间要素,命名规则为“空间数据库名:空间数据集名:图层名:要素ID”,其中key为矢量要素对应的唯一标示,通过该描述可访问该矢量要素,field为字段名,包括集合类型、几何特征、属性特征1、属性特征2……等字段,value为字段值,存储字段对应值。
[0014]所述的步骤5)为:面要素的空间特征数据根据边界是否可由线要素组成分为直接坐标描述和间接坐标描述两类,直接坐标描述直接用坐标值表示,具体采用“环数即环I点数即环I坐标串,环2点数即环2坐标串,……”形式存储,间接坐标描述是指利用构成面要素边界的线要素唯一标示,即其唯一的key值描述,具体采用采用“环数即环I线要素数即环I线要素ID串,环2线要素数即环2线要素ID串,……”形式存储,土地利用面要素层中,地类图斑、宗地和行政区可分别用地类界线、界址线和行政区界线进行间接描述,其他面要素层则采用直接坐标描述方式。
[0015]本发明实现了土地利用矢量数据在内存数据库中的存储,消除了 I/O操作,提高了土地利用矢量数据的管理和查询效率,克服了磁盘数据库管理和存储土地利用矢量数据时效率不高的问题。

【专利附图】

【附图说明】
[0016]图1是基于Redis的土地利用矢量数据库结构示意图;
[0017]图2是本发明的面要素例示意图。

【具体实施方式】
[0018]基于内存数据库Redis的土地利用矢量数据存储方法包括如下步骤:
[0019]I)基于内存数据库Redis设计土地利用矢量数据的数据库结构,采用空间数据库、空间数据集、图层和要素四级组织,其中空间数据库、空间数据集和图层三级分别存储相关元数据;
[0020]2)设计土地利用矢量数据存储方法,点、线、面三种不同类型的矢量数据采用统一的存储结构,采用hash类型数据结构存储矢量要素,其中key为矢量要素对应的唯一标示,通过该描述可访问该矢量要素,field为字段名,包括集合类型、几何特征、属性特征1、属性特征2……等字段,value为字段值,存储字段对应值;
[0021]3)点要素空间特征数据采取统一的存储格式,直接采用坐标值描述;
[0022]4)线要素空间特征数据采取统一的存储格式,线要素的空间特征用点数和有序的坐标串描述,具体采用“点数即坐标串”形式存储;
[0023]5)面要素的空间特征数据根据边界是否可由线要素组成分为直接坐标描述和间接坐标描述两类。直接坐标描述类似点要素和线要素的描述方式,直接用坐标值表示,间接坐标描述是指利用构成面要素边界的线要素唯一标示,即其唯一的key值描述。
[0024]所述的步骤I)为:空间数据库由空间数据集组成。空间数据集按县级行政区划存储划分,由图层组成,土地利用矢量要素根据专题特征不同存储于图层中,空间数据库元数据包括空间数据库信息、空间数据集列表和图层字段结构,空间数据集元数据包括空间数据集信息、最小外包矩形最小坐标、图层列表和空间参考,图层元数据包括图层名称和图层信息。其中空间数据库信息、图层字段结构、空间数据集信息、最小外包矩形最小坐标、空间参考和图层信息采用hash类型数据结构进行存储,空间数据集名称和图层名称采用列表类型数据结构进行存储。
[0025]所述的步骤2)为:土地利用矢量采用hash类型数据结构存储矢量要素,Key为空间要素对应的唯一标示,通过该描述可访问该空间要素,命名规则为“空间数据库名:空间数据集名:图层名:要素ID”,其中key为矢量要素对应的唯一标示,通过该描述可访问该矢量要素,field为字段名,包括集合类型、几何特征、属性特征1、属性特征2……等字段,value为字段值,存储字段对应值。
[0026]所述的步骤5)为:面要素的空间特征数据根据边界是否可由线要素组成分为直接坐标描述和间接坐标描述两类,直接坐标描述直接用坐标值表示,具体采用“环数即环I点数即环I坐标串,环2点数即环2坐标串,……”形式存储,间接坐标描述是指利用构成面要素边界的线要素唯一标示,即其唯一的key值描述,具体采用采用“环数即环I线要素数即环I线要素ID串,环2线要素数即环2线要素ID串,……”形式存储,土地利用面要素层中,地类图斑、宗地和行政区可分别用地类界线、界址线和行政区界线进行间接描述,其他面要素层则采用直接坐标描述方式。
[0027]土地利用矢量数据库按空间数据库、空间数据集、图层和要素四级组织,空间数据库、空间数据集和图层三级分别存储相关元数据。建立土地利用矢量数据库后,土地利用矢量数据按照不同的行政区划存储,每个行政区划建立一个空间数据集,空间数据集内则按照《土地利用数据库标准》(TD/T 1016-2007)对矢量数据进行分图层存储要素。内存数据库除存储土地利用矢量数据外,也需要与存储空间数据库、空间数据集和图层等相关的元数据。基于Redis的土地利用矢量数据库的结构如图1所示。
[0028]根据元数据信息分为两类,信息类包括空间数据库信息、图层字段结构、空间数据集信息、MBR最小坐标、空间参考和图层信息,列表类包括空间数据集列表和图层列表。信息类元数据采用采用hash类型数据结构进行存储,其存储结构示意如表I所示。Key为存储信息名称,Field为需存储信息的字段名,Value为需存储信息的值。
[0029]表I
[0030]
KeyFieldValue
_Fl__Vl_
Name_F2__V2_
[0031]空间数据集名称和图层名称是独一无二的和无序的,因此列表类元数据选用集合类型数据结构存储,其存储结构示意如表2所示。Key为列表名称,Value为该列表下所有元素名称。
[0032]表2
[0033]
KeyValue
_LI_
ListNameLz!.■....
[0034]土地利用矢量数据库中的空间实体根据专题分为19个图层进行存储,这19个图层包括点要素层6个,线要素层5个,面要素层8个。本发明主要关注三对线与面之间的关系,即行政区的边界是行政区界线,宗地的边界是界址线,地类图斑的边界是地类界线,这就意味着行政区、宗地和地类图斑三个面要素图层可不再通过坐标点来描述其空间位置,而是可以通过其边界对应的线要素来描述。
[0035]空间要素包含空间特征数据、时间特征数据和专题特征数据(后两者一般合称属性特征数据)几大类信息。空间特征数据是描述空间对象的空间位置、几何特征及与相邻空间对象的拓扑关系等信息。时间特征数据和专题特征数据则因不涉及空间信息一般作相同处理,时间特征数据主要描述空间对象数据获取时间或者更新时间,专题特征数据则描述的是空间对象的各种性质,如所有权、要素类别、人口或者植被类型等。
[0036]在基于Redis的土地利用矢量数据库中,空间要素存储空间特征数据和属性特征数据外,还将存储空间要素的几何类型,本文将采用hash类型数据结构存储空间要素,其中key为空间要素对应的唯一标示,通过该描述可访问该空间要素,根据Redis常用的命名规则,命名规则为“空间数据库名:空间数据集名:图层名:要素ID”,通过这种命名方式可直观的获取要素数据库,县级库和图层归属信息等。Field是字段名,首先存储几何类型和空间特征数据,然后依次存储要素的属性字段,Value则存储该空间要素空间特征数据和属性特征数据具体的值,存储结构如表3所示。
[0037]表3
[0038]

【权利要求】
1.一种基于内存数据库Redis的土地利用矢量数据存储方法,其特征在于包括如下步骤: 1)基于内存数据库Redis设计土地利用矢量数据的数据库结构,采用空间数据库、空间数据集、图层和要素四级组织,其中空间数据库、空间数据集和图层三级分别存储相关元数据; 2)设计土地利用矢量数据存储方法,点、线、面三种不同类型的矢量数据采用统一的存储结构,采用hash类型数据结构存储矢量要素,其中key为矢量要素对应的唯一标示,通过该描述可访问该矢量要素,field为字段名,包括集合类型、几何特征、属性特征1、属性特征2……等字段,value为字段值,存储字段对应值; 3)点要素空间特征数据采取统一的存储格式,直接采用坐标值描述; 4)线要素空间特征数据采取统一的存储格式,线要素的空间特征用点数和有序的坐标串描述,具体采用“点数即坐标串”形式存储; 5)面要素的空间特征数据根据边界是否可由线要素组成分为直接坐标描述和间接坐标描述两类,直接坐标描述类似点要素和线要素的描述方式,直接用坐标值表示,间接坐标描述是指利用构成面要素边界的线要素唯一标示,即其唯一的key值描述。
2.根据权利要求1所述的一种基于内存数据库Redis的土地利用矢量数据存储方法,其特征在于所述的步骤I)为:空间数据库由空间数据集组成,空间数据集按县级行政区划存储划分,由图层组成,土地利用矢量要素根据专题特征不同存储于图层中,空间数据库元数据包括空间数据库信息、空间数据集列表和图层字段结构,空间数据集元数据包括空间数据集信息、最小外包矩形最小坐标、图层列表和空间参考,图层元数据包括图层名称和图层信息,其中空间数据库信息、图层字段结构、空间数据集信息、最小外包矩形最小坐标、空间参考和图层信息采用hash类型数据结构进行存储,空间数据集名称和图层名称采用列表类型数据结构进行存储。
3.根据权利要求1所述的一种基于内存数据库Redis的土地利用矢量数据存储方法,其特征在于所述的步骤2)为:土地利用矢量采用hash类型数据结构存储矢量要素,Key为空间要素对应的唯一标示,通过该描述可访问该空间要素,命名规则为“空间数据库名:空间数据集名:图层名:要素ID”,其中key为矢量要素对应的唯一标示,通过该描述可访问该矢量要素,field为字段名,包括集合类型、几何特征、属性特征1、属性特征2……等字段,value为字段值,存储字段对应值。
4.根据权利要求1所述的一种基于内存数据库Redis的土地利用矢量数据存储方法,其特征在于所述的步骤5)为:面要素的空间特征数据根据边界是否可由线要素组成分为直接坐标描述和间接坐标描述两类,直接坐标描述直接用坐标值表示,具体采用“环数即环I点数即环I坐标串,环2点数即环2坐标串,……”形式存储,间接坐标描述是指利用构成面要素边界的线要素唯一标示,即其唯一的key值描述,具体采用采用“环数即环I线要素数即环I线要素ID串,环2线要素数即环2线要素ID串,……”形式存储,土地利用面要素层中,地类图斑、宗地和行政区可分别用地类界线、界址线和行政区界线进行间接描述,其他面要素层则采用直接坐标描述方式。
【文档编号】G06F17/30GK104182472SQ201410366200
【公开日】2014年12月3日 申请日期:2014年7月29日 优先权日:2014年7月29日
【发明者】刘仁义, 张丰, 杜震洪, 戚将辉, 靳凤营 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1