初学者如何学习GIS?

初学者如何学习GIS?

这个问题看似简单,却很难一两句说清楚,尤其题主还点了电力GIS这一个专精,我猜测很可能是因为工作(或者深造)的缘故,需要在非专业背景的前提下接触电力GIS项目。从总体上看,GIS从技术角度看无外乎涉及基础设施、数据、软件、人员四个层面,专业技能更是集中在数据和软件两点。更为具体一点说,数据就是生产数据和管理数据,软件就是开发软件和操作软件,两者在同一项目过程中还有不同程度的交叉,例如,为提高效率开发一个批处理工具用于数据生产。

务虚的总论言毕,回到这个问题本身,想从本专业、跨专业、项目导向三个角度来闲聊一下这个问题,然后试着去剖析一个电力GIS可能会涉及的知识。

这一块可能会在本题目下收集到最多的答案,璞玉在前,我的观点只能是一块小红砖,略说一二。专业学生应当从基础的理论学起,发展数据采集、数据处理、软件开发等技能,进而通过实验或实习达到一定熟练度,从中主动(或被动)发现自己的专精领域,逐步衔接实际工作(或研究深造)需求。知识理论上地理信息系统原理是最基础的,上游数据源,可以对接测绘学、遥感、摄影测量、误差理论(概率统计)等知识;中游数据处理与管理端,涉及地图学、计算机图形学、空间数据库原理等知识;下游分析与应用端多为数学与计算机理论,如空间分析、数据库原理、编程与开发、软件工程等。大学四年(也许还有硕博…)足够入门并专精了。

跨专业一般就是非GIS专业出身投身于GIS类工作或研究的情况。不同于前段所言学生入门,这一群体没有足够的时间从基础理论学起,常见的做法是明确定位,快速学习专精技能进入角色,逐步完善知识体系。首先要明确定位就是要确定自己在GIS领域从事的那一块工作,咱还是从数据处理与软件开发两个比较常见的工作类型来聊。

数据处理的工作目标就是要生产出符合客户要求的GIS数据,往往都有明确的标准规范和作业目的。新人进入团队,学会GIS软件(ArcGIS多见)的一般操作,了解第一个项目的标准规范与作业要求,很快就可以干活了。有了第一个项目经验,第二个到第N个也都不是问题,在这个过程中,可以逐步了解软件的更多功能,获得更高的操作熟练度,积极补充地理信息系统、空间数据库、地图学的一些理论知识,从生手变熟手,进而熟手转管理。

软件开发的工作目标是根据客户需求,开发具备一系列功能的软件系统。软件开发相对数据要复杂的多,但是作为初学者需求分析、架构设计、系统集成等复杂的内容一般不会接触,只需要在团队中找准自己的定位,如前端开发、后端开发、数据库开发等,项目经理或架构师会分配具体到模块的开发任务,掌握当前团队使用的语言,在团队前辈的指导下,牺牲一些脑细胞,相信很快会得心应手的。顺便多说一句,有志学习开发但还未获得项目经验的童鞋可以从ArcGIS Server支持下的Web系统开发入手(也可以从百度地图api起步,尤其安卓苹果),语言我建议Java。有了第一个项目,很快会有第二个到第N个,在这个过程中,逐步完善自己的编程技巧,学习信息系统项目的方方面面,不要忘了补足地理信息系统知识短板,从程序员一步步成为项目经理或者技术大牛。

这种情况多是甲方单位,也有一些软件公司作为乙方也可能会突然跨界。项目具有临时性特点,时间上肯定不允许逐渐进入角色,必须短平快入门。

作为甲方相对比较简单,多方联系潜在供应商,调研具有项目成功经验的兄弟甲方单位,寻求专家意见,在此过程中get若干个重要信息点,寻找一些文献资料强化信息点,如此准备工作做足应该可以应付各类供应商的忽悠了。

作为乙方的话,情况就有些复杂。突然在一个项目中跨行业对于项目管理来说是具有巨大风险的,此时最重要的一个初学者指向了项目经理。项目经理必须要快速进行技术分析,了解GIS项目涉及的各个子任务中哪些是通过学习培训自己能搞定的,哪些搞不定。搞得定的就下狠心组织团队去学,以实现为目的,请老师教、去CSDN扒、找开源代码、挖些会的人过来都是可用选项,一般来说系统开发中大部分都是通用软件技能,涉及GIS专业的约占30%上下,所以项目里总是有不少东西应该能搞定的。搞不定的(如数据处理)就进行外包、合作、寻求技术转让。最后在利用自己的经验把各方面协调好,度过风险期。

以上三种情况大概可以覆盖因中原因需要去接触GIS的同学们了。最后简要分析一下电力GIS的实例。电力行业应用GIS非常早,也涌现了很多出色的公司和非常棒的成果,首先要给这个行业点赞。那么假设一个电力GIS系统,例如输电线路巡检系统需要哪些技术来解决呢。

首先数据层面,需要按照地理信息标准规范以及电力行业的一些行标来生产系统所需的数据。数据上来说,作为底图的遥感影像你得有吧,基础地物的道路水系居民地得有吧,这些数据源要按照GIS行业标准来生产,或者寻求从百度地图这样的平台来解决。然后专题类的输电线路、输电设备、附属设备等数据得有吧,这些数据如果没有就要去采集,可以在遥感影像上采、也可以从CAD图转换、什么都没有的话就去实地测绘采集,专题数据的采集和处理都要按照电力行业标准进行。之后呢就把基础数据和专题数据融合一下,形成一套符合空间数据库标准的空间数据,然后发布出来,供开发使用。

之后在开发层面,项目经理要求了解客户的功能需求,这个过程中也要了解数据需求进而指导数据的采集。根据客户的功能需求进行系统设计,如果采用瀑布法开发,就需求、概要设计、详细设计、分模块开发、集成、测试这样的顺序。但我建议项目规模不大用原型法,利用团队项目经验在获得需求后快速搭建原型,让客户看得见情况下去提具体需求,然后不断修改完善直至成品系统。巡检系统一般涉及后端、前端和移动端。后端要做好中间件,维护好数据库和API。Web前端是巡检系统的管理后台,做好界面具体实现功能(主要分配巡检任务,处理回传数据)。移动端专注于巡查人员的手机上的APP功能,如定位、导航、拍照、填写调查表单等。几大块都做好后,到甲方的指定的地方去部署,有可能是他们的机房里,也有可能是阿里云什么的,一般不是超大型项目,不必GIS公司去做硬件集成的,有环境会用就行了。最后,交付使用,搞一搞人员培训,做一下数据维护计划,项目就可以收尾了。

简单聊一些GIS的七七八八,经验之论未必严谨,欢迎指正。