GIS应用技巧之数据结构(栅格与矢量)_栅格数据 矢量数据的表达 csdn-程序员宅基地

技术标签: GIS应用技巧乐园  数据结构  

​一、数据结构

数据结构即指数据组织的形式,是适合于计算机存储、管理和处理的数据 逻辑结构。对空间数据则是地理实体的空间排列方式和相互关系的抽象描述。它是对数据的一种理解和解释,不说明数据结构的数据是毫无用处的,不仅用 户无法理解,计算机程序也不能正确地处理,对同样一组数据,按不同的数据结 构去处理,得到的可能是截然不同的内容。空间数据结构是地理信息系统沟通 信息的桥梁,只有充分理解地理信息系统所采用的特定数据结构,才能正确有 效地使用系统。地理信息系统的空间数据结构主要有矢量结构和栅格结构。 

(1)栅格数据结构 

栅格结构是最简单最直观的空间数据结构,又称为网格结构(Raster 或 Gridcell)或像元结构(pixel),是指将地球表面划分为大小均匀紧密相邻的网格阵列, 每个网格作为一个像元或像素,由行、列号定义,并包含一个代码,表示该像素的 属性类型或量值,或仅仅包含指向其属性记录的指针。因此,栅格结构是以规则 的阵列来表示空间地物或现象分布的数据组织,组织中的每个数据表示地物或现 象的非几何属性特征。如图所示,在栅格结构中,点用一个栅格单元表示;线 状地物则用沿线走向的一组相邻栅格单元表示,每个栅格单元最多只有两个相邻 单元在线上;面或区域用记有区域属性的相邻栅格单元的集合表示,每个栅格单元可有多于两个的相邻单元同属一个区域。任何以面状分布的对象(土地利用、 土壤类型、地势起伏、环境污染等),都可以用栅格数据表示。遥感影像就属于典 型的栅格结构,每个像元的数字表示影像的灰度等级。 

(2)矢量数据结构 

矢量数据是面向地物的结构,即对于每一个具体的目标都直接赋有位置和 属性信息以及目标之间的拓扑关系说明。基于矢量模型的数据结构简称为矢 量数据结构。矢量也叫向量,数学上称“具有大小和方向的量”为向量。在计 算机图形中,相邻两结点间的弧段长度表示大小,弧段两端点的顺序表示方向, 因此弧段也是一个直观的矢量。矢量数据结构是通过记录坐标的方式来表示 点、线、面等地理实体空间分布的一种数据组织方式。这种数据组织方式定位 明显,属性隐含,能最好地逼近地理实体的空间分布特征,数据精度高,数据存 储的冗余度低,便于进行地理实体的网络分析,但对于多层空间数据的叠合分 析比较困难。矢量数据结构的获取方法主要有:手工数字化法、手扶跟踪数字 化法、数据结构转换法。

(3)两种数据结构的比较

栅格结构和矢量结构是模拟地理信息的两种不同的方法。栅格数据结构 类型具有“属性明显、位置隐含”的特点,它易于实现,且操作简单,有利于基于 栅格的空间信息模型的分析,如在给定区域内计算多边形面积、线密度,栅格结 构可以很快算得结果,而采用矢量数据结构则麻烦得多;但栅格数据表达精度 不高,数据存储量大,工作效率较低。如要提高一倍的表达精度(栅格单元减 小一半),数据量就需增加三倍,同时也增加了数据的冗余。因此,对于基于栅 格数据结构的应用来说,需要根据应用项目的自身特点及其精度要求来恰当地 平衡栅格数据的表达精度和工作效率两者之间的关系。另外,因为栅格数据格 式的简单性(不经过压缩编码),其数据格式容易为大多数程序设计人员和用 户所理解,基于栅格数据基础之上的信息共享也较矢量数据容易。最后,遥感 影像本身就是以像元为单位的栅格结构,所以,可以直接把遥感影像应用于栅 格结构的地理信息系统中,也就是说栅格数据结构比较容易和遥感相结合。矢量数据结构类型具有“位置明显、属性隐含”的特点,它操作起来比较复 杂,许多分析操作(如叠置分析等)用矢量数据结构难于实现;但它的数据表达 精度较高,数据存储量小,输出图形美观且工作效率较高。两者的比较见下表。

