数据存储格式#

向量量数据文件格式#

GeoJSON#

GeoJSON 是一种开放的标准格式,设计用于表示简单的地理特征及其非空间属性。它基于 JSON 格式。这些特性包括点、线字符串、多边形和这些类型的多部分集合。它的主要优点之一是人类可读,并将所有相关数据存储在单个文本文件中。然而,当存储复杂的几何图形时,这些文件可能会变得非常大。

下面是 FeatureCollection 的简单例子,它包含了点、线和多边形 geometry,并将一些属性存储为 properties

  { "type": "FeatureCollection",
    "features": [
      { "type": "Feature",
        "geometry": {"type": "Point", "coordinates": [102.0, 0.5]},
        "properties": {"prop0": "value0"}
        },
      { "type": "Feature",
        "geometry": {
          "type": "LineString",
          "coordinates": [
            [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]
            ]
          },
        "properties": {
          "prop0": "value0",
          "prop1": 0.0
          }
        },
      { "type": "Feature",
         "geometry": {
           "type": "Polygon",
           "coordinates": [
             [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
               [100.0, 1.0], [100.0, 0.0] ]
             ]
         },
         "properties": {
           "prop0": "value0",
           "prop1": {"this": "that"}
           }
         }
       ]
     }

GeoPackage#

这是一种相对较新的数据格式,遵循开放格式标准(即它是非专有的)。它构建在 SQLite(自包含的关系数据库)之上。它比许多其他矢量格式的一大优势是它的紧凑性——坐标值、元数据、属性表、投影信息等等,都存储在单一的文件中,这有利于可移植性。它的文件名通常以 .gpkg 结尾。QGIS(2.12 及以上版本)、R 和 ArcGIS 等应用程序将识别这种格式(ArcGIS 10.2.2 及以上版本将从 ArcCatalog 读取文件,但需要脚本来创建 GeoPackage)。

Shapefile#

shapefile 是 ArcView 3.x 软件原生的基于文件的数据格式(ArcMap 的较老版本)。从概念上讲,shapefile 是特征类,它存储了具有相同几何类型(点、线或多边形)、相同属性和公共空间范围的特征集合。

File Geodatabase#

文件地理数据库 是一种关系数据库存储格式。它的数据结构比 shapefile 复杂得多,由一个包含数十个文件的 .gdb 文件夹组成。它的复杂性使它更通用,允许它存储多个特征类和支持拓扑定义(即允许用户定义规则,控制不同特征类之间的关联方式)。

光栅数据文件格式#

光栅部分是由它们的像素深度定义的。像素深度定义了栅格可以存储的不同值的范围。例如,\(1\) 位光栅只能存储两个不同的值:\(0\)\(1\)