摘要: PySAL是以前用过的一个Python模块。在网上寻找中文资料非常难得,故进行了简单的整理。PySAL是使用Python语言开发的开源空间分析库。PySAL是在Genter of Spatial Social Sciences Tools项目(Goodchil...
PySAL是以前用过的一个Python模块。在网上寻找中文资料非常难得,故进行了简单的整理。PySAL是使用Python语言开发的开源空间分析库。PySAL是在Genter of Spatial Social Sciences Tools项目(Goodchild,2000)的支持下开发出来了,当然现在还在进化。这个基金项目的目的是促进社会科学中空间分析软件的应用,并开发出空间分析模块。 由于我的专业方向是地图学与地理 信息系统,所以在碰到“空间分析”这一术语时,总是会与GIS联系到一起,开始时候理解PySAL的概念非常吃力;实际上,PySAL中的“空间分析”,与GIS中一般意义上的空间分析(如缓冲、叠加等)还是有很大区别的。
从接触到PySAL到现在,我接触到一些空间分析的专业书籍,所以现在更能理解空间分析的意义:如果遥感给G IS提供了数据源一样,GIS也是给空间分析提供了数据源,尽管现在大部分GIS工具都集成了空间分析的功能。在网上寻找PySAL的资料,还看到它的一位开发者叶信岳博士,下面是他的简介:
叶信岳博士是博林格林州立大学区域发展中心(美国商务部经济发展局高校中心)空间经济分析实验室主任,地球、环境与社会学院的研究生导师,助理教授和美国国家科学 基金评审员。他主要从事时空数据分析/空间计量经济学/开源软件/城市规划的研究。他是美国高校经济发展学会研究分析奖2011年得主与美国地理学会区域发展和规划青 年学者奖2012年得主。他是Stochastic Environmental Research & Risk Assessment(SCI学术期刊)的副主编 。
他合作主持过美国国家科学基金,美国商务部和美国能源部的多个项目大约300万美元。他还担任CPGIS(国际华人地理信息科学学会)副秘书长,GeoInform atics国际会议出版主席(2011,2012;EI检索),美国地理学会区域发展与规划委员会发展中国家主席和美国地理学会亚洲委员会东亚主席。他也是著名开源时 空分析软件STARS和Pysal的开发者之一。他合作主编6本国际学术杂志专辑(包括SCI和SSCI杂志)。
PySAL的安装我只在Debian Squeeze与Wheezy中试过,现在还没有包含在源中,只能通过easy_install 命令安装,这里就不多介绍了。下面简单说明一下如何在PySAL中计算基于邻近性的权重,以窥一斑。 使用下面语句, 生成 3 × 3 的格子, 构建最简单的邻接矩阵:
>>> import pysal >>> n = 3 >>> w = pysal.lat2W(n, n)
n 是空间单元的数目,所以在概念上我们可以认为权重被存储在一个 3 × 3 的矩阵中。 在概念上, 生成下面规则的的点状格子, 格子都是点, 图(a)
的值是每个点的索引值(标识其所在的位置).
另外要注意的是邻接性的定义。在默认情况下,邻接的点是指在水平,或者垂直方向上邻接的,而不包含对角线方向的,如图(b),图(c)。
将上面实例w 打印出来。
1 >>> for x in w: 2 ... print (x) 3 {1: 1.0, 3: 1.0} 4 {0: 1.0, 2: 1.0, 4: 1.0} 5 {1: 1.0, 5: 1.0} 6 {0: 1.0, 4: 1.0, 6: 1.0} 7 {1: 1.0, 3: 1.0, 5: 1.0, 7: 1.0} 8 {8: 1.0, 2: 1.0, 4: 1.0} 9 {3: 1.0, 7: 1.0} 10 {8: 1.0, 4: 1.0, 6: 1.0} 11 {5: 1.0, 7: 1.0}
这里可以看出 PySAL 存储权重的方式。对生成的结果解释一下。首先要注意这里面没有存储 0 值。也就是不相邻的值,只有相邻的值被记录,权重值为 1.0。打印出来的结果是有顺序的,第 0 行,是与索引值为 0 的相对应的。每一行都是一个字典的结构,其key,表示与另外点的索引值,其value,则表示这个点与 0 点的权重值。 其他递推。