GIS空间数据库的设计

来源:地大热能 2014-05-21

GIS空间数据库的概念

GIS数据库是某区域内关于一定地理要素特征的数据集合,主要涉及对图形和属性数据的管理和组织。它和绘图软件、常规数据库有着本质的不同。GIS数据库既包含了目标的空间数据,又包含了该目标的属性信息,通过惟一标识符ID把两者连接在一起。其中空间数据是单个或群体地以空间位置为参照的数据。

由于GIS数据库内有明显的空间特性,所以又称为空间数据库。

1.GIS的数据模型与数据结构。

数据模型是对客观实体系统中各类数据及相互关系的近似描述及操作方法,是衡量GIS数据库系统能力强弱的主要标志。从组织形式上它由数据库数据结构、数据库操作集合和完备性规则集合组成;从认识层次上分为概念模型、逻辑模型和物理模型。

数据结构是指数据的具体组织形式,从类别上可分为空间数据结构和属性数据结构,其中空间数据结构又可分为矢量数据结构和栅格数据结构。

GIS数据结构的选取主要根据所研究对象的内容,其宗旨是要求数据结构能够清晰地描述出对象的特征及相互位置关系。GIS数据模型是描述数据内容和数据之间的联系工具,其宗旨是以最小冗余存储数据、清晰的结构对数据模型、网络模塑、关系模型和面向对象模型。面向对象模型将实体抽象为对象,把客观世界中相互紧密联系在一起的若干元素及其相关操作封装在一起,构成一个具有独立性的对象,使它们的关系隐藏在对象内部,对外只给出接口.,这种数据模型更接近现实世界的表达,具有很强发展潜力。目前大部分GIS软件采用关系数据模型。但随着应用需求,一些主要的数据库厂商近年来通过展关系数据库技术以支持复杂数据类型,如对象一关系混合数据模型,它支持在数据库中创建对象,支持继承,提供R-数与四叉树等空间索引技术。面向对象模型最终将取代关系数据模型,成为GIS数据模型的主流。

2.矢量数据结构及特点。

在计算机图形学中,矢量指一个有向线段,而有向线段的集合就构成了图形。矢量数据结构是一种最常见的图形数据结构,它通过记录坐标点的位置来精确地刻画空间实体的几何形状。在矢量结构中,把地理实体抽象为点、线、多边形(面)三种基本概念模型,使得我们对客观世界的描述变得相对简单。

在GIS中,为了能对点、线、面实体进行有效的操作和空间分析,必须对它们进行矢量编码,在编码中要求不但要对单个实体的几何形状和属性进行表示,更重要的是要能表达出实体相互之间的空间位置关系。在矢量编码中,点、线、实体之间的空间位置关系表示起来比较简单,但对于面(多边形)实体之间的空间位置关系(相邻、相交、“环形岛”)表示起来非常复杂,这也就是通常所说的拓扑关系。目前常用的多边形矢量编码有:坐标系列法、层次索引法和拓扑结构法。其中拓扑结构法可以有效地表示出多边形实体之间的空间位置关系。矢量数据结构的特点县。

(1)对空间实体的几何形状描述具有精度高,冗余小,定位明显,属性隐含等特点,在计算面积、长度和进行图形编辑、坐标转换时有很高的效率和精度。

(2)能清晰地描述结点、弧段、多边形之间的关联关系以及相互之间的空间位置关系。这种结构便于查询、检索、编辑或根据某边或多边形进行排序,从而可以方便地找到与某边有关的点和多边形,或找到与某多边形有关的点和边。

3.栅格数据结构及特点。

栅格数据结构是以矩阵(像元点的行、列坐标)来表示空间实体分布的数据结构,它是一种既简单又非常直观的数据结构( Yamaguchi et al,1984)。通过对研究区量化,分成大小均匀、规则排列的二维网格阵列,其中一个方格单元称为像元或阵列元素。遥感图像和扫描图像均采用栅格数据结构。栅格阵列元素值(如影像的灰度值)表示该位置上所对应空间目标的屑性值或属性值代码。栅格数据结构的精度,取决于网格划分的疏密程度。网格划分越细,刻画出的空间实体的几何形状就越精细。但随着精度提高,数据量将成平方倍数增加,数据冗余相当严重,解决栅格数据的组织和压缩问题是栅格数据的关键。目前常用的压缩编码方法有:直接栅格编码、游程长度编码( run-length codes),链式编码,块码编码( block code)、四叉树编码(quadtrees)等。栅格数据结构具有以下特点:

