Я использую healpy.query_polygon
, чтобы получить список индексов healpix внутри многоугольника.Согласно документации:
вершины: массив вершин, содержащий вершины многоугольника, форма (N, 3).
Но когда я пытаюсь получить все индексы изпоявляется следующий многоугольник, RuntimeError: Unknown exception
:
In [1]:
import healpy as hp
vertex_array = np.array([[0.65, -0.04, 0.76], [0.58, 0.38, 0.72], [0.91, -0.29, 0.31],[0.91, 0.18, 0.38]])
print(vertex_array.shape)
vertex_array
Out [1]:
(4, 3)
array([[ 0.65, -0.04, 0.76],
[ 0.58, 0.38, 0.72],
[ 0.91, -0.29, 0.31],
[ 0.91, 0.18, 0.38]])
In [2]:
healpix_indexes_test = hp.query_polygon(4, vertex_array)
Out [2]:
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
<ipython-input-63-5a14f69cb078> in <module>
----> 1 healpix_indexes_test = hp.query_polygon(4, vertex_array)
healpy/src/_query_disc.pyx in healpy._query_disc.query_polygon()
RuntimeError: Unknown exception
Здесь Вы можете увидеть визуализацию этих точек, лежащих на сфере.
Просто для удовольствияЯ попытался транспонировать входной массив, поэтому его форма стала (3, 4).Проблема Unknown exception
исчезла.Но вводимые данные противоречат документации, поэтому я не верю.
В [1]:
print(vertex_array.T.shape)
vertex_array.T
Вне [1]:
(3, 4)
array([[ 0.65, 0.58, 0.91, 0.91],
[-0.04, 0.38, -0.29, 0.18],
[ 0.76, 0.72, 0.31, 0.38]])
В [2]:
healpix_indexes_test_1 = hp.query_polygon(4, vertex_array.T)
healpix_indexes_test_1
Вне [2]:
array([ 42, 58, 75, 107, 123, 140])
Буду благодарен за любые предложения.