def geodetic_to_ecef ( latitude , longitude , altitude ) : ellip = np . sqrt ( 1. - earth_b ** 2 / earth_a ** 2 ) r_n = earth_a / np . sqrt ( 1. - ellip ** 2 * np . sin ( np . deg2rad ( latitude ) ) ** 2 ) # colatitude = 90. - latitude x = ( r_n + altitude ) * np . cos ( np . deg2rad ( latitude ) ) * np . cos ( np . deg2rad ( longitude ) ) y = ( r_n + altitude ) * np . cos ( np . deg2rad ( latitude ) ) * np . sin ( np . deg2rad ( longitude ) ) z = ( r_n * ( 1. - ellip ** 2 ) + altitude ) * np . sin ( np . deg2rad ( latitude ) ) return x , y , z
ecef xyz to lat lon alt python
Convert WGS84 geodetic coordinates into ECEF Parameters ---------- latitude : float or array_like Geodetic latitude ( degrees ) longitude : float or array_like Geodetic longitude ( degrees ) altitude : float or array_like Geodetic Height ( km ) above WGS84 reference ellipsoid . Returns ------- x y z numpy arrays of x y z locations in km
def geodetic_to_ecef(latitude, longitude, altitude):
    """Convert WGS84 geodetic coordinates into ECEF
    
    Parameters
    ----------
    latitude : float or array_like
        Geodetic latitude (degrees)
    longitude : float or array_like
        Geodetic longitude (degrees)
    altitude : float or array_like
        Geodetic Height (km) above WGS84 reference ellipsoid.
        
    Returns
    -------
    x, y, z
        numpy arrays of x, y, z locations in km
        
    """


    ellip = np.sqrt(1. - earth_b ** 2 / earth_a ** 2)
    r_n = earth_a / np.sqrt(1. - ellip ** 2 * np.sin(np.deg2rad(latitude)) ** 2)

    # colatitude = 90. - latitude
    x = (r_n + altitude) * np.cos(np.deg2rad(latitude)) * np.cos(np.deg2rad(longitude))
    y = (r_n + altitude) * np.cos(np.deg2rad(latitude)) * np.sin(np.deg2rad(longitude))
    z = (r_n * (1. - ellip ** 2) + altitude) * np.sin(np.deg2rad(latitude))

    return x, y, z