正确剪切大型拟合文件以将某些星系隔离为较小拟合文件的方法



目前,我正在分析拟合文件图像中的几个星系。拟合文件是一个 3D 高光谱立方体,其中 x 轴和 y 轴表示赤经和赤纬,z 轴表示频率。我也知道每个星系的精确赤经和赤纬。我的目标是将大拟合文件切成较小的文件,隔离每个星系,以便我可以对单个星系进行进一步的分析。一种粗略而蛮力的方法只是手动切割星系周围的拟合文件,而我目前的算法是粗糙的,只需在星系周围切割一定数量的像素的正方形,但我想问是否有一些星际方法或其他一些数字/数学方法来更有效地识别和切割星系周围?

看看 spectral-cube 和 photutils Python 包。

Spectral-cube有切割子立方体的方法(参见此处(,Photutils具有检测来源的方法(见此处(等等,例如测量和分析来源。对于 photutils,某些方法仅适用于 2D,您需要执行一些 Numpy 表达式来处理 3D 数据。

一般来说,所有Python天文学包(Astropy,spectral-cube,photutils(都将处理Numpy数组中的像素数据(例如,用astropy.io.fits读取(和使用astropy.wcs.WCSastropy.coordinates.SkyCoord对象的天空坐标,所以你必须学习一下。为此,一个好的起点是Astropy教程。

您要求一种有效的方法来做切口。这是通过使用 Numpy 数组功能"切片"到大型 3D 像素数据数组中并在不复制的情况下创建该切口的"视图"来实现的。如果你是Numpy的新手,一个很好的学习起点是Python数据科学手册的"Numpy数组基础知识"页面。

Astropy有一个Cutout2D类,对此很有用。虽然它可以读取具有两个以上轴的 FITS 文件,但它只能基于其中两个轴生成切口。

最新更新