(1)栅格结构能明确地表示出空间实体的属性或属性编码(由属性编码可以直接找到对应的属性表)。

(2)实体的空间坐标位置在栅格数据结构中没有直接给出,而是隐含在矩阵的行、列中。虽然栅格数据结构的行和列是相对位置,但栅格单元总按一定规律排列,因此我们可以很容易地通过空间变换把行、列所表示的相对位置转换到地理坐标系下。

(3)栅格数据结构所表示的空间图像具有直观、算法简单、易于存储、易于修改等特点。其缺点是数据冗余度大,在计算周长、面积、长度等空间指标时,误差也较大。

4.拓扑结构。

在处理空间实体时,会遇到许多地理实体的空间关系问题。例如,对两个空间实体,会遇到“在左边”,“在右边”,“在里面”,“相邻”,还是“在外面”等空间关系问题,这就需要建立拓扑结构加以解决。拓扑关系是明确定义这些空间关系的一种数学方法,它只关心实体相互之间的位置关系,而忽略构成实体的几何形状。几何结构相差甚多的图形,它们的拓扑结构可能相同。所以要完整地描述一个空间实体及相互空间关系,矢量编码除表现点位置(z,y)特征外,还应表现出拓扑关系,以便很容易找到点、线、面之间的相对位置。目前拓扑关系的表达通常采用关系模型,即二维表格形式,所表示的拓扑关系主要有以下几种:

(1)连通性(结点与结点联接成网线)。在网线中,当遇到一个交叉点时,有几个方向可供选择,而连通性关系可以表明向哪个方向“走”才是正确的,这种关系在路径搜寻及网络应用(如最佳路径选取,水渠、管线等网络流程分析)上都很重要。    ’

(2)邻域关系。两个区域相邻,必然有一条公用的弧段。邻域的拓扑关系表明哪条弧段是公用的,哪个多边形位于公用弧段的左侧,哪个位于公用弧段的右侧等内容。

(3)弧段一结点关系。此关系表明多边形由哪几个弧段组成,每个弧段由哪些结点组成,然后是每个结点的具体坐标。

(4)包含性。包含性指一个多边形中包含了哪些的空间实体。被包含的空间实体可以是点、线或小多边形。

5.属性数据结构的表示。

GIS的属性数据一般采用关系模型。目前空间位置数据一属性数据有两种连接方式:一是空间位置数据与属性数据分开存储,通过惟一标识号进行连接;二是把属性数据和空间位置数据存储在一起。

地热GIS空间数据库的设计

GIS空间数据库的构造要经过数字化。坐标投影变换、拓扑关系的建立等步骤。一个构建合理的数据库,将为以应用系统的开发提高效的查询、统计、空间分析和建模功能。因此,空间数据库的建立并非易事,它需要在系统总体设计的框架下,有步骤、有计划地进行。

1.目标与原则。

数据库的设计目标是明确数据库将要服务的应用系统,分析应用系统需要什么样的数据,怎样的数据源才能满足应用系统的需求。为避免应用系统在实现后再反过来修改数据库结构所造成的巨大浪费,空间数据库的设计应遵循以下原则:

(1)数据结构及数据编码的标准性。仔细研究用户需求,建立规范化的、标准化的数据库结构和用户编码体系。

(2)完备性和可扩展性。在数据库设计时,应尽量保证在未来分析中数据库应具有所需的全部信息。同时应充分考虑将来的发展,考虑数据库内容的可扩展性。可扩展性具有两方面内容:一是数据库字段具有可扩充性;二是给属性数据编码留有余地,避免重码现象出现。

(3)遵循最小冗余度。仔细分析数据源的类型,做到采样最小的数据量,实现最大的信息获取。

(4)开放性。数据库的开放性有两层含义:一是数据库设计时应考虑原有数据库的情况,使这部分数据能充分地利用起来;二是把用户需要经常变动的数据设计成独立的子库,如符号库、名称库等,为应用系统的数据交换作好准备。

