PySAL元包 - 空间分析函数库
项目描述
Python空间分析库
PySAL,Python空间分析库,是一个开源的跨平台空间数据科学库,重点是用Python编写的地理空间矢量数据。它支持开发用于空间分析的高级应用程序,例如
- 检测空间聚类、热点和异常值
- 从空间数据构建图
- 在地理嵌入网络上的空间回归和统计分析
- 空间计量经济学
- 探索性时空数据分析
PySAL组件
PySAL是一系列用于空间数据科学的软件包,分为四个主要组件
Lib
解决各种计算几何问题,包括从多边形格网、线和点构建图、构建和交互式编辑空间权重矩阵和图 - 计算alpha形状、空间索引和空间拓扑关系,以及稀疏图数据的读取和写入,以及空间矢量数据的纯Python读取器。与其他PySAL模块不同,这些功能作为一个单一包一起公开。
- libpysal :
libpysal
提供了支持库其余部分的基础算法和数据结构。目前包括以下模块:输入/输出 (io
),提供常见地理空间文件格式的读取器和写入器;权重 (weights
),提供存储空间权重矩阵的主要类,以及用于操作它们的几个实用工具;计算几何 (cg
),包含一些算法,如 Voronoi 网格或 alpha 形状,这些算法可以高效地处理几何形状;以及一个包含示例数据集的附加模块 (examples
)。
探索
explore
层包含用于对空间和时空数据进行探索性分析的模块。从高层次来看,explore
中的包专注于使用户更好地理解数据中的模式,并提出新的有趣问题,而不是回答现有问题。它们包括描述空间分布结构(无论是在网络中、在连续空间中还是在多边形格子上)的方法。此外,该领域还提供检查这些分布的 动态 的方法,例如它们组成或空间范围随时间如何变化。
-
esda :
esda
实现了分析全球(地图范围)和局部(焦点)空间自相关的多种方法,适用于连续数据和二进制数据。此外,该包越来越多地提供有关边界强度和统计分析中聚合误差的最新统计信息。 -
giddy :
giddy
是esda
的扩展,用于时空数据。该包包含考虑随时间分布动态变化中空间作用的最新方法。 -
inequality :
inequality
提供测量空间和时间中不平等的指标。这些包括经典的指标,如 Theil T 信息指数和均值偏差形式的 Gini 指数;还包括在计算不平等指标时考虑观察值的地理位置和空间配置的空间显性指标。 -
momepy :
momepy
是一个用于城市形态定量分析的库——城市形态计量学。它旨在提供广泛的工具,用于系统而彻底地分析城市形态。它可以与广泛的元素一起工作,同时专注于建筑足迹和街道网络。momepy 代表 Python 中的形态测量。 -
pointpats :
pointpats
支持点数据的统计分析,包括描述观察到的点模式空间结构的方法:记录一些感兴趣现象的地点集合。这包括中心几何测量,它提供点模式的整体几何摘要,包括中心趋势、分散、强度和范围。 -
segregation :
segregation
包计算40多个不同的隔离指数,并为测量、可视化和假设检验提供一系列附加功能,共同代表了定量隔离分析的前沿。 -
spaghetti :
spaghetti
支持图、网络、拓扑和推理的空间分析。它包括网络上的集群统计测试功能、一个强大的全对全 Dijkstra 最短路径算法(具有多进程功能),以及使用geopandas
的高性能几何和空间计算,这对于沿着网络进行高分辨率插值是必要的,以及将接近网络的观察连接到网络上的能力
模型
与explore
不同,model
层专注于验证性分析。特别是,它的包专注于对具有各种线性、广义线性、广义加性、非线性、多层次和局部回归模型的数据中空间关系的估计。
-
mgwr:
mgwr
提供了一系列可扩展的算法,用于在各种广义线性模型框架中使用单尺度或多尺度地理加权回归模型进行估计、推理和预测,以及模型诊断工具。 -
spglm:
spglm
实现了一套广义线性回归技术,包括高斯回归、泊松回归和逻辑回归,这些技术允许在计算和估计中进行稀疏矩阵运算,以降低内存开销并减少计算时间。 -
spint:
spint
提供了一套研究空间相互作用过程和分析空间相互作用数据的工具。它包括方便校准和解释一系列引力型空间相互作用模型的功能,包括具有生产约束、吸引力约束或两种约束组合的模型。 -
spreg:
spreg
支持估计经典和空间计量经济学模型。目前它包含估计标准普通最小二乘(OLS)、两阶段最小二乘(2SLS)和看似不相关回归(SUR)的方法,以及各种同质性、正态性、空间随机性和不同类型空间自相关性的测试。它还包括一系列用于具有二元因变量的模型中空间依赖性的测试。 -
spvcm:
spvcm
提供了一个用于估计空间相关方差分量模型的通用框架。这类模型允许方差分量具有空间依赖性,因此附近的组可能相互影响。它还提供了一个通用框架,用于使用Python中的Gibbs抽样估计模型,并通过numba
包加速。⚠️ 警告: spvcm已被归档,并计划在pysal 25.01中弃用和删除。
-
tobler:
tobler
提供了区域插值和等值线图的功能。它的名字是对著名地理学家Waldo Tobler的致敬,他是数十种空间分析方法的开创者。tobler
包括使用面积加权方法、基于回归模型的方法(利用遥感栅格数据作为辅助信息)和混合方法进行数据插值的功能。 -
access:
access
旨在使分析计算空间可达性度量变得简单。这项工作传统上面临两个挑战:[1]在规模上计算准确的旅行时间矩阵;[2]使用旅行时间和供需地点推导出可达性度量。access
实现了经典的空间可达性模型,允许轻松比较方法和假设。 -
spopt:
spopt
是一个开源的Python库,用于解决具有空间数据的优化问题。它起源于PySAL中的原始region
模块,目前正在积极开发,以包括新提出的区域化、设施定位和以交通为导向的解决方案的模型和方法。
可视化
viz
层提供支持创建地理可视化和多种空间分析输出可视化表示的功能。可视化在现代空间/地理数据科学中发挥着核心作用。当前的包提供了等值线图分类方法和将PySAL输出链接到Python生态系统中的可视化工具包的通用API。
-
legendgram :
legendgram
是一个小型包,提供“图例柱状图”图例,可以直观地展示给定地图中观察值的分布。这些分布可视化有助于地图分类方案的分析制图和空间数据可视化。 -
mapclassify :
mapclassify
提供了等值线图分类的功能。目前,有十五种不同的分类方案可供选择,包括对 Fisher-Jenks 优化分类的高度优化的实现。每个方案都继承了一个公共结构,确保计算可扩展,并支持流式环境中的应用。 -
splot :
splot
提供了空间分析的统计可视化。它包括通过莫兰散点图和聚类图来可视化全局和局部空间自相关的方法,通过热图和玫瑰图来分析聚类动态的时间序列分析,以及通过值-α 地图进行多元等值线制图。高级 API 支持创建可用于发表的视觉作品。
安装
PySAL 通过 Anaconda(默认或 conda-forge 频道)提供。我们建议从 conda-forge 安装 PySAL。
conda config --add channels conda-forge
conda install pysal
PySAL 也可以使用 pip 进行安装。
pip install pysal
从版本 2.0.0 开始,PySAL 已经转向仅支持 Python 3。
需要旧版 PySAL 且兼容 Python 2 的用户可以通过 pip 或 conda 安装版本 1.14.3。
conda install pysal==1.14.3
文档
有关使用 PySAL 的帮助,请参阅以下资源
开发
从版本 2.0.0 开始,PySAL 现在是一个相关地理数据科学包的集合。对任何子包代码的更改应针对相应的 上游存储库 进行,而不是在此处进行。元包的基础设施更改,如工具、构建包和代码标准,将予以考虑。
开发托管在 github 上。
关于开发以及用户帮助的讨论发生在 开发者列表 以及在 PySAL 的 Discord 频道 中。
参与进来
如果您有兴趣为 PySAL 做贡献,请参阅我们的 开发指南。
错误报告
要搜索或报告错误,请参阅 PySAL 的 问题。
构建说明
要构建 pysal 元包,请参阅 tools/README.md。
许可信息
有关本软件的历史、使用条款和条件以及所有保证的免责声明,请参阅“LICENSE.txt”文件。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。