地理空间数据的用户友好阈值子空间约束均值漂移
dredge的Python项目详细描述
挖泥船
地理空间数据的用户友好阈值子空间约束均值漂移
dredge是描述地理空间证据的density ridge estimation的缩写,可以说是一个不必要的强制缩写,它基于Ozertem and Erdogmus (2011)引入的子空间约束mean shift(scms)算法,提供了一种在经纬度坐标系中发现密度脊的新工具。该工具近似于给定坐标系的主曲线,具有对初始算法的各种改进和改进以便于应用于地理空间数据:如在{{a2}和Chen et al. (2015)的宇宙学研究中所描述的阈值,避免了在数据集中稀少的区域中的显性密度脊。此外,还将{a4}作为计算大圆距离的距离度量,这使得该工具不仅适用于城市规模的数据,而且还适用于考虑地球曲率的多个国家的数据集。
实质上,挖泥船提供基于密度的测线点,这些测线点优化了到沿这些测线坐标数据集的距离,较大的带宽会导致总计测线长度的减少和到最近测线的平均距离的增加。由于Dredge最初是为应用于犯罪事件数据而开发的,因此默认带宽计算遵循定量犯罪学中公认的最佳实践方法,使用到给定数量近邻的平均距离(Williamson et al., 1999)。由于该研究领域的实践者通常对数据集的最高密度区域感兴趣,因此该工具还具有为脊点应该属于的kernel density estimate指定最高百分比级别的可能性。
安装
挖泥船可以通过PyPI安装,终端中只有一个命令:
pip install dredge
或者,可以从存储库中的文件夹dredge
下载文件dredge.py
,并通过将该文件放入给定项目的工作目录在本地使用。但是,强烈建议通过终端进行安装,因为安装过程将检查软件包要求,并自动更新或安装任何缺少的依赖项,从而节省用户进行故障排除和自行安装的工作量。
快速启动指南
Dredge只需要一个两列numpy数组作为其主要输入(coordinates
),每行一个数据点,列中有纬度和经度值。但是,还可以设置四个额外的可选参数:可以手动更改用于自动计算最佳带宽的最近邻数(neighbors
),可以强制将带宽(bandwidth
)本身设置为某个值,还可以设置用于检查迭代之间的收敛性的阈值(threshold
)。第四个参数(percentage
)解锁了挖泥船的附加功能,因为从业者的兴趣通常局限于高密度区域。对于用户提供的百分比值p,工具内部工作中的内核密度估计仅用于保留所提供数据集密度景观第(100-p)百分位数以上的脊点。例如,这使得路线匹配可以集中在这些区域。
Variables | Explanations | Default |
---|---|---|
coordinates | The spatial data as latitude-longitude coordinates | |
neighbors (optional) | The number of nearest neighbors to get a bandwidth | 10 |
bandwidth (optional) | The bandwidth used for kernel density estimates | None |
convergence (optional) | The threshold used for inter-iteration convergence | 0.01 |
percentage (optional) | The aimed-for percentage of highest-density ridges | None |
通过PyPI或在本地使用dredge.py
文件进行安装后,用法如下:
fromdredgeimportfilamentsfilaments(coordinates=your_coordinates,percentage=5)