(5)数据精度的合理性。数据精度应和研究对象、分析模型的计算结果相匹配。

(6)实用性。从设计目标出发,仔细分析用户需求,数据库设计以解决用户所提出的要求为主,突出重点,避免“包罗万象”。

(7)安全性维护。为保证系统和数据的安全,不受外来破坏,需建立安全性措施。①制定严格的操作规程;②设置系统的控制权限。把系统维护员、数据操作员和最终用户按权限分开。

2.设计步骤。

(1)进行需求分析,制定较全面的总体设计方案。根据数据源、研究内容、适用范围、用户需求等情况进行需求分析,制定详细的数据库总体设计方案。数据库的建立与开发步骤必须按设计要求有条不紊地进行。

(2)选择数据库软硬件环境。计算机软硬件是构成GIS数据库的重要组成部分,它决定着系统的功能强弱、适用范围、未来扩展难易等因素。在选择时,应根据用户的需求、使用范围、经费、技术状况等综合条件。一般来讲,硬件应考虑接口、网络化能力、兼容性、输入/输出接口等因素;软件应考虑数据结构、数据兼容能力、功能强弱、可推广性、可扩展性等因素。

(3)对将要进库的原始资料进行分析和归纳,确立所需要的图层和数据库种类。

(4)对数据类型进行分类、分级。按空间数据特征对其进行分类、分级标准化处理,对图形目标的填充类型、填充颜色进行统一选取。

(5)设计数据库结构。对数据源和研究内容进行分析,在充分考虑完备性和可扩充性基础上,提供一整套标准、合理的数据库结构设计。专业数据库结构设计应参考本行业的数据规范要求,保证数据库中各字段、类型、长度具有通用性。

(6)对空间数据进行采集和录入。图形数据采集分三种方式:①采用数字化板跟踪数字化;②对扫描的栅格数据进行屏幕手工矢量化;③对扫描数据进行半自动跟踪矢量化。

(7)错误检验。对输入的空间数据进行有效的错误检验,以保证分析结果的正确性。

(8)建立空间数据的拓扑关系。进行地理坐标投影变换。

(9)对各个图层进行拼接、切割、编码等操作。

3.矢量GIS数据库的建立步骤。

首先开展需求分析,对资料进行详细地筛选和分类,确立所要矢量化的图层,并按GIS数据库设计原则和步骤对数据库结构、代码进行设计。在此基础上,进行GIS数据库数据输入。输入分两部分:一是图形的矢量化(数字化);二是属性数据的输入。在图形数据输入中,根据具体情况,我们设计两套输入方案:一是在PC ARC/INFO平台上,采用数字化仪对图件进行跟踪数字化完成拓扑关系的建立和坐标投影变换,然后转入ArcView;二是先对图件进行扫描,然后用PCI图像处理软件在扫描图件上选取控制点,进行地理编码和投影变换,然后转入ArcView,再进行屏幕跟踪数字化;属性库则直接在ArcView平台上建库和录入。最后GIS数据库在ArcView平台上进行了连接、集成。

地热GIS空间数据库的实现

地热GIS空间数据库包含以下4个方面:

1.基础图件空间数据库。

包括区域地质图、水文地质图、第四纪地质图、构造纲要图、地热资源分布图等。

2.现状图件空间数据库。

包括地热井分布图、地热水位等值线图、等温线图、开采量分布图、多年水位对比图等。

3.预测图件空间数据库。

包括水位预测、水质预测等。

4.规划图件空间数据库。

包括地热资源开发规划图、地热资源开发利用综合评价图等。