二、常见的数据

(1)地图数据 

地图是 GIS的主要数据源,因为地图包含着丰富的内容,不仅含有实体的 类别和属性,而且含有实体间的空间关系。地图数据主要通过对地图的跟踪数 字化和扫描数字化获取。地图数据不仅可以作宏观的分析(用小比例尺地图 数据),而且可以作微观的分析(用大比例尺地图数据)。在使用地图数据时, 应考虑到地图投影所引起的变形,在需要时进行投影变换,或转换成地理坐标。地图数据通常用点、线、面及注记来表示地理实体及实体间的关系,如:点——— 居民点、采样点、企业、中心城市等;线———河流、道路、构造线等;面———县域、 市域、省域等;注记———地名注记、高程注记等。地图数据主要用于生成 DLG、 DRG 数据或 DEM数据。

(2)遥感影像数据,遥感影像数据是 GIS 的重要数据源

遥感影像数据含有丰富的资源与环 境信息,在GIS支持下,可以与地质、地球物理、地球化学、地球生物、军事应用 等方面的信息进行信息复合和综合分析。遥感影像数据是一种大面积的 、动 态的、近实时的数据源,遥感技术是 GIS数据更新的重要手段。遥感影像数据 用于提取灰度值、线划数据和生成数字正射影像数据、DEM数据等。 

(3)文本资料

文本资料是指各行业、各部门的有关法律文档、行业规范、技术标准、条文 条例等,如政府工作报告等。这些也属于 GIS 的数据。 

(4)统计资料 

政府许多部门和机构都拥有不同领域(如人口、交通、科技等)的大量统计 资料,如相关统计年鉴、统计公报等,这些都是GIS的数据源,尤其是 GIS属性 数据的重要来源。 

(5)实测数据 

田野调查、实地测量等获取的数据可以通过转换直接进入GIS的地理数据库,以便于进行实时的分析和进一步的应用。GPS(全球定位系统)所获取的数 据也是 GIS的重要数据源。 

(6)多媒体数据 

多媒体数据(包括声音、录像等)通常可通过通讯口传入 GIS的地理数据 库中,目前其主要功能是辅助 GIS 的分析和查询。 

(7)已有系统的数据 GIS还可以从其他已建成的信息系统和数据库中获取相应的数据

由于规范化、标准化的推广,不同系统间的数据共享和可交换性越来越强。这样就 拓展了数据的可用性,增加了数据的潜在价值。 

(8)互联网数据

随着互联网不断深入,还可以借助网站形式获取,该数据获取成本较低,时 效性好。例如通过全国地理信息资源目录服务网址官网可获取大量矢量数据:http://www.webmap.cn/main.do?method=index。其数据内容含行政区 (面),行政境界点(领海基点),行政境界(线),水系(点、线、面),公路、铁路 (点、线),居民地(点、面),居民地地名(注记点),自然地名(注记点)等十二类 要素层。进入网站,选择 【数据下载】-【1:100 万全国基础地理数据库】,即 可进行查询下载。

三、数据结构转化的软件操作 

在地理信息系统中栅格数据与矢量数据各具特点与适用性,为了在一个系 统中可以兼容这两种数据,以便有利于进一步的分析处理,常常需要实现两种 结构的转换。

(1)栅格数据向矢量数据的转换

栅格向矢量转换处理的目的,是为了将栅格数据分析的结果通过矢量绘图 装置输出,或者为了数据压缩的需要,将大量的面状栅格数据转换为由少量数 据表示的多边形边界,但是主要目的是为了能将自动扫描仪获取的栅格数据加 入矢量形式的数据库。由栅格数据可以转换为3种不同的矢量数据,分为点 状、线状和面状的矢量数据。下面以栅格数据转换为面状矢量数据为例进行说 明,其他两种转换操作大同小异,这里不再具体说明。

