当前位置: 代码迷 >> GIS >> 【转】GIS:为什么小弟我和别的软件不一样
  详细解决方案

【转】GIS:为什么小弟我和别的软件不一样

热度:353   发布时间:2016-05-05 06:29:26.0
【转】GIS:为什么我和别的软件不一样

【转】GIS:为什么我和别的软件不一样
2011年03月10日
  转注:本人号称是学GIS的,但博客上写来写去都是软件编程的文章,GIS方面则比较OUT了。但水平有限实在也不知写什么,所以就决定,搞转贴学习。
  以下内容转自add:凡人做梦:http://blog.3snews.net/html/73/39273-28240.html 有两三周没来这里凑热闹了,今天上来看到果然大家在热热闹闹的讨论天地图和公共服务平台,甚至我在6月份的第一篇有关"天地图"的博文都得到了热情的惠顾。这说明天地图对很多人,特别是空间信息领域的从业者来说的确是一件大事。大家关心天地图,从不同角度来看有不同的观点,关心媒体和运营的人士想到的是如何推广宣传,所以更关心"天地图公司";地图专家关心的制图和投影,所以大家也看到了洪山波兄的有关投影的精彩博文;我等做GIS应用的人更关心如何基于天地图服务进行应用开发,所以可能会更关心瓦片地图的访问接口。
  但是非本领域的大众对天地图的关心都不在此列,你找一个邻家女孩访问一下天地图,让她谈谈感受,百分之九十的概率她会关心她所熟识的一个地物在天地图上有还是没有。"呀,某某路审美美发都开了一年了,地图上都没有?","嘿,不错不错,我家小区里面的路都显示出来了",这是大众常见的观察视角。你跟她说这个地图是经纬度坐标系统,没有投影所以不能准确在地图上测量,你得到的反馈只能是一个清澈而空洞的眼神----牛的眼神。
  地图上的数据有还是没有,自然和天地图技术人员不相关,那是四维的事情,人家有人家的地图更新计划。但大众的视角代表了对空间信息服务的初始需求:基础要素展现和定位。也别用"要素"这等"准专业"词汇了,就是地名、地址、地物、地形和地理的展现吧。所以,面向大众的公众版必然会应对"新不新、有没有"的问题。数据的质量是首要的,技术倒在其次。其实,也别说大众,就是大部分的政府地图应用需求也是这样的。目前几乎公认做的最成功的城市级空间信息服务:北京市信息资源管理中心的共享服务平台,在其上跑的各个政府部门的地图应用绝大部分都是做业务数据上图的,也就是业务信息尤其是点状信息在共享服务上叠加定位。
  我时常在想,可能在美国也是一样,大家的需求也都是标个点、定个位吧,那Esri那样的产品都卖给了谁呢?Esri的销售肯定比小月月的作者还能忽悠,可看老Jack,也不像郭德纲、周立波啊。再细想,业务信息的上图是第一步,上图以后业务人员自然就会想再挖掘这些信息背后的秘密,比如什么时间什么案件在什么地点发生的数量大?哪类地区哪个加油站业绩最好?还需要在哪儿建一个加油站?香港中路两边5米范围内有多少棵绿化树木多少根路灯?这时候他需要的就不仅仅是基础地图了,他还需要一件武器:GIS。
  若说GIS区别于别的软件的地方,可能每个学习GIS的人都有一个共同答案。我想,至少制图和存储空间数据结构不应该算是GIS的独特之处吧。Adobe肯定不会说Illustrator是GIS,Oracle也不认为有了Spatial模块它就是GIS软件平台中的一员了。那么GIS有特色的地方就是所谓的空间分析了。
  说到空间分析,我不想把上学时的课本找出来再温习一次,我在空间分析的理论和算法上也没有甚至是肤浅的认识,在我的眼中,空间分析就是用来回答类似我刚才的那几个问题的,去讲述上了图的数据背后的故事。最最基础的空间分析也就是那么三类: 1.        What's on the top of what?就是谁在谁之上。我们俗称叠加(overlay)分析的。
  2.        What's close to what?就是谁邻近谁。我们俗称邻近(proximity)分析的。
  3.        What's connected to what?就是谁连接谁。我们俗称连通或者网络(network)分析的。 先说说第一类。叠加是非常有意思的一类分析,可以解决很多我们遇到的现实问题,所以应用场景非常之多。不同的场景也需要不同的叠加方法。ArcGIS最新的在线帮助在总体介绍叠加分析的页面有个表格列出了常用的5种方法。
  
  叠加分析示意图
  而除了标识、相交、交集取反、联合和更新这五种外,列在在ArcToolbox叠加分析工具箱中还有擦除和空间连接(基于空间关系传递属性)两个方法: 
  
  ArcGIS的叠加分析
  
  叠加分析中的"擦除"示意
  从这些小示意图中我们可以初步理解这些叠加操作的概念,在实际操作中肯定还需要加入其它工具才能实现具体场景的需求,比如需要基于属性的融合:
  
  前面列出的矢量数据的叠加,对于栅格数据的叠加,最为基础的就是栅格像元特征值的加减。
  
  栅格叠加原理 基于这个原理,ArcGIS提供的分析工具包括:加权叠加、加权总和以及模糊叠加。
  
  ArcGIS的栅格叠加分析(模糊是10版本的新功能,先做模糊分类,然后再叠加)
  矢量数据的叠加分析,在超图的软件中也都有很好的体现。
  
  超图桌面帮助中的叠加分析模式 遗憾的是,这些功能目前还只能在Deskpro 6版本中即时使用,在最新beta的基于UGC底层的SuperMap Deskpro .NET 6R中还没有任何分析功能。从这一点上也可以印证,UGC也好,OGC也罢,对于用户来说,你不给提供我需要的功能,什么底层也白搭。不过叠加分析的功能在新版本中迟早是会有的,毕竟这是基础中的基础了,如果你还是一个GIS软件的话。 
  
  虽然帮助上注明从"分析"菜单中调用叠加分析,但尚且没有"分析"选项卡
  超图的栅格分析中没有明确提出栅格叠加的概念,我前面也说过,栅格叠加的本质是栅格运算,所以只要有栅格运算的功能即可实现叠加的效果。你可以自己制作叠加的处理方法,比如加权。 
  
  超图Deskpro 6版本中的栅格分析   本想将三类分析一次阐述的,但一看篇幅过长,还是分成三个部分完成吧。下一篇说说邻近分析。
  说完了GIS分析第一大特质:叠加分析,这篇小文再谈谈第二类分析:邻近分析,我上文所说的what's near what。说起来邻近分析,有一些我们在现实中常常自动下意识使用的场景,比如团购时要看看"团"是不是在自己住所附近,购房时要考虑周边环境,小区中近邻的品味和背景,你总是不希望楼下就是一个K歌房,小区中都是些三教九流的租客,而是期盼自己住在风景优美的湖畔,要是附近再有优质的学校和医院那就更棒了,如果出门步行5分钟就到工作单位做梦也会笑起来--那是省委大院!
  我们生活中自然而然的事情,先贤们早已总结出道理来让我们学习。有个叫做Tobler的大牛提出了地理学第一定律:Everything is related to everything else, but near things are more related than distant things。翻译一下就是:任何东西与别的东西之间都是相关的,但近处的东西比远处的东西相关性更强。所以你和你老婆的相关性要高过和老妈的相关性。这虽然不如我们初中就学过的热力学第一定律(能量守恒:热和功可以互相转化)有名气,但我们学地理的人Tobler的定律总还是要老老实实掌握的。这条定律使得很多后人在用GIS做研究的时候都会考虑的一种方法就是:空间自相关(spatial autocorrelation),是指一些变量在同一个分布区内的观测数据之间潜在的相互依赖性,而分析各种依赖关系诞生了一批又一批的论文。其实GIS本身的论文也没有什么可做的。
  缓冲区是我们最常见的邻近分析,而邻近分析的结果多是面状的,Buffer的结果都是多边形,此外还有泰森多边形,交通网络的服务区域也都属于面状分析结果。邻近分析生成的多边形也往往参与到叠加分析中,比如沃尔玛周边3公里的人口数量,小区名称等;另外邻近分析的结果不见得都是面状的,也可以是线性度量,最短距离我们其实也是一种邻近分析。对分析结果的表达,用矢量图形是一种,这最通用,用数值来表达是另一种形式,可以输出为具体的值或者表。
  因为缓冲区分析最常用,所以对于Buffer,我们有必要多说两句,从高端到山寨,无论什么GIS软件,这个貌似人人皆具有的功能倒有一个基础值得一提,就是缓冲区的距离是基于什么空间度量的。因为二维地图是将地球投影而得,我们常常看到在二维地图上做的buffer都是基于欧式距离(笛卡尔坐标),投影有变形,因而这个buffer的结果和实际值都会有误差。真正准确的应该是基于球面坐标,也就是Geodesic Distance(测地线距离)。这个数学基础放到大比例尺的范围内显得意义不大,如果放到全球尺度那就很要命了,特别是用到WGS-84地理坐标系中,测地线缓冲就更加重要,这是因为,尽管在整个坐标系中对纬度的转换固定不变,但是由经度到线性距离的转换却会随着远离赤道而发生很大变化。用朝鲜半岛局势来举例,韩国首尔因为离朝鲜太近,基本上在朝鲜大炮的覆盖范围,所以首尔永远都是韩美的痛,那么朝鲜大炮的缓冲分析有些误差无所谓;但要是分析一下朝鲜的洲际导弹大浦洞2(三级液体燃料,有效射程12000公里),能打到美国哪儿,这就不能含糊了。我们可以用ArcGIS做一个例子看看。
  
  用mercator投影,用平面测距从平壤到纽约将近18000公里
  
  而用测地线测距,实际距离不过11900多公里,大浦洞2如果没有爱国者的保护落在纽约不成问题
  另外一个需要考虑的因素是缓冲区结果的互相压盖,尤其是多点所作的缓冲区,分析结果融合与否很重要。 
  
  但是这个融合(dissolve)却是一个费时的工作,看似简单,其实要做一个很复杂的空间运算。
  
  想到一个解决办法,就是用ArcGIS的制图综合工具集中的聚合点工具(aggregate points)先在点周围生成聚类多边形而后在给这个多边形做buffer即可。
  
  
  此外,ArcGIS中生成缓冲区的设置比较丰富,比如可以选择线要素缓冲区在哪一侧生成,融合的方法,融合的字段等。还有其它工具值得去尝试,比如近邻分析和近邻表,会实现一些意想不到的功能。
  
  
  网络分析其实也是一种典型的邻近分析,这是大众最常使用的GIS功能了,所以寻找路径是在线地图的必备功能,而行业GIS应用中,反倒不如Buffer普遍,应用的层次也比较浅,就是算算最短路径或者最优路径。有些GIS软件将交通网络和管线网络混作一团,而这两种网络都有各自独特的地方,混在一起往往两个方面考虑的都不周到。管线上(包括水文)的路径更多考虑的是连通性和上下游关系,我要在下一篇中继续罗嗦。
  在ArcGIS中网络分析模块除了解决从A到B的基本问题外,还有三四个比较有趣的分析方法,一个是服务区域,一个是最近设施点,还有一个是在10中新增加的位置(资源)分配。
  
  最优路径、服务区、最近设施点
  在ArcGIS的这些分析设置中,参数相当多,很多我也并不清楚,而在分析之前如何创建网络数据集,设置好网络的基本属性就有不少的学问,看来要想专精,还真需要下一番功夫不可。上面我就是从在线帮助中截取几张图片而已,好在在线帮助也都是中文化的了,在一个爽心的下午,品着拿铁,信手翻来也不失乐趣。
  按照一开始的规划,第三篇要写的是GIS的连通性分析,也就是回答What's connected to what?的问题,但是后来想了想,这似乎已经成了GIS最为简单的功能,别说所有的GIS软件,即便是一些非GIS软件,这个功能也可以实现,所以我甚至感觉这项分析都不应该算作GIS的特质之一。但连通性分析怎么也算是传统GIS的核心,无论如何也要简单总结一二。
  说连通性分析简单,主要在于实现这项功能不需要特别复杂的基础,无非是创建一个包含了三类数据库表的网络而已,这三个表是边(edge)表,交汇点(junction)表和连通性规则(connectivity)表。
  
  借用ArcGIS帮助中的示意图,逻辑网络中的主供水管、支管和交汇点及其连通关系用三张表可以描述了,至于其中的门道,大家仔细观察一下即可明白,注意其中不同的颜色所代表的含义。
  除了边、交汇点,还有一些常用的"网络词汇",简单边是资源只能在端点流出的管道,比如支管,复杂边是允许在中间某处抽出资源而无需在实体上分隔的管道,比如主干管,源头(source)是资源流出的点,汇点(sink)是资源流入的点,孤立交汇点(orphan junction)是系统为了维护网络完整性而把没有出现几何重合的端点硬插入的交汇点等等。另外,在解决网络的问题中,复杂的情况也会很多,在这个时候就考验谁的软件想的细、做的细了,大家感兴趣可以上网去看ArcGIS的在线文档,里面说的比我更细。
  虽然这些都是ArcGIS中几何网络(geometry network)的概念,但其他GIS组织网络数据的结构及原理大同小异,包括Oracle Spatial中的几何网络(Oracle spatial中是node表、link表和path表)。ArcGIS是希望借助一个抽象的模型将现实世界的某种网络(定向网络)表达出来,而抽象的方式就是浓缩这类网络的核心特征,无论是电力网络、给排水网络还是电信网络。
  使用这种解决网络问题的思考方法有好有坏,好的方面是一套模型、自在扩展,所以在ArcGIS产品上诞生了一批行业上的解决方案,比如telvent的子公司miner&miner做了一套电力上的GIS产品,telcodia做了电信上的GIS产品,AMEC做了水资源的GIS产品,虽然完全是不同领域的解决方案,但它们的基础却是同一个模型;不好的方面是抽象的模型比较"地理化",缺乏给予最终用户的直接感受,所以从这个角度出发,intergraph和smallworld不这样解决问题,它们给出来的都是面向具体行业的"工具性"产品,用户不需要关心"边""交汇点"等抽象概念,他们要做的只是按照系统给出的步骤维护业务中的"人井""阀门""电表""变电站"就好,用户感受很亲切,也容易学会软件的方法。所以曾经intergraph的G产品及smallworld的"小世界"显得很专业,但其实组织数据的方式和上面介绍的基本模型是别无二样的,而且它们用的都是Oracle Spatial,只是用户接口部分更好的考虑了业务对象和行业特征,这非常值得称道。只是这两家公司已经在慢慢的淡出GIS领域的群众视野,尤其在中国,在国家电网的186项目中败给ArcGIS,通通出局,也许卖了20亿给hexagon的intergraph能再度爆发出活力。
  有了这个模型,可以做一些分析了,常用的包括:最短路径,查找连接或者断开的网络要素,环路分析等。在实际业务中用的最广的是爆管或者断路分析,抽象一点的表达就是从某一个点向上游或者下游追踪网络元素。有一些有学问的电力行业用户持有一种观点就是电气的拓扑应该单独维护,不要和地理网络混在一起(电力行业的拓扑就是ArcGIS的逻辑网络,和ArcGIS的拓扑规则无关)。我不大懂电力,不敢妄自评判,揣测其中的缘由:一是GIS的几何网络过于简单,实际操作中的一些问题不容易解决,比如刀闸,相等;二是抛开一个为地理设计的模型而使用自己随意控制的一套表更容易扩展;三是没有地理空间的负担,性能也会好很多;四是大部分的电气分析没有必要在地理的层面做,只是结果要展现在地图上即可,恐怕这是最主要的原因了。不知道我的猜测对否,请行业专家指点一二。但是单独做电气拓扑也有明显的坏处,就是需要为物理上同一个要素维护两套数据,这增加了冗余,也增加了维护的成本,如果不严格把关的话就会看到将地图放大到一定比例,线缆和变压器根本没有连接在一起的"
  相关解决方案