(lat, lon, alt, reflat, reflon, refalt)
return tx, ty, tz
Transform from lat, lon, alt to topocentric XYZ.

    >>> lat, lon, alt = -10, 20, 100
    >>> np.allclose(topocentric_from_lla(lat, lon, alt, lat, lon, alt),
    ...     [0,0,0])
    True
    >>> x, y, z = topocentric_from_lla(lat, lon, alt, 0, 0, 0)
    >>> np.allclose(lla_from_topocentric(x, y, z, 0, 0, 0),
    ...     [lat, lon, alt])
    True
Transform from lat, lon, alt to topocentric XYZ.
Transform from lat lon alt to topocentric XYZ .
def topocentric_from_lla(lat, lon, alt, reflat, reflon, refalt):
    """
    Transform from lat, lon, alt to topocentric XYZ.

    >>> lat, lon, alt = -10, 20, 100
    >>> np.allclose(topocentric_from_lla(lat, lon, alt, lat, lon, alt),
    ...     [0,0,0])
    True
    >>> x, y, z = topocentric_from_lla(lat, lon, alt, 0, 0, 0)
    >>> np.allclose(lla_from_topocentric(x, y, z, 0, 0, 0),
    ...     [lat, lon, alt])
    True
    """
    T = np.linalg.inv(ecef_from_topocentric_transform(reflat, reflon, refalt))
    x, y, z = ecef_from_lla(lat, lon, alt)
    tx = T[0, 0] * x + T[0, 1] * y + T[0, 2] * z + T[0, 3]
    ty = T[1, 0] * x + T[1, 1] * y + T[1, 2] * z + T[1, 3]
    tz = T[2, 0] * x + T[2, 1] * y + T[2, 2] * z + T[2, 3]
    return tx, ty, tz
def topocentric_from_lla ( lat , lon , alt , reflat , reflon , refalt ) : T = np . linalg . inv ( ecef_from_topocentric_transform ( reflat , reflon , refalt ) ) x , y , z = ecef_from_lla ( lat , lon , alt ) tx = T [ 0 , 0 ] * x + T [ 0 , 1 ] * y + T [ 0 , 2 ] * z + T [ 0 , 3 ] ty = T [ 1 , 0 ] * x + T [ 1 , 1 ] * y + T [ 1 , 2 ] * z + T [ 1 , 3 ] tz = T [ 2 , 0 ] * x + T [ 2 , 1 ] * y + T [ 2 , 2 ] * z + T [ 2 , 3 ] return tx , ty , tz