mysql中存储gis数据结构_GIS空间数据库的设计相关推荐

  1. mysql中存储gis数据类型_GIS数据格式及存储方式的基本概念

    GIS概念中有相当多的数据文件格式,我们经常接触到的数据格式可以大致分为"栅格数据"与"矢量数据"这两类.这两类数据分别对应着不同的应用场景,我们通常使用&qu ...

  2. mysql中存储gis数据类型_mysql 中的数据类型

    类型说明 取值范围 tinyint[(m)] 有符号值:-128 到127(- 27 到27 - 1) 无符号值:0到255(0 到28 - 1) 1个字节 smallint[(m)] 有符号值:-3 ...

  3. php数据存储mysql_php – 在MySQL中存储路线数据的最佳方式

    我正在开发一个应用程序,它要求我存储一些位置的方向,下面是我试图存储的数据的示例: 方向1 从西部:乘528 East(Beechline),经过机场出口,然后从13号出口驶入Narcoossee R ...

  4. mysql图片_往MySQL中存储图片的方法

    1 介绍 在设计到数据库的开发中,难免要将图片或音频文件插入到数据库中的情况.一般来说,我们可以同过插入图片文件相应的存储位置,而不是文件本身,来避免直接向数据库里插入的麻烦.但有些时候,向MySQL ...

  5. 往MySQL中存储图片

    往 MySQL中存储图片 1 介绍 在设计到数据库的开发中,难免要将图片或音频文件插入到数据库中的情况.一般来说,我们可以同过插入图片文件相应的存储位置,而不是文件本身,来避免直接向数据库里插入的麻烦 ...

  6. MySQL中存储具有不定列的数据-EAV模型

    当需要在MySQL中存储具有不定列的数据时,一种常见的解决方案是使用EAV(Entity-Attribute-Value)模型.EAV模型允许灵活地存储不同实体的不同属性,适用于属性数量不确定的情况. ...

  7. mysql怎么放入图片_往MySQL中存储图片的方法

    1 介绍 在设计到数据库的开发中,难免要将图片或音频文件插入到数据库中的情况.一般来说,我们可以同过插入图片文件相应的存储位置,而不是文件本身,来避免直接向数据库里插入的麻烦.但有些时候,向MySQL ...

  8. mysql数据库存歌_如何在mysql中存储音乐和图片文件

    标签: 如何在mysql中存储音乐和图片文件? 果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据库,那么这篇文章就是为你而写的! 我将告诉你怎样通过HTML表单来储存这 ...

  9. MySQL中存储引擎之间的对比

    目录 1. 什么是存储引擎 2. 常用的存储引擎 2.1  MyISAM 引擎:主要的非事务处理存储引擎 优点 缺点 MyISAM 数据文件结构 2.2 InnoDB 引擎:具备外键支持功能的事务存储 ...

最新文章

  1. 初级c 语言题库,c 语言题库.doc
  2. Parabola(抛物线)
  3. wxWidgets:wxMoveEvent类用法
  4. CodeForces - 916D Jamie and To-do List(主席树+模拟)
  5. FinTech领域的风险控制——风险篇
  6. 刚进职场的新人,这6点一定要牢记
  7. Linux c modbus 线程,Modbus TCP Slave Thread - 设置和获取寄存器值
  8. JAVA DES加密解密代码范例
  9. [NOIP2016 普及组] 魔法阵
  10. 渗透之——Metasploit自定义FTP扫描模块
  11. bigemap如何下生成CGCS2000坐标系等高线
  12. 【电子知识摘要】合金电阻
  13. Win10环境下运行红色警戒等老款游…
  14. Ubuntu(21.04)下UHD(4.1)与Gnuradio安装配置--USRP X410软件无线电平台开发
  15. 微信公众平台 自动回复消息
  16. Linux挂载(增加一块新硬盘)
  17. TSINGSEE青犀视频平台人脸识别比对控制比对时间间隔的代码设计
  18. [DP]Apple Catching G
  19. 细数乌镇互联网大会世界领先成果:中国科技崛起
  20. html做坦克大战的效果,HTML5实现坦克大战(一)

热门文章

  1. [转载]如何成为一名黑客
  2. 【WPS表格】带Count的统计函数系列
  3. python批量读取图片文件大小_python 批量更改图像尺寸到统一大小
  4. 一款电子验电笔内部的电路图
  5. 当“老赖” 遇到大数据
  6. Codeforces - 1166D - Cute Sequences
  7. 新宝总结过年红包行情来了
  8. 关于RN项目APP名称设置为中文在虚拟机里面闪退的问题;
  9. java实现rle编码_java – RLE压缩
  10. doirs数据库连接及数据导入