GIS是个朝阳产业,但它永远都到不了正午。这自然是一句调侃,但也无不包含着GISer的心酸。因为GIS的具体定义,很多在学校和行业内摸爬滚打多年的人也未必说的上来,进而它的作用也就变得模糊起来。作为一个GIS出身的人,每次别人问我学什么的我回答地理信息系统时,别人总会一愣,然后我就很无奈的补充一句,画地图的。地图学当然是GIS的一部分,但这个定义显然是不全面的。
GIS在发达国家也不算是一门成熟的学科,更不用提在国内,很多学校将测绘、地质、遥感、计算机图形学等内容放在GIS专业的课程设置中去,虽然都是相关的知识,但过于宽泛的学习反而丢失了对深度探索的可能性。写这篇文章也是为了将自己四年来在学校这个小小的圈子里摸索的知识、感想和理解都记录下来,也想分享给更多想了解、必须了解和使用GIS的人。
在课堂上,地理信息系统(GIS,GIS,Geographic Information System),是一种以地理信息作为主要研究对象的信息系统,主要用于用于输入、存储、查询、分析和显示地理数据。可这样讲,总还是觉的太过笼统与宽泛,想要具体了解其本质与用途,还要从根本入手。
首先,想要了解什么是GIS(地理信息系统),先问一下自己对地理信息的定义是什么。
实际上多数人对地理这门学科的认知本身就是有局限的,认为地理只是研究山川河流、地形地貌,甚至分不清地质和地理的区别,以为地理学家整日需要风吹日晒研究石头成分。当更多人是一听说你学地理,就找个偏门国家问你首都是哪。这种认知局限也限制了地理学潜在的可能性。其实,底图合区划等是地理学的基础,所有的信息都依靠这些基础建立联系,这种联系可以建立的原则就是----每一事物都影响其他的事物,但是对距离近的事物影响更大。位置影响自然环境和人文环境,进而影响人类的活动。所以虽然地理是一门学科,但其内容却涉及社会学(城市化、人口、住房、种族)、政治(国际关系)、环境科学(资源利用、动植物保护)甚至是医疗和法律。地理学以位置为基础,将与我们生活息息相关的部分串联起来,找到其中的关联,再用这种关联去解决问题。因此,地理信息并不是某座山的海拔或者某条河的冰期,而是所有带着位置标签的信息。
以美国的普查数据为例,普查会将美国划分为小的普查区域或者街区群,这里的普查区和街区群就是地理标签,对于每一个地理标签,数据库中会详细记录该标签下的实际信息,比如收入的中位数等。
所以,做一个合格GISer的基础,不是扎实的编程基础,也不是丰富的统计功底,而是对地理信息的深刻理解和对空间的思考能力。习惯性的将数据中包含的地理标签带进思考过程之中,并利用地理上的关联来解决问题,就是一个GISer与软件工程师最大的区别。
编程能力的重要性
编程在GIS中的重要性是不容轻视的,例如GISer最常用的软件ArcGIS就可以利用Python Script大大提高操作的效率,一份完整的Python Script可以自动完成一个空间分析的流程,不需要操作者在其中做任何事情。许多网页嵌入式的地图及可视化工具更是大量使用JavaScript和HTML语言,而管理与GIS息息相关的空间数据的数据库,也高频率地使用SQL和Spatial SQL。(空间SQL,与SQL在语言结构上几乎一致,但是可以筛选和管理的内容有所区别)即使不做开发工作,编程知识在GIS学科之中也有举足轻重的地位。
程序员的思维和习惯也是一个合格GISer必备的素养,即勤学、勤查。勤学在于这个学科爆炸式的更新,新的工具和技能层出不穷,勤查则由于技术之繁杂。单一个ArcGIS就有成百上千种操作和功能,习惯性地使用搜索引擎查阅工具和功能是GISer非常好的习惯,并且时常会带给你惊喜。
但是!如果说GIS等于开发,或是GIS主要还是做开发,是有失偏颇的。GIS的核心是利用空间数据和空间分析解决问题,而非制造出更多的软件。技术是GIS的工具,而非GIS真正的内核。
数据!数据!数据!重要的事情说三遍
数据是GIS的基础,也就是我们上面所说的地理信息,没有干净、完整、准确的数据,所有的分析都是空谈。在一份GIS的项目里面,往往最耗时的部分就是数据的收集和清理。数据的收集往往不是个人可以做到的,大多数GISer使用的都是所谓“二手数据”,即已经存在的、由别的个人和组织已经收集的数据。数据往往又有免费数据和收费的数据,免费数据(在美国)通常是由政府或者其他NGO(非营利组织)收集的,而收费数据则通常由商业公司收集的。对于GIS的工作者来说,常常存在的问题是免费的数据不好用、收费的数据买不起。我大学所在的西雅图算是免费空间数据非常丰富的地方了,对于整个州的有WAGDA数据库,还有King County GIS Portal,西雅图自己也有非常丰富的GIS数据,但是依然有质量层次不齐的问题,很多时候数据找回来,可能有的信息不完整或者不正确,就需要做GIS的人做非常多的功课,去做修改、重新分组或其他的删除整理等工作。
GIS中使用的数据通常分为两大部分,一部分是地图部分,即显示出来的区域,比如普查数据会有按照普查区划分好的地图呈现,另一部分是数据部分,也叫做Attribute Table。这个表格更像我们所想象的“数据”该有的样子,打开之后像是excel的形式。
GIS中常用的数据分为两类,矢量数据(Vector)和栅格数据(Raster),两种数据在不同的应用场景之中都会有不同的作用,具体两者的介绍、对比和使用会在之后的文章中写出。
空间分析:如何有理有据地胡说八道
分析这个词总是很高大上,数据分析、市场分析,但其实质都是对现实测量和猜测。当然,利用专业知识有理有据的猜测总是很值得参考的。空间分析的本质其实是数据分析,只不过分析过程中使用的是地理信息和空间数据,上一节之中我们提到数据,其实不同类型的数据就是地图上不同的图层,进行叠加、合并、拆分、计算等各种运算,在其中寻找规律和结果,就是我们所说的空间分析(Spatial Analysis)。
举例来说,我们经常使用的手机地图,从某地到另一个地方的路径,这个运算的过程其实就是使用了空间分析,考虑两地之间的公路网、是否有河流,如果有河流是否有桥梁,公路网、河流、桥梁每个都分别是一个数据层,经过叠加和计算,分析出最短的路径,如果需要计算出最快的路径,那么还需要叠加道路限速、车流量和通行速度的数据。谷歌地图在为用户计算路径的时候还会考虑到是否封路、路段是否收费等因素,虽然算法和达成方式可能不太一样,但是基本的原理都是相同的。
路经计算的例子是相对比较客观的,还有些与社会科学相关的分析相对比较主观。比如需要在哪里建立食物银行,虽然也是根据可能需要考虑的因素寻找数据再叠加分析,但是这里面的变量就相对较大,A和B可能会因为使用了不同的数据而做出完全不同的结果,对于类似的情况,只能通过尽可能地去了解背景知识才能全面地考虑影响因素。GIS归根结底只是一个分析工具,具体的使用还是需要GIS的从业人员同时专攻一个方向的专业知识或者在团队之中有一个相关专业的从业人员。
这篇文章希望从GIS核心的几个方面出发来阐释GIS真正的作用,GIS的重点不在开发,也不是统计,更不是简单的制图和可视化,这些只是达成GIS的工具,而是空间思维、空间数据和空间分析才是GIS真正的核心,接下里的文章中,将为大家从数据、工具、软件和平台等更具体地介绍与GIS相关的知识和运用。