初次接触GIS文件?从这里开始
有人给您发来了一个GIS文件。可能是县政府提供的Shapefile,可能是Google Earth导出的KML,也可能是顾问公司交来的GeoPackage。这些名称让人摸不着头脑,格式似乎也多达十几种。
好消息是:它们其实都是同一个思路。每个GIS文件都包含两样东西:
- 地图上的形状——点、线或面,每一个都位于它在地球上的真实位置。
- 一张描述这些形状的表——每个形状对应一行,列中记录诸如所有者、作物、英亩数或日期等信息。
就这么简单。只要把GIS文件看作背后带着一张电子表格的地图,每种格式就都说得通了。
形状:点、线和面
在GIS领域,每个形状称为一个要素。要素只有三种:
- 点——一个位置。一口井、一个采样点、一个消防栓、一次地震。
- 线——一条路径。一条道路、一条河流、一条管道,或者您用GPS记录下的行走轨迹。
- 面(GIS术语叫多边形)——有内部范围的边界。一块房产地块、一块农田、一个洪泛区、一个湖泊。
一个图层通常只包含一种要素:水井图层、道路图层、地块图层。在GoGIS中,您打开的每个文件都会成为地图上的一个图层,而且可以随意叠加多个图层。
表:信息存放的地方
形状告诉您在哪里,表告诉您是什么。这张表叫做属性表,用起来就像电子表格:
- 每一行是一个要素——一块田、一个地块、一次地震。
- 每一列是一个属性——关于每个要素的一项信息,比如它的作物、所有者或震级。
- 一列只存放一种类型的值:文本(名称)、数字(英亩、金额)或日期。
每个文件的表都不一样,因为列是由制作文件的人决定的。地块文件里有所有者和评估价值;作物文件里有作物和英亩数;地震数据源里有震级和深度。有些文件有五十列,而Google Earth导出的KML可能只有一个名称和一段描述。
要查看某个要素的那一行,在地图上点击它即可。GoGIS会显示该要素的所有列。
要查看整张表,在图层面板中点击图层旁边的…,然后选择属性表。此时每个要素都是一行,您可以像使用电子表格一样搜索、排序和筛选。
思路相同,包装不同
那为什么会有这么多格式?主要是历史原因:不同的软件、不同的机构各自想出了存储形状和表的方法。但里面装的都是同样的两样东西。下面是您可能会遇到的格式,GoGIS都能打开:
- Shapefile(.zip文件)——老牌标准格式,至今仍是大多数县政府、公用事业单位和政府机构发布数据的格式。它实际上是几个文件打包在一起,下文会详细说明。
- GeoPackage(.gpkg)——现代的替代格式。单个文件就能容纳多个图层,没有Shapefile那些奇怪的限制。
- KML和KMZ——来自Google Earth和许多网络地图。KMZ就是压缩后的KML,有时里面还带有图片。
- GeoJSON(.geojson或.json)——在网站和实时数据源中很常见。上面的地震数据就来自GeoJSON。
- GPX——来自GPS设备或徒步App的轨迹和航点。
- CSV——带有纬度和经度列的普通电子表格。每一行会变成一个点。
无论您手上是哪一种,它在GoGIS中都会以带属性表的图层打开,所有操作方式也都一样。
为什么Shapefile看起来有点怪
Shapefile诞生于1990年代初,它的“年纪”体现在几个方面,第一次接触的人都会被弄糊涂。
一个Shapefile其实是好几个文件。每个文件存放数据的一部分,它们共用同一个文件名:
- .shp——形状
- .dbf——属性表
- .shx——帮助快速找到每个形状的索引
- .prj——形状在地球上的位置参照(坐标系)
- 有时还有更多:.cpg(文本所用的字符编码)、.xml(数据说明)等
这就是为什么Shapefile几乎总是以.zip的形式提供。请保持压缩状态:GoGIS可以直接打开.zip。如果您解压后只发送.shp文件,其余的数据就留在原处了。
形状位置不对,或者没有任何信息?通常是缺了某个文件。没有.prj文件,GoGIS就无法判断形状的位置,只能假定它们使用普通的经纬度——于是采用县级或州级坐标系的形状可能会出现在错误的位置。没有.dbf文件,就根本没有表。请向发送文件的人索要完整的.zip。
列名又短又难懂。Shapefile的列名最长只能有10个字符,所以本该叫Net Property Tax(净房产税)的列会变成NETPRPTA,Owner Name(所有者姓名)会变成OWNERNME1。这不是错误,而是格式本身的限制。发布文件的机构通常会提供一份说明各列名称的清单,往往就在那个.xml文件里,或者在其网站上。
GeoPackage和GeoJSON等较新的格式没有这些限制,这也是它们越来越流行的原因之一。但底层的思路没有变:形状,加上一张表。
动手用起来
一旦知道地图背后有一张表,您就可以向它提问——就像对待电子表格一样。杏仁一共种了多少英亩?镇上谁缴的房产税最多?东京附近最近的地震有多强?在GoGIS中,您可以:
- 筛选表格,只留下您关心的行
- 对某一列排序,找出最大或最小的值
- 对数字列求和、求平均值
- 按某一列为地图着色,看出其中的规律
- 用某一列的值标注地图
- 将这些行导出为电子表格
Shapefile、GeoPackage或KML文件能用来做什么?用免费公开数据,通过三个简短的实例演练展示了以上所有操作:
- 加利福尼亚州Kern County的杏仁种植面积——筛选、汇总、导出为电子表格
- 威斯康星州一个小镇的房产税——汇总、排序、为地图着色、添加标注
- 东京附近的近期地震——平均值、最强地震、标注
您不需要自己准备文件也能跟着做。这三个数据集都内置在GoGIS的参考数据中:在图层面板中点击导入按钮(带+号的文档图标),然后选择参考数据。
当您准备打开自己的文件时,请参阅Shapefile、GeoPackage以及KML和KMZ的相关指南。