跳转到主要内容

分子云中丝状结构的检测

项目描述

FilFinder

注意:FilFinder v1.6引入了API更改和几个关键错误修复,v1.7修复了使用networkx >v2时出现的错误。请更新到v1.7以使用它!

要通知未来包的发布和FilFinder的更新,请加入邮件列表

如果您在出版物中使用FilFinder,请引用Koch & Rosolowsky (2015)

构建和覆盖率状态

Coverage Status DOI

简要描述

FilFinder是一个用于提取和分析分子云中丝状结构的Python包。特别是,该算法能够在大范围强度下均匀地提取结构(见下面的图像)。FilFinder支持Python 2和3。

算法通过多个步骤进行

  • FilFinder通过使用自适应阈值来分割丝状结构。这在对局部邻域进行阈值处理,允许提取大动态范围内的结构。

  • 通过应用形态学运算符来构建最终的丝状结构掩码,以去除无关的小区域。这些操作的顺序是

    • (可选)使用反正切变换平整 - 这消除了小亮特征(即核心)对丝状结构掩码的影响。

    • 使用小中值滤波器(预期丝状宽度的一半)平滑 - 这减少了最终掩码中区域的碎片化

    • 应用自适应阈值 - 默认情况下,补丁大小设置为预期的丝状宽度(0.1 pc) - 这设置要检测的对象的尺度。在几个因子内,此大小不会对结果产生很大影响。掩码区域的宽度不用于推导任何物理属性。

    • 低于设定面积阈值的对象被移除,以生成最终的掩码 - 对于HGBS数据,我们发现一个好的阈值是5 * (0.1 pc)^2,但这个值可能因算法使用的数据而变化。

  • 通过中轴变换将最终区域简化为骨架,以便进一步分析。

  • 每个骨架中的像素根据连接像素的数量进行分类。像素可以是体点、终点或交点。骨架被分解成一系列分支以确定长度。

  • 通过将分支集转换为图来确定长度。图上的节点是交点和终点。分支组成连接,它们在图中的权重由它们的长度和平均强度决定。最短路径算法确定通过骨架的最长路径,这被报告为主要长度。

  • 然后通过以下方式修剪骨架:移除不在主要长度上的分支、移除后不会影响整个图的连通性,以及长度和平均强度低于设定阈值的分支。

  • 通过使用距离骨架的距离构建径向剖面来确定纤维的宽度。这是通过使用欧几里得距离变换并根据像素与骨架像素的最小距离对像素强度值进行分箱来实现的。默认情况下,将高斯曲线与常数背景拟合到剖面中。报告的纤维宽度是在与光束FWHM解卷积后的FWHM。

  • 使用滚动Hough变换找到纤维方向和曲率的度量。此方法返回一个角度分布,使用圆统计定义平均值和方差。

这些是算法的基本步骤,将返回主要纤维特性:局部振幅和背景、宽度、长度、方向和曲率。此外,还有其他工具可用,例如根据径向拟合的特性创建仅包含纤维的图像。

生成的掩码和骨架可以保存为FITS格式。属性表可以保存为csv、fits或latex表。有关详细信息,请参阅`fil_finder_2D`文档。

贡献

我们欢迎对FilFinder性能的任何用户反馈。如果您发现代码中存在问题或希望请求更多功能,请在存储库中提出问题或发送电子邮件至此页面上的地址。

我们也欢迎并鼓励对代码库的贡献!我们希望这个包发展成为由社区开发并由社区使用的工具。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

fil_finder-1.7.2.tar.gz (7.6 MB 查看哈希值)

源代码

构建分发

fil_finder-1.7.2-py3-none-any.whl (568.3 kB 查看哈希值)

上传于 Python 3

由以下支持