如何对可观测坐标列表进行排序?

2024-05-23 13:30:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力寻找从坐标列表中移除不需要的目标的最佳方法。我的坐标(Ra,Dec)是用astropy.coordinates.SkyCoord形成的,但我有大量的不可观测的目标,它们的赤纬太低,所以我想做的是整理我的列表,并删除所有的目标,例如,赤纬小于-10度(因为我的望远镜在北半球)。在

这是生成列表的代码行,它被称为radecs,用于简化,并从天体球坐标中获得Ra&Dec。在

radecs = astropy.coordinates.SkyCoord(ra=phi*u.rad, dec=(0.5*np.pi - theta)*u.rad)

这是一个例子,我的列表坐标是如何用Python输出的。在

^{pr2}$

Tags: 方法代码目标列表天体整理decra
1条回答
网友
1楼 · 发布于 2024-05-23 13:30:23

我将演示如何在某些任意坐标上使用带布尔掩码的numpy索引:

from astropy.coordinates import SkyCoord
import astropy.units as u
import numpy as np
phi = np.linspace(0,2*np.pi,20)
theta = np.linspace(0, np.pi, 20)
radecs = SkyCoord(ra=phi*u.rad, dec=(0.5*np.pi - theta)*u.rad)
radecs

给我radecs

^{pr2}$

要获得dec(偏差)radecs的值,可以访问该属性:

radecs.dec

[90, 80.526316, 71.052632, 61.578947, 52.105263, 42.631579, 33.157895, 23.684211, 14.210526, 4.7368421, −4.7368421, −14.210526, −23.684211, −33.157895, −42.631579, −52.105263, −61.578947, −71.052632, −80.526316, −90]

因此,我们可以通过创建一个掩模来访问-10度以上的所有目标:

radecs.dec > - 10 * u.degree

然后索引满足该遮罩的所有目标:

radecs2 = radecs[radecs.dec > - 10 * u.degree]

给我以下radecs2

<SkyCoord (ICRS): (ra, dec) in deg
    [(0.0, 90.0), (18.94736842, 80.52631579), (37.89473684, 71.05263158),
     (56.84210526, 61.57894737), (75.78947368, 52.10526316),
     (94.73684211, 42.63157895), (113.68421053, 33.15789474),
     (132.63157895, 23.68421053), (151.57894737, 14.21052632),
     (170.52631579, 4.73684211), (189.47368421, -4.73684211)]>

实际上,您所做的只是最后一步(radecs2 = radecs[radecs.dec > - 10 * u.degree]),所有其他步骤都只是解释性的。在

相关问题 更多 >