使用矢量数据执行空间插值的包
项目描述
PyPolate
用于插入空间数据的 Python 工具
目录
介绍
PyPolate 是一个开源项目,可以更轻松地在 python 中插入地理空间数据。PyPolate 中的几何运算由 Geopandas 执行。PyPolate 目前处理空间矢量数据,并实现了六种不同的空间插值方法。
例子
使用面积权重对车祸数据进行插值
对于这个例子,我们将使用费城的开放数据。第一个 shapefile 是由交通分析区域 (TAZ) 聚合的崩溃数据。第二个 shapefile 是Census Block Groups。
在此示例中,我们希望将源层中的 TAZ 的崩溃次数插入目标层中的人口普查块组。我们可以从 crash-data 属性中看到,聚合崩溃的字段被命名为Count_
pypolate.areal(carcrash.df, census.df, Count_, '_intp')
如果您映射输出 DataFrame 并将其与输入 DataFrame 进行比较,它应该是这样的:
用二元法掩蔽土地利用类别
在本例中,我们将再次使用费城事故数据,但这次我们将使用土地利用数据作为辅助数据源。让我们看一下我们的数据:
此方法将使用土地利用数据帧从崩溃数据数据帧中屏蔽某些土地利用类型。车祸绝对不应该发生在水上,并且可能还有其他你想要掩盖的土地利用类型。对于这个例子,假设我们想要将车祸数据插入到住宅用地。这是我们的输入应该是这样的:
pypolate.binary(carcrash.df, landuse.df, 'C_DIG1', [2,3,4,5,6,7,8,9], '_intp', [Count_])
包含土地利用类型的字段名为C_DIG1,其中包含与土地利用类型对应的编号值。Residential 对应于1,因此我们将排除所有其他值。此插值的输出应类似于以下内容:
用限制变量法设置土地利用类别阈值
对于这个例子,我们可以继续使用费城碰撞数据和费城土地利用数据。我们的起始数据将如下所示:
调用限制变量方法将如下所示:
pypolate.lim_var(carcrash.df, landuse.df, 'C_DIG1', {1: 100, 2: 50, 3: 50}, [Count_], 'TAZ', '_intp')
限制变量函数的输出将如下所示:
使用 n 类方法为土地利用类别分配权重
为了测试 n 类方法,我们可以继续使用费城碰撞数据和费城土地利用数据。我们的起始数据将再次看起来像这样:
n 类方法的输入与限制变量方法非常相似,但是我们没有传入基于平方单位的阈值字典,而是将百分比作为阈值的小数传递。无论您要划分多少个班级,这些百分比加起来应该是 100%。在这个例子中,我们将 75% 分配给住宅,20% 分配给商业,5% 分配给工业:
pypolate.n_class(carcrash.df, landuse.df, 'C_DIG1', {1: 0.75, 2: 0.20, 3: 0.05}, [Count_], 'TAZ', '_intp')
输出应如下所示:
使用宗地法分解人口
描述
对于 parcel 方法,我们将使用来自 NYC 的 MapPLUTO 的税区数据,以及来自 TIGER/Line 的人口普查区块组级别的人口。我们的数据将如下所示:
我们将插值的数据是人口,目前在人口普查区块组中汇总。使用宗地方法,可以将人口分解为单独的宗地。我们的输入应该如下所示:
pypolate.parcel(block_group.df, parcels.df, 'UnitsTotal', 'UnitsRes', 'BldgArea', 'ResArea', [population])
parcel 方法会将人口插入到两个新列中,这些列是根据不同的输入计算得出的。其中一个新列名为 ara_derived(源自调整后的住宅区),另一列名为 ru_derived(源自住宅单元数)。下面是 parcel 方法的结果,每种插值类型一张图:
使用基于地籍的专家 Dasymetric 系统改进宗地方法
与宗地方法一样,我们将使用包含人口和宗地数据的人口普查区块组。此外,我们还使用了较大的人口普查区 DataFrame(其中也包含人口),较小的人口普查区嵌套在其中,在本例中为人口普查区。
CEDS 方法非常适用于人口普查数据,但理论上适用于任何两个嵌套但不相交的地理区域。
如果绘制,我们的输入数据将如下所示:
对于我们的输入,我们插入的列(人口)需要在两个源数据帧(区域和块组)中具有相同的列名。除此条件外,CEDS 的输入与宗地方法非常相似。
pypolate.expert(tracts.df, block_group.df, parcels.df, 'UnitsTotal', 'UnitsRes', 'BldgArea', 'ResArea', [population])
这些输入的映射输出应与此类似(该字段expert_sys在此处映射):
CEDS 方法产生的数据帧包含人口的ru_derived和ara_derived插值,以及一个名为 的新字段expert_sys。从下面的数据框中可以看出,CEDS在人口普查区块组的基础上确定是使用ru_derived还是测量人口。ara_derived在 360610271003 的区块组 3 中,GEOIDCEDS 选择ru_derived人口,然后选择360610277001ara_derived的区块组 1 的GEOID人口。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。