Моя цель - проверить, превышает ли эллипс региона, который я хочу создать для каждого изображения подгонки, основываясь на информации из каталога, границы изображения, как в примере, который я загружаю. Пример подгонки изображения что некоторые области превышают границы изображения
Мой подход состоит в том, чтобы использовать regions.SkyRegion.contains
, чтобы проверить, включены ли некоторые точки неба, которые находятся за пределами участка подгонки изображения, в эллипсы области неба, созданные на основе наземного каталога истинности. Если выбросы включены в регионы, я удаляю регион.
Я создал двумерный массив возможных выбросов, например, left_side
([ra, dec]) ...
Мой код:
for source_ in idxcatalog:
if full_cat[source_][12]==1:
ellipse_center = SkyCoord(full_cat[source_][3], full_cat[source_][4], unit='deg')
bmaj=full_cat[source_][7]
bmin=full_cat[source_][8]
pa=full_cat[source_][9]
skyreg = EllipseSkyRegion(center=ellipse_center, width=bmaj * u.arcsec, height=bmin * u.arcsec,
angle=pa * u.degree)
for point in left_side:
skycoord=SkyCoord(point[0]*u.degree, point[1]*u.degree)
x=skyreg.contains(skycoord, w)
if x is True:
print("true found")
#do something
Я также использовал:
if x==True:
do something`
и
if x==False:
do something
else:
do something_else
и похоже, что проблема возникает, когда значение равно True или в else
, во второй и третьей попытках соответственно.
Вместо того, чтобы получить ложь или истину: я получаю
python3.5/site-packages/astropy/units/quantity.py:463: RuntimeWarning: divide by zero encountered in true_divide result = super().__array_ufunc__(function, method, *arrays, **kwargs)
Тогда выполнение выглядит как остановка или иногда как пропуск предупреждения без возврата чего-либо.
В чем проблема, знает ли какой-либо орган, как это сделать или как подойти к решению?