• GIS 数据结构整理:网格索引


    1 一维网格索引

    • 把整个数据库数值空间划分成n*n的正方形网格,建立另一个倒排文件——栅格索引
    • 每一个网格在栅格索引中有一个索引条目(记录),在这个记录中登记所有位于或穿过该网格的物体的关键字

    1.1 变长指针法

    • 有三个制图物体:一条河流、一个湖泊和一条省界
    • 它们的关键字分别为5,11和23。
    • 河流穿过的栅格为2,34,35,67,68;湖泊覆盖的栅格为68,69,100,101;省界所通过的栅格为5,37,36,35,67,99,98,97

    1.2 位图法

    • 行index是网格index
    • 列index是物体index
    • 如果第j个物体经过第i行,那么第ij个元素为1

    2 二维网格索引

    • 将一维升至二维,变成X和Y方向上的编码

    比如,[X1,Y1],[X2,Y2]是5的外包络矩形;[X3,Y3],[X4,Y4]是11的外包络矩形;[X5,Y5],[X6,Y6]是23的外包络矩形,那么:

    在二维网格下是这样的

    • X-3,Y-2位置 5号轨迹和23号轨迹都经过,所以出现了两行X-3,Y-2

    2.1 外包络矩形

    • 通常也被称为“边界矩形”或“最小外接矩形”
    • 是指能够完全包围给定空间要素的最小矩形
    • 换句话说,它是一个四边形,这个四边形包含了一个空间要素的所有点,并具有最小的面积。
    • 这个矩形通常是与坐标轴平行的,所以它的边是水平或垂直的
    • 通常使用外包络矩阵的左下角和右上角表示

    3 栅格数据层

    • 在栅格数据结构中,物体的空间位置就用其在笛卡尔平面网格中的行号和列号坐标表示,物体的属性用像元的取值表示
    • 栅格中的每个像元是栅格数据中最基本的信息存储单元,其坐标位置可以用行号和列号确定
    • 每个像元在一个网格中只能取值一次,同一像元要表示多重属性的事物就要用多个笛卡尔平面网格,每个笛卡尔平面网格表示一种属性或同一属性的不同特征,这种平面称为层

    3.1 栅格数据取值方法

    • 同一网格可能对应地图上多种专题属性,而每一个单元只允许取一个值,目前对于这种多重属性的网格,有不同的取值方法:
    中心归属法:每个栅格单元的值以网格中心点对应的面域属性值来确定
    长度占优法:每个栅格单元的值以网格中线(水平或垂直)的大部分长度所对应的面域的属性值来确定
    面积占优法:每个栅格单元的值以在该网格单元中占据最大面积的属性值来确定
    重要性法:根据栅格内不同地物的重要性程度,选取特别重要的空间实体决定对应的栅格单元值,如稀有金属矿产区,其所在区域尽管面积很小或不位于中心,也应采取保留的原则

    3.2 栅格网络编码格

    3.2.1 链式编码(弗里曼编码)

    • 由某一原点开始并按某些基本方向确定的单位矢量链
      • 基本方向可定义为:东=0,南=3,西=2,北=1

    • 比如上图,原点为像元(10,1),则该多边形界按顺时方向的链式编码为

    • 链式编码对多边形的表示具有很强的数据压缩能力,且具有一定的运算功能,如面积和周长计算等,探测边界急弯和凹进部分等都比较容易。
    • 但是,叠置运算如组合、相交等则很难实施,除非还原成栅格结构方可,况且公共边界需要存储两次,从而产生多余的数据。

    3.3 行程编码

    3.3.1 (属性值,重复个数)

    只在各行(或列)数据的代码发生变化时依次记录该代码以及相同代码重复的个数,即按(属性值,重复个数)编码

    3.3.2(位置,属性值)

    逐个记录各行(或列)代码发生变化的位置和相应的代码,即按(位置,属性值)编码

    3.2.3 (起位,止位,属性值)

    按行(或列)记录相同代码的始末像元的列号(或行号)和相应的代码,即按(起位,止位,属性值)编码

    参考内容:2.3. 栅格数据结构 — GIS原理在线教程 (osgeo.cn)

  • 相关阅读:
    @Transactional 事务注解运用
    无代码和低代码平台:程序员的竞争优势
    自己定义 l2函数和l1函数的具体数值 pytorch
    E056-web安全应用-File Inclusion文件包含漏洞进阶
    属于「ALL BLACK」的魅力 做不被定义的自己
    win10安装 nvm + angular
    protobuf 基本使用
    二分算法(蓝桥杯 C++ 题目 代码 注解)
    记住这份软件测试八股文还怕不能拿offer?你值得拥有
    STL-list的使用及其模拟实现
  • 原文地址:https://blog.csdn.net/qq_40206371/article/details/134023377