软件设计必须根据建立GIS的目的、任务和今后的研究方向进行。目前,GIS在城市规划、资源调查、环境监测、工程建设、地学研究与教学等方面得到了广泛应用。就其任务而言,可以抽象为四方面的内容;空间信息获取与管理;空间特征量测与分析;空间过程模拟与预测;时空规律的总结与应用。从这些任务出发,进行通用的GIS软件工具系统的设计,使其具有适应性强、易于掌握、便于推广和应用开发、汉化等特点。
软件设计是将所要编制的程序表达为一种书面形式。这种形式既可简单明了地描绘软件系统的全貌,又可以逐步精化,以便于程序编制的高效正确,同时又是一个程序修改完善、移植和交流的工具。
一、信息描述
GIS的数据流程通常是:数据通过输入编辑模块进入系统,经过人机交互编辑、拓扑关系生成、投影和格式转换,影像处理和信息提取等,形成完整的系统数据结构进入数据库。数据通过多种方式的查询检索,得到数据子集,用于模型分析,分析结果或查询检索结果进入输出编辑整饰后输出。
为便于软件设计和建立针对具体区域应用任务的实用系统,可将系统数据结构划分为两个层次,即外部数据格式(或逻辑数据格式)和内部数据格式(或物理数据格式)。外部数据格式面向用户,描述地图之间的逻辑联系,由用户建立应用系统时定义;内部数据格式面向程序设计,描述系统数据的物理存储结构和数据之间的拓扑关系、联结方式,在程序设计时确定。
进入系统的数据有遥感影像数据、专题地图数据、栅格地图数据、台站观测数据、社会经济统计数据、文字报告数据、外部系统数据等。
在GIS中用数据字典来描述系统数据结构的意义、来源、管理方法与功能模块的联系、任务、用户权限等。
矢量数据的来源有三个:一是专题地图内手扶跟踪数字化仪得到的标准矢量格式数据;其二是将遥感影像、系统操作结果得到的栅格图像等经过栅格向矢量的转换得到的数据;其三是由外部系统通讯进入系统的矢量格式数据。矢量数据的系统模块主要用于图形输入、图形编辑、拓扑生成、格式转换、查询检索、指标量算、空间分析、符号编辑和矢量绘图等,其存取方法采用二进制直接存取方式,更新由矢量编辑和文件覆盖实现。
栅格数据可由遥感影像或其它外部栅格图像得到,也可由矢量向栅格转换(包括离散点插值拟合)或直接输入的栅格地图得到。涉及到栅格格式的模块有格式投影转换、遥感影像处理、查询检索、数理统计、覆盖运算、逻辑分析、模型应用和点阵打印等。
属性数据主要是与专题地图有关的数量、类别、等级和描述性信息。除通过统计、观测等直接产生的属性数据外,还有些是由地图图例中提取编码得到的,有些通过信息系统模型操作得到的,有些是遥感影像分类提取后产生的。属性数据是GIS的重要组成部分,在属性支持下,图形不再是仅有几何意义的像元和图素,而是具有地理意义的地理实体,逻辑运算和地理分析、地理统计等,都是通过属性与图形的结合实现的。属性数据通过相应图素(点、像元、弧段、多边形等)编号与图形建立联系。
基于属性的数据库结构将系统数据库中的数据文件,按其在自然、社会和经济环境系统中的属性关系联系起来,支持一致性检索,多种查询检索和模型分析,其结构由用户在系统维护模块支持下定义。
关于系统的运行方式,是采用中西文菜单或命令方式驱动,部分查询和模型提供表界面,工作时,用户首先进入系统回答口令,然后通过数字化仪、键盘或通信方式录入编辑多种数据,建立应用数据库,通过检索和模型分析,得到欲输出的信息,经整饰和符号表示后输出。
对于用户的权限,一般说具有最高权限的是系统管理人员,可以进行包括数据更改和所有数据管理的工作,其它用户可根据其权限大小,查询和处理某些层次上的数据。权限大小由系统根据口令和文件密级检查断定。