应用型GIS 地理信息系统设计内容和方法
挺好的一篇论 文 http://wenku.baidu.com/view/8e40a17c1711cc7931b7165e.html
文章就重点应用型地理信息系统的设计内容、设计过程、相关实现技术与方法作了综述, 并详细给出了设计中属性数据库、空间数据库的一般功能组织结构, 最后介绍了一种属性数据与空间数据的关联方法。
设计实施过程从需求分析,系统总体设计(系统组网设计,硬件配置,软件设计,编码设计,人机对话设计),GIS功能设计(总体模块功能设计、属性数据库管理系统结构与功能设计、图形数据库管理系统结构与功能设计),数据库详细设计(数据库的概念设计、逻辑设计、物理设计和数据模型选择),应用模型和方法设计分析(常用应用模型设计、方法设计),输入输出设计(输入输出数据形式)。其中数据库详细设计方面感觉写的很好很详细,引用一下,学习学习。
空间信息处理系统的设计重点是数据库的设计, 数据库设计就是把现实中一定范围内存在着的应用处理和数据抽象成一个数据库的具体结构的过程 GIS 数据库的设计比一般数据库设计要考虑得更多 由于地理数据由矢量和珊格之分, 又具有属性和空间的、甚至时间的特征, 因此需考虑不同的结构来表达 从满足用户要求、具有良好的数据库性能、在现实中模拟的精确程度、基于某一个数据库管理系统确定好数据库设计的目标, 有以下几个步骤:
1.数据库概念设计 数据库概念设计是数据库设计的第一步, 概念设计是现实世界与机器世界的中介, 一方面能充分反映现实世界实体与实体之间的关系, 同时又易于向关系、网状、层次等各种数据模型转换, 是现实世界的一个真实模型 一般采取自顶向下、自底向上、逐步扩张、混合策略等几种方法,以E- R模型为工具来描述概念结构 确定分 E- R 图, 确定数据库实体类型、地理实体属性范围以及实体间的基本关系。
2.数据库逻辑设计 数据库逻辑设计是整个数据库设计的基础, 其目的是规划整个数据库的框架, 回答数据库能做什么的问题, 其任务是用数据库管理系统提供的工具和环境对现实世界的抽象得到的概念模型转化成相应的数据库管理系统的模型, 用逻辑数据结构来表达概念模型中所提出的各种信息结构问题, 并用数据描述语言描述出来 一般应考虑: 数据共享、采集、存储、使用、维护成本等方面应达到最大效率, 最大程度地减少数据冗余,保证数据质量,包括空间数据逻辑设计和属性数据逻辑设计。
①空间数据逻辑设计一般首先进行空间数据逻辑划分, 由于 G IS 系统数据量大、结构复杂, 设计时根据不同的子系统应将数据库划分为不同的子库, 首先按数据的空间分布及考虑磁盘容量、查询分析效率、数据库维护等几方面将数据划分为规则或不规则的块, 通过建立图幅总索引表、空间实体索引表、基本单元索引表在图幅、空间实体和空间基本单元之间建立链接关系, 保证空间数据库的无缝链接和有效空间查询, 然后进行图层信息组织, 将图块中不同类、不同级的图元要素进行分层存放, 每一层存放一种专题或一类信息 按照用户的要求或标准将相关图元要素组合在一起构成表示地理特征及描述这些特征的逻辑意义上的图层, 确定空间数据库管理部分的子系统组织结构。
空间数据逻辑数据结构设计: GIS 中逻辑空间结构主要有栅格结构及矢量结构 栅格结构以规则阵列表示地理空间现象的分布, 地理实体的空间位置隐含其中, 标识的地表是不连续的, 是量化和近似数据, 数据冗余量大、精度低, 但图像图形操作容易实现、空间分析模型容易实现, 易与遥感数据相结合矢量结构以坐标的方式来表示点、线、面等地理实体, 量算与制图精度高数据冗余少 一般设计时可结合两种结构的优点来进行空间数据的逻辑结构设计.
②属性数据逻辑设计 将概念结构转化为一般的关系、网状、层次模型; 将转换来的关系、网状、层次模型向特定的 DBMS 支持下的数据模型转换; 最后对数据模型进行优化 主要完成属性表与属性关系的设计, E- R 图向数据模型的转换, 确定属性数据库管理部分的组织结构
3.数据库物理设计 数据库物理设计的任务是使数据库的逻辑结构能在实际的物理存储设备上得以实现, 主要解决存储空间分配、数据的物理表示、确定存储结构。
4.空间数据与非空间数据连接 空间数据指目标的位置信息数据、拓扑关系等, 属性数据是指与空间位置没有直接关系的代表特定地理意义的数据, 既可以独立于专题地图的信息, 也可以是与专题地图相关的数据 属性数据库设计指属性数据文件设计、属性数据库结构设计、属性数据管理系统设计和软件设计, 有几种形式的设计, 一种是将属性数据和空间图像数据组合在同一个文件的记录中, 这种方式既不灵活, 又造成很大的冗余; 另一种是将属性数据以单独的数据文件方式与图形数据文件并存于文件系统, 其优点是对某些个体应用比较简单, 且容易操作, 但局限性很大, 结构不灵活, 难以实现数据共享 因此属性数据库设计时应当和图形数据库设计综合考虑, 目前较为流行的设计是面向对象的设计方法和混合数据结构设计 一个大的空间数据库通常将空间数据与属性数据分别存储, 空间数据用各种 GIS 软件提供的数据模型存储, 属性数据则用 RDBMS 存储, 两者通过关键项或通过指针链接。
应用型GIS 地理信息系统设计内容和方法的更多相关文章
- linux几种快速清空文件内容的方法
linux几种快速清空文件内容的方法 几种快速清空文件内容的方法: $ : > filename #其中的 : 是一个占位符, 不产生任何输出. $ > filename $ echo & ...
- JavaScript动态改变表格单元格内容的方法
本文实例讲述了JavaScript动态改变表格单元格内容的方法.分享给大家供大家参考.具体如下: JavaScript动态改变表格单元格的内容,下面的代码通过修改单元格的innerHTML来修改单元格 ...
- css之隐藏内容的方法
css隐藏内容的方法有三种:即display:none.visibility:hidden.overflow:hidden. 1.display:none;的缺陷: 搜索引擎可能认为被隐藏的文字属于垃 ...
- PHP中获取某个网页或文件内容的方法
1. 通过file_get_contents()函数$contents = file_get_contents('http://demo.com/index.php');echo $contents; ...
- 深入学习Python解析并解密PDF文件内容的方法
前面学习了解析PDF文档,并写入文档的知识,那篇文章的名字为深入学习Python解析并读取PDF文件内容的方法. 链接如下:https://www.cnblogs.com/wj-1314/p/9429 ...
- 深入学习python解析并读取PDF文件内容的方法
这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...
- appium获取Toast内容的方法
做自动化测试的时候,可能需要根据弹出的Toast提示来做下一步判断.这里记录一下获取Toast内容的方法,同时巩固一下显示等待的方法之一WebDriverWait. from selenium.web ...
- php mysqli query 查询数据库后读取内容的方法
php mysqli query 查询数据库后读取内容的方法 <?php$mysqli = new mysqli("localhost", "my_user&quo ...
- div+css隐藏内容样式方法
div css隐藏内容样式方法 div+css隐藏内容方法 一般情况下,css隐藏的用途,如下: 1.对文本的隐藏 2.隐藏超链接(另类黑链) 3.对统计代码隐藏 4.隐藏超出图片 5.css ...
随机推荐
- 高效编程之cache命中对于程序性能的影响
下面这个代码用两个双层循环遍历了一个二维数组里所有的元素,以我自己机器的测试 上面那个循环耗时基本为下面的一半,两个循环的时间复杂度相同,为什么会有这么大的差别? 首先要明白的是不管是几维数组,他们都 ...
- Hibernate Validation注解列表
下面是主要的验证注解及说明: 注解 适用的数据类型 说明 @AssertFalse Boolean, boolean 验证注解的元素值是false @AssertTrue Boolean, boole ...
- 汇编中 .fill 的作用
.fill 语法:.fill repeat, size, value 含义是反复拷贝 size个字节,重复 repeat 次, 其中 size 和 value 是可选的,默 ...
- html、css、js的命名规范
最佳原则 坚持制定好的代码规范. 无论团队人数多少,代码应该同出一门. 项目命名 全部采用小写方式, 以下划线分隔. 例:my_project_name 目录命名 参照项目命名规则: 有复数结构时,要 ...
- C#实现万年历(农历、节气、节日、星座、属相、生肖、闰年等)
C# 万年历 农历 节气 节日 星座 星宿 属相 生肖 闰年月 时辰等,代码如下: using System.Collections.Generic; using System.Text; using ...
- 短小实用 渗透用的Python小脚本
渗透的很多时候,找到的工具并不适用,自己码代码才是王道,下面三个程序都是渗透时在网络上找不到合适工具,自己辛苦开发的,短小实用. 一.记录root密码小工具 root.py #!/usr/bin/py ...
- ZBarSDK扫描二维码
1:如果报引用文件错误的话需要在设置一下:project->Build settings->build active architecture only选项设置为No.Valid Arch ...
- 读取Excel文件的两种方法
第一种方法:传统方法,采用OleDB读取EXCEL文件, 优点:写法简单,缺点:服务器必须安有此组件才能用,不推荐使用 private DataSet GetConnect_DataSet2(stri ...
- 【Shell脚本学习3】什么时候使用Shell
因为Shell似乎是各UNIX系统之间通用的功能,并且经过了POSIX的标准化.因此,Shell脚本只要“用心写”一次,即可应用到很多系统上.因此,之所以要使用Shell脚本是基于: 简单性:Shel ...
- Swift中if let name = optionName {}解释
在Swift语法的if语句中,是不能出现这种情况的: let optionName = "Swift" if let name = optionName { print(" ...