противоречивое определение долготы и широты для healpy.pixelfunc.get_interp_val () или healpy.mollview ()? - PullRequest
0 голосов
/ 06 декабря 2018

, когда я поворачиваю карту Healpix вдоль долготы или широты, я получаю неправильное поведение.Я, вероятно, здесь упускаю что-то очевидное, но пока что мне не удалось найти.

См. Демонстрацию:

import numpy as np
import healpy as hp
import matplotlib.pyplot as plt

nside = 4
npix = hp.nside2npix(nside)

idx = 70
offset = 1 # rad

# set one pixel to 1 in the map
data = np.array(np.equal(np.arange(npix), idx), dtype=float)

hp.mollview(data, nest=True, title='original')

# longitude and co-latitude in radians
theta, phi = hp.pix2ang(nside, np.arange(npix), nest=True)

# rotate: offset on longitude, keep co-latitude the same
rotated = hp.get_interp_val(data, theta + offset, phi, nest=True)

hp.mollview(rotated, nest=True, title='rotated longitude')

# rotate: keep longitude the same, offset on co-latitude
rotated = hp.get_interp_val(data, theta, phi+offset, nest=True)

hp.mollview(rotated, nest=True, title='rotated latitude')

и результаты:

Точка на карте повернута вдольдолгота переводится вертикально, в то время как она переводится горизонтально для вращения по широте.Я бы ожидал обратного.

Любой намек на то, что здесь не так?

E.

1 Ответ

0 голосов
/ 06 декабря 2018

Тета - это широта, а Фи - это долгота.Это сбивает с толку, потому что их порядок перевернут, чем мы обычно ожидаем.Фактически, даже в healpy, например, в pix2ang , если вы установите для lonlat значение true, в качестве выходных данных вы получите сначала Долготу, а затем Широту.К сожалению, это соглашение, и мы должны придерживаться этого.

...