(1)展开【转换工具】工具箱,打开【转为栅格】工具集,双击 【栅格转面】,第四章 空间数据基础与处理打开对应对话框。

(2)在【输入栅格】文本框中选择输入需要转换的栅格数据。

(3)在【输出面要素】文本框键入输出的面状矢量数据的路径与名称。

(4)选择【简化面】按钮(默认状态是选择),可以简化面状矢量数据的边 界形状。如果向更高精度保留栅格信息,可以不勾选该按钮。

(5)单击【确定】按钮,执行转换操作。

(2)矢量数据向栅格数据的转换 

许多数据如行政边界、交通轴线、城市土地利用类型等都是用矢量数字化 的方法输入计算机或以矢量的方式存在计算机中,表现为点、线、多边形数据。然而,矢量数据直接用于多种数据的复合分析等处理将比较复杂,特别是不同 数据要在位置上一一配准,寻找交点并进行分析。相比之下利用栅格数据模式 进行处理则容易得多。加之土地覆盖和土地利用等数据常常从遥感图像中获得,这些数据都是栅格数据,因此矢量数据与它们的叠置复合分析更需要把其 从矢量数据的形式转变为栅格数据的形式。矢量数据的基本坐标是直角坐标 X、Y,其坐标原点一般取图的左下角。网格数据的基本坐标是行和列(i,j),其 坐标原点一般取图的左上角。两种数据变换时,令直角坐标 X和 Y 分别与行 与列平行。由于矢量数据的基本要素是点、线、面,因而只要实现点、线、面的转 换,各种线划图形的变换问题基本上都可以得到解决。

 (1)展开【转换工具】工具箱,打开【转为栅格】工具集,双击【要素转栅格】 打开【要素转栅格】对话框。

(2)在【输入要素】文本框中选择输入需要转换的矢量数据。

(3)在【字段】窗口选择数据转换时所依据的属性值。

(4)在【输出栅格】文本框键入输出的栅格数据的路径与名称。

(5)在【输出像元大小】文本框键入输出栅格的大小,或者浏览选择某一 栅格数据,输出的栅格大小将与之相同。

(6)单击【确定】按钮,执行转换操作。该命令同样适用于地理数据库中 的要素类。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44725365/article/details/123679928

智能推荐

【九度】题目1090:路径打印 && 【LeetCode】Simplify Path_打印目录结构 leetcode-程序员宅基地

文章浏览阅读1.3k次。1、题目1090:路径打印时间限制:1 秒内存限制:32 兆特殊判题:否提交:1319解决:230题目描述:给你一串路径,譬如:a\b\ca\d\eb\cstd\你把这些路径中蕴含的目录结构给画出来,子目录直接列在父目录下面,并比父目录向右缩一格,就像这样:a b c d eb cstd同一级的需要按字母顺序_打印目录结构 leetcode

如何使用Cordova将SAP Fiori应用打包并安装到Android平台上_fiori发布安卓-程序员宅基地

文章浏览阅读591次。There is a wonderful tutorial Building SAP Fiori-like UIs with SAPUI5 in 10 Exercises written by Bertram Ganz.In this blog, I will show step by step how to package the UI5 application built by this tutorial as a native application into your Android device_fiori发布安卓

程序员代码面试指南下(7-9)-程序员宅基地

