CN109669961A - 一种多源矢量数据存储及迭代计算方法 - Google Patents
一种多源矢量数据存储及迭代计算方法 Download PDFInfo
- Publication number
- CN109669961A CN109669961A CN201910184674.4A CN201910184674A CN109669961A CN 109669961 A CN109669961 A CN 109669961A CN 201910184674 A CN201910184674 A CN 201910184674A CN 109669961 A CN109669961 A CN 109669961A
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- range
- library
- wkt
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种多源矢量数据存储及迭代计算方法,涉及数据库技术领域,包括如下步骤:(1)数据解析;通过开源库对上传的各类矢量数据作解析;(2)数据入库;识别并提取空间信息字段,用字符串拼接方式转换成WKT标准的长字符串,新增Coordniate字段存储WKT格式数据,随矢量数据一起入MySQL库;(3)迭代计算;后台计算入库数据的范围,当数据量超过一定范围时,计算当前数据所占Polygon大小,分别存入链表,最后再计算链表内所有Polygon范围的合集,得出总的范围。本发明采用基于WKT格式的数据存储和MySQL5.7的空间查询机制实现多源矢量数据的标准化存储与数据自动定位,并且全开源框架能够有效节约项目成本。
Description
技术领域
本发明涉及数据库技术领域,尤其是一种多源矢量数据存储及迭代计算方法。
背景技术
现有技术中,矢量数据来源种类较多(shp、Excel、GeoJSON等),尚未存在一套解决多源矢量数据从上传、自动解析到快速定位展示的开源解决方案。虽然通过Gdal等开源库能够实现shp数据的解析与定位,但是仅对shp支持具有一定的局限性。
发明内容
本发明所要解决的技术问题在于,提供一种多源矢量数据存储及迭代计算方法,能够实现多源矢量数据的标准化存储与数据自动定位,并且全开源框架能够有效节约项目成本,采用的是主流的关系数据库,可以和现在的软件项目无缝集成。
为解决上述技术问题,本发明提供一种多源矢量数据存储及迭代计算方法,包括如下步骤:
(1)数据解析;通过开源库对上传的各类矢量数据作解析;
(2)数据入库;识别并提取空间信息字段,用字符串拼接方式转换成WKT标准的长字符串,新增Coordniate字段存储WKT格式数据,随矢量数据一起入MySQL库;
(3)迭代计算;后台计算入库数据的范围,当数据量超过一定范围时,计算当前数据所占Polygon大小,分别存入链表,最后再计算链表内所有Polygon范围的合集,得出总的范围。
优选的,步骤(1)中,矢量数据包括shp、Excel和GeoJSON。
优选的,步骤(1)中,通过开源库对上传的各类矢量数据作解析具体为:
shp解析:通过shapefile for python、GDAL开源库读取shp数据并获取其空间数据与特征数据;
Excel解析:通过xlrd或者pandas开源库读取Excel数据;
GeoJson解析:通过python的json库读取GeoJson数据,读入内存后转换成JSON对象,根据GeoJson通用格式标准,解析其Features内的Geometry、Type和properties属性,获取空间、类型、特征数据,标准化入库。
优选的,步骤(3)中,后台计算入库数据的范围具体包括如下步骤:
(31)提取WKT空间信息,拼接GeometryCollection();
(32)判断拼接字符串长度,超过限定范围后先行计算当前数据范围;
(33)字符串拼接完成,执行同上查询语句;
(34)链表若不为空,再次拼接链表中数据,执行上述查询语句,得到最后的范围。
优选的,步骤(3)中,判断拼接字符串长度,超过限定范围后先行计算当前数据范围;范围也是WKT格式,存入链表,执行MySQL查询。
本发明的有益效果为:本发明采用基于WKT格式的数据存储和MySQL5.7的空间查询机制实现多源矢量数据的标准化存储与数据自动定位,并且全开源框架能够有效节约项目成本,采用的是主流的关系数据库,可以和现在的软件项目无缝集成。
附图说明
图1为本发明的方法流程示意图。
具体实施方式
如图1所示,一种多源矢量数据存储及迭代计算方法,包括如下步骤:
(1)数据解析;通过开源库对上传的各类矢量数据作解析;
(2)数据入库;识别并提取空间信息字段,用字符串拼接方式转换成WKT标准的长字符串,新增Coordniate字段存储WKT格式数据,随矢量数据一起入MySQL库;
(3)迭代计算;后台计算入库数据的范围,当数据量超过一定范围时,计算当前数据所占Polygon大小,分别存入链表,最后再计算链表内所有Polygon范围的合集,得出总的范围。
通过开源库对上传的各类矢量数据作解析具体为:
shp解析:通过shapefile for python、GDAL开源库读取shp数据并获取其空间数据与特征数据,比如shapefile.Reader(file)读取数据到内存,再通过fields、shapeTypeName、shapeRecords等属性获取其字段名称、空间特征及数据等,解码以后入MySQL库;
Excel解析:通过xlrd(推荐,轻量化)或者pandas等开源库读取Excel数据,比如用xlrd.open_workbook(filepath)加载Excel数据到内存,再通过sheet_by_name(sheet)获取数据表,row_values()获取表内的行数据,进而解析入库;
GeoJson解析:通过python的json库读取GeoJson数据,读入内存后转换成JSON对象,根据GeoJson通用格式标准,解析其Features内的Geometry、Type和properties属性,获取空间、类型、特征数据,标准化入库,这里需要用到geomet库的wkt格式转化接口,将空间数据转换成WKT格式,比较方便。
步骤(3)中,后台计算入库数据的范围具体包括如下步骤:
(31)提取WKT空间信息,拼接GeometryCollection();
(32)判断拼接字符串长度,超过限定范围后先行计算当前数据范围;范围也是WKT格式,如Ploygon(xxxxx,xxxx,xxxx,xxxx)),存入链表,计算方式为SQL语句:“SELECT AsText(Envelope(GeomFromText('GeometryCollection(%s)'))) ”执行MySQL查询;
(33)字符串拼接完成,执行同上查询语句;
(34)链表若不为空,再次拼接链表中数据,执行上述查询语句,得到最后的范围。
判断拼接字符串长度,超过限定范围后先行计算当前数据范围;范围也是WKT格式,如Ploygon(xxxxx,xxxx,xxxx,xxxx)),存入链表,计算方式为SQL语句:“SELECT AsText(Envelope(GeomFromText('GeometryCollection(%s)'))) ”执行MySQL查询。
这里的总体范围是在一定情况下才会出现,比如拼接MySQL查询语句的总大小超过数据库自身要求,这就需要根据数据大小分批次的执行“Envelope(GeomFromText('GeometryCollection(%s)'))”语句,查询结果将会是一个面区域范围“Ploygon(xxxxx,xxxx,xxxx,xxxx)”,将每次查询结果存入一张链表,最后将链表中的所有ploygon再此拼接成一个'GeometryCollection()',执行一次“Envelope(GeomFromText('GeometryCollection(%s)'))”,既得出总的范围。
本发明在数据入库后动态计算数据的Extent,MySQL5.7以上版本本身支持WKT格式字符串的地理空间转换,在做空间查询时通过GeomFromText(%s)接口能够有效的支持多源数据的空间查询。
本发明将Excel、shape、GeoJSON等通用格式数据解析,新增WKT字段存储空间数据;利用MySQL5.7的空间查询特性动态生成数据范围实现矢量数据的标准化与快速定位;当数据量较大时通过迭代的方式分批计算数据范围,再计算所有范围的合集。
本发明采用基于WKT格式的数据存储和MySQL5.7的空间查询机制实现多源矢量数据的标准化存储与数据自动定位,并且全开源框架能够有效节约项目成本,采用的是主流的关系数据库,可以和现在的软件项目无缝集成。
Claims (5)
1.一种多源矢量数据存储及迭代计算方法,其特征在于,包括如下步骤:
(1)数据解析;通过开源库对上传的各类矢量数据作解析;
(2)数据入库;识别并提取空间信息字段,用字符串拼接方式转换成WKT标准的长字符串,新增Coordniate字段存储WKT格式数据,随矢量数据一起入MySQL库;
(3)迭代计算;后台计算入库数据的范围,当数据量超过一定范围时,计算当前数据所占Polygon大小,分别存入链表,最后再计算链表内所有Polygon范围的合集,得出总的范围。
2.如权利要求1所述的多源矢量数据存储及迭代计算方法,其特征在于,步骤(1)中,矢量数据包括shp、Excel和GeoJSON。
3.如权利要求1所述的多源矢量数据存储及迭代计算方法,其特征在于,步骤(1)中,通过开源库对上传的各类矢量数据作解析具体为:
shp解析:通过shapefile for python、GDAL开源库读取shp数据并获取其空间数据与特征数据;
Excel解析:通过xlrd或者pandas开源库读取Excel数据;
GeoJson解析:通过python的json库读取GeoJson数据,读入内存后转换成JSON对象,根据GeoJson通用格式标准,解析其Features内的Geometry、Type和properties属性,获取空间、类型、特征数据,标准化入库。
4.如权利要求1所述的多源矢量数据存储及迭代计算方法,其特征在于,步骤(3)中,后台计算入库数据的范围具体包括如下步骤:
(31)提取WKT空间信息,拼接GeometryCollection();
(32)判断拼接字符串长度,超过限定范围后先行计算当前数据范围;
(33)字符串拼接完成,执行同上查询语句;
(34)链表若不为空,再次拼接链表中数据,执行上述查询语句,得到最后的范围。
5.如权利要求1所述的多源矢量数据存储及迭代计算方法,其特征在于,步骤(3)中,判断拼接字符串长度,超过限定范围后先行计算当前数据范围;范围也是WKT格式,存入链表,执行MySQL查询。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910184674.4A CN109669961A (zh) | 2019-03-12 | 2019-03-12 | 一种多源矢量数据存储及迭代计算方法 |
PCT/CN2019/098760 WO2020181710A1 (zh) | 2019-03-12 | 2019-08-01 | 一种基于MySQL的多源矢量数据存储及迭代计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910184674.4A CN109669961A (zh) | 2019-03-12 | 2019-03-12 | 一种多源矢量数据存储及迭代计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109669961A true CN109669961A (zh) | 2019-04-23 |
Family
ID=66151824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910184674.4A Pending CN109669961A (zh) | 2019-03-12 | 2019-03-12 | 一种多源矢量数据存储及迭代计算方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109669961A (zh) |
WO (1) | WO2020181710A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110570518A (zh) * | 2019-09-02 | 2019-12-13 | 紫光云技术有限公司 | 一种基于模型数据高度压缩的海量模型加载方法 |
WO2020181710A1 (zh) * | 2019-03-12 | 2020-09-17 | 紫光云数科技有限公司 | 一种基于MySQL的多源矢量数据存储及迭代计算方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050055376A1 (en) * | 2003-09-05 | 2005-03-10 | Oracle International Corporation | Georaster physical data model for storing georeferenced raster data |
CN102799622A (zh) * | 2012-06-19 | 2012-11-28 | 北京大学 | 基于MapReduce扩展框架的分布式SQL查询方法 |
CN107544948A (zh) * | 2017-07-12 | 2018-01-05 | 中国农业大学 | 一种基于MapReduce的矢量文件转换方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109669961A (zh) * | 2019-03-12 | 2019-04-23 | 紫光云数科技有限公司 | 一种多源矢量数据存储及迭代计算方法 |
-
2019
- 2019-03-12 CN CN201910184674.4A patent/CN109669961A/zh active Pending
- 2019-08-01 WO PCT/CN2019/098760 patent/WO2020181710A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050055376A1 (en) * | 2003-09-05 | 2005-03-10 | Oracle International Corporation | Georaster physical data model for storing georeferenced raster data |
CN102799622A (zh) * | 2012-06-19 | 2012-11-28 | 北京大学 | 基于MapReduce扩展框架的分布式SQL查询方法 |
CN107544948A (zh) * | 2017-07-12 | 2018-01-05 | 中国农业大学 | 一种基于MapReduce的矢量文件转换方法和装置 |
Non-Patent Citations (2)
Title |
---|
佚名: "Mysql gis 空间数据库功能详解学习", 《HTTPS://WENKU.BAIDU.COM/VIEW/05185EBBA32D7375A41780C2.HTML》 * |
佚名: "在程序中拼接的SQL语句条件过长时该如何处理?求大神", 《HTTPS://BBS.CSDN.NET/TOPICS/392159841?PAGE=1》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020181710A1 (zh) * | 2019-03-12 | 2020-09-17 | 紫光云数科技有限公司 | 一种基于MySQL的多源矢量数据存储及迭代计算方法 |
CN110570518A (zh) * | 2019-09-02 | 2019-12-13 | 紫光云技术有限公司 | 一种基于模型数据高度压缩的海量模型加载方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2020181710A1 (zh) | 2020-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11615143B2 (en) | System and method for querying a graph model | |
US20120011118A1 (en) | Method and system for defining an extension taxonomy | |
US20120246611A1 (en) | Transformation framework | |
US8706783B2 (en) | Storing hierarchical table as a markup language file | |
CN109669961A (zh) | 一种多源矢量数据存储及迭代计算方法 | |
Breen | Mining twitter for airline consumer sentiment | |
CN111522868A (zh) | 数据规则的处理方法、装置、电子设备及存储介质 | |
US11934361B2 (en) | Automatic generation of a data model from a structured query language (SQL) statement | |
US9116932B2 (en) | System and method of querying data | |
CN113287100A (zh) | 用于生成内存表格模型数据库的系统和方法 | |
CN103886021A (zh) | 一种基于自然语言的数据库审计结果翻译方法及系统 | |
US20090300038A1 (en) | Methods and Apparatus for Reuse Optimization of a Data Storage Process Using an Ordered Structure | |
US20180060374A1 (en) | Optimizing column based database table compression | |
CN107203525B (zh) | 数据库的处理方法和装置 | |
US8711142B2 (en) | Visual model importation | |
CN116010439A (zh) | 一种可视化中文sql系统及构建查询方法 | |
US11615054B2 (en) | Merchant table and associated processes | |
CN114020852A (zh) | 知识图谱的展示方法和装置 | |
CN114064655A (zh) | 一种可配置化数据查询及数据关系的自动发现方法 | |
CN114416772A (zh) | 一种数据查询方法、装置、电子设备以及存储介质 | |
Zhou | A review of Javascript object notation in data analysis | |
Haw et al. | XMapDB-Sim: Performance evalaution on model-based XML to Relational Database mapping choices | |
US11880370B2 (en) | Retroreflective join graph generation for relational database queries | |
US11966869B2 (en) | Systems and methods for simulating qualitative assumptions | |
WO2022178931A1 (zh) | 一种查询动态列的实现方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190423 |