Есть ли способ преобразовать геоцентрическое местоположение Земли в касательные координаты в определенном месте? - PullRequest
1 голос
/ 15 мая 2019

Я использую астропию для некоторых симуляций.У меня есть набор EarthLocations, которые я хочу преобразовать в систему координат XYZ, указывающую на некоторую небесную координату.Это очень простое вращение координат.

У меня есть код, который близок к работе (см. Ниже).xyz - это геоцентрические координаты, полученные из EarthLocation.geocentric.ha is ra - местное звездное время, а dec - склонение источника.ra и dec происходят из SkyCoord.Я бы предпочел сделать это с EarthLocations и SkyCoords.Выходные координаты должны касаться земли и иметь одну ось, указывающую на SkyCoord.

def xyz_to_uvw(xyz, ha, dec):
    """
    Rotate :math:`(x,y,z)` positions in earth coordinates to
    :math:`(u,v,w)` coordinates relative to astronomical source
    position :math:`(ha, dec)`. Can be used for both antenna positions
    as well as for baselines.

    Hour angle and declination can be given as single values or arrays
    of the same length. Angles can be given as radians or astropy
    quantities with a valid conversion.

    :param xyz: :math:`(x,y,z)` co-ordinates of antennas in array
    :param ha: hour angle of phase tracking centre (:math:`ha = ra - lst`)
    :param dec: declination of phase tracking centre.
    """

    x, y, z = numpy.hsplit(xyz, 3)

    # Two rotations:
    #  1. by 'ha' along the z axis
    #  2. by '90-dec' along the u axis
    u = x * numpy.cos(ha) - y * numpy.sin(ha)
    v0 = x * numpy.sin(ha) + y * numpy.cos(ha)
    w = z * numpy.sin(dec) - v0 * numpy.cos(dec)
    v = z * numpy.cos(dec) + v0 * numpy.sin(dec)

    return numpy.hstack([v0, v, w])

Я думаю, что на выходе должен быть набор EarthLocations, относящихся к конкретному кадру.

Я изучил документацию, но не могу понять, как это сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...