文章浏览阅读182次。目录第7章 1 不用额外变量交换两个整数的值(士 ★☆☆☆) 2 不用任何比较判断找出两个数中较大的数(校★★★☆) 3 只用位运算不用算术运算实现整数的加减乘除运算 4 整数的二进制表达中有多少个1 5 在其他数都出现偶数次的数组中找到出现奇数次的数 6 在其他数都出现A次的数组中找到只出现一次的数第8章 1 转圈打印矩阵 2 将正方形矩阵顺时针转动90度 3 之..._if (map.containskey(xor)) { int pre = map.get(xor); mosts[i] = pre =

uva-1399 Puzzle-程序员宅基地

文章浏览阅读152次。AC自动机上的dp

C++中 sprintf函数的用法_sprintf %c-程序员宅基地

文章浏览阅读871次。C++中 sprintf函数的用法1.常用方式sprintf函数的功能与printf函数的功能基本一样,只是它把结果输出到指定的字符串中了,看个例子就明白了:例:将”test 1 2”写入数组s中#include<stdio.h>int main(int argc, char *avgv[]){ char s[40]; sprintf(s,"%s%d..._sprintf %c

Java开发的医院门诊挂号系统_医院预约挂号er图-程序员宅基地

文章浏览阅读2.2k次。医院门诊系统,挂号预约系统,有四个角色(管理员,医生,护士,普通用户)_医院预约挂号er图

随便推点

Android Socket Demo [ 附客户端与服务端源码 ]_android socket客户端下载-程序员宅基地

文章浏览阅读818次。如果要跑通demo首先: 服务端我是用 intellij idea 开发的。如果用其他软件打跑不起来就用 intellij其次: 要将手机跟电脑连在同个网络下最后: Constants的ip地址要填写上电脑的ip地址实现功能:客户端连接服务端,客户端发数据到服务端,客户端收到服务端发来的数据服务端收到客户端发的数据,服务端发数据给客户端贴部分核心代码客户端连接服务端:首先客户端连接服务端必须要在线程里(后面的是 ip地址 跟端口,端口是服务端的socke..._android socket客户端下载

定制win10桌面_win10联想 自带主题-程序员宅基地

文章浏览阅读1.3k次,点赞4次,收藏7次。壁纸在文末先上几张美化后的照片 主题链接win 10 美化相信很多人都厌倦了win10原装主题了,陈旧的窗口边框,一如既往的图标,老掉牙的窗口样式和菜单栏……算了,就不吐槽了,直接上教程吧!前方高能第零步关掉杀毒软件(新手建议卸载),这点非常重要,如某数字,某讯,某霸,如果关掉以后放心不下自己电脑的安全,以下文章请勿食用!(后果自负)第一步破解原装win10系统主题。友..._win10联想 自带主题

jQuery懒加载插件 – jquery.lazyload.js简单调用-程序员宅基地

文章浏览阅读57次。 Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预加载的处理方式正好是相反的.在包含很多大图片长页面中延迟加载图片可以加快页面加载速度. 浏览器将会在加载可见图片之后即进入就绪状态. 在某些情况下还可以帮助降低服务器负担。一、下载和引用  ..._jq.lazyload.js配置

mysql_172.25.2.1-程序员宅基地

文章浏览阅读404次。一.cmake升级https://cmake.org/download/ #cmake下载地址 yum install jsoncpp-0.10.5-2.el7.x86_64.rpm jsoncpp-devel-0.10.5-2.el7.x86_64.rpm -y yum install cmake3-3.6.1-2.el7.x86_64.rpm cmake3-data-3.6.1-2.el7.noarch.rpm -y二.mysql编译安装升级gcctar zxf mysql-boost-_172.25.2.1

基于Numpy的线性代数运算_numpy线性代数运算-程序员宅基地

文章浏览阅读737次。标题中的英文首字母大写比较规范,但在python实际使用中均为小写。1.Numpy中的matrix1.1 创建matrix对象numpy.matrix方法的参数可以为ndarray对象numpy.matrix方法的参数也可以为字符串str,示例如下:import numpy as npm = np.matrix("1 2 3;4 5 6; 7 ..._numpy线性代数运算

搭建LAMP环境(源码方式)_this software is subject to the php license, avail-程序员宅基地

文章浏览阅读3.7k次。源码方式,搭建LAMP环境。_this software is subject to the php license, available in this | | distribut

推荐文章

热门文章

相关标签