2016-03-14 6 views
1

Я изо всех сил пытаюсь найти лучший способ удаления нежелательных целей из списка координат. Мои координаты (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.

<SkyCoord (ICRS): (ra, dec) in deg 
    [(45.0, 60.0), (135.0, 45.0), (225.0, 25.0), ..., 
    (135.0, 55.0), (225.0, 70.0), (315.0, -20.0)]> 

ответ

2

Я просто показать, как вы можете использовать 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:

<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), 
    (208.42105263, -14.21052632), (227.36842105, -23.68421053), 
    (246.31578947, -33.15789474), (265.26315789, -42.63157895), 
    (284.21052632, -52.10526316), (303.15789474, -61.57894737), 
    (322.10526316, -71.05263158), (341.05263158, -80.52631579), 
    (0.0, -90.0)]> 

получить 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]), все остальные шаги просто объясняют.

+0

Отлично, спасибо @MSeifert, я знал, что это будет просто, но я не был уверен, что координаты Ra будут проходить через «маскированные» координаты сгибания. – Dean

+0

Это также работает на астропию. Табл. У меня есть третье значение, добавленное к Ra & Dec в этой таблице, которое для кажущихся величин звезд. Я понял, что когда я пробую новый список координат «radecs2», этот список теперь короче длины, чем соответствующий список величин, которые у меня есть в моей таблице, поэтому маска не переносится на мой третий столбец. – Dean

+0

@Dean: Это другой вопрос. Пожалуйста, откройте еще один вопрос, показывающий, как вы создали эту таблицу и что хотите делать. :) – MSeifert

 Смежные вопросы

  • Нет связанных вопросов^_^