Earth Modeling

Calculate Latitude, Longitude, Altitude Rate given locally tangent velocity

Parameters:

VN : {(N,)} array like earth relative velocity in the North direction, m/s

VE : {(N,)} array like earth relative velocity in the East direction, m/s

VD : {(N,)} array like earth relative velocity in the Down direction, m/s

lat : {(N,)} array like latitudes, unit specified in lat_unit, default deg

alt : {(N,)} array like altitudes, unit specified in alt_unit, default m

Returns:

lla_dot : {(N,3)} np.array of latitude rate, longitude rate, altitude rate.

The unit of latitude and longitude rate will be the same as the unit specified by lat_unit and the unit of altitude rate will be the same as alt_unit

See also

earthrad
called by this method

Examples

>>> import numpy as np
>>> from navpy import llarate
>>> llarate(100,0,0,45.0,0) # Moving North at 100 m/s, location is at N45.0
array([ 0.00089983,  0.        ,  0.        ])
>>> # That output was in deg/sec
>>> lat = [np.pi/4, -np.pi/6]
>>> alt = [100.0, 50]
>>> VN = [100, 0]
>>> VE = [0, 100]
>>> VD = [0, -5]
>>> llarate(VN,VE,VD,lat,alt,lat_unit='rad')
array([[  1.57047955e-05,   0.00000000e+00,   0.00000000e+00],           [  0.00000000e+00,   1.80887436e-05,   5.00000000e+00]])
>>> # That output was in rad/sec
navpy.llarate(VN, VE, VD, lat, alt, lat_unit='deg', alt_unit='m')

Calculate Latitude, Longitude, Altitude Rate given locally tangent velocity

Parameters:

VN : {(N,)} array like earth relative velocity in the North direction, m/s

VE : {(N,)} array like earth relative velocity in the East direction, m/s

VD : {(N,)} array like earth relative velocity in the Down direction, m/s

lat : {(N,)} array like latitudes, unit specified in lat_unit, default deg

alt : {(N,)} array like altitudes, unit specified in alt_unit, default m

Returns:

lla_dot : {(N,3)} np.array of latitude rate, longitude rate, altitude rate.

The unit of latitude and longitude rate will be the same as the unit specified by lat_unit and the unit of altitude rate will be the same as alt_unit

See also

earthrad
called by this method

Examples

>>> import numpy as np
>>> from navpy import llarate
>>> llarate(100,0,0,45.0,0) # Moving North at 100 m/s, location is at N45.0
array([ 0.00089983,  0.        ,  0.        ])
>>> # That output was in deg/sec
>>> lat = [np.pi/4, -np.pi/6]
>>> alt = [100.0, 50]
>>> VN = [100, 0]
>>> VE = [0, 100]
>>> VD = [0, -5]
>>> llarate(VN,VE,VD,lat,alt,lat_unit='rad')
array([[  1.57047955e-05,   0.00000000e+00,   0.00000000e+00],           [  0.00000000e+00,   1.80887436e-05,   5.00000000e+00]])
>>> # That output was in rad/sec

Calculate radius of curvature in the prime vertical (East-West) and meridian (North-South) at a given latitude.

Parameters:

lat : {(N,)} array like latitude, unit specified by lat_unit, default in deg

Returns:

R_N : {(N,)} array like, radius of curvature in the prime vertical (East-West)

R_M : {(N,)} array like, radius of curvature in the meridian (North-South)

Examples

>>> import numpy as np
>>> from navpy import earthrad
>>> lat = 0
>>> Rtransverse, Rmeridian = earthrad(lat)
>>> Rtransverse
6378137.0
>>> Rmeridian
6335439.3272928288
>>> lat = [0, np.pi/2]
>>> Rtransverse, Rmeridian = earthrad(lat,lat_unit='rad')
>>> Rtransverse
array([ 6378137.        ,  6399593.62575849])
>>> Rmeridian
array([ 6335439.32729283,  6399593.62575849])
navpy.earthrad(lat, lat_unit='deg', model='wgs84')

Calculate radius of curvature in the prime vertical (East-West) and meridian (North-South) at a given latitude.

Parameters:

lat : {(N,)} array like latitude, unit specified by lat_unit, default in deg

Returns:

R_N : {(N,)} array like, radius of curvature in the prime vertical (East-West)

R_M : {(N,)} array like, radius of curvature in the meridian (North-South)

Examples

>>> import numpy as np
>>> from navpy import earthrad
>>> lat = 0
>>> Rtransverse, Rmeridian = earthrad(lat)
>>> Rtransverse
6378137.0
>>> Rmeridian
6335439.3272928288
>>> lat = [0, np.pi/2]
>>> Rtransverse, Rmeridian = earthrad(lat,lat_unit='rad')
>>> Rtransverse
array([ 6378137.        ,  6399593.62575849])
>>> Rmeridian
array([ 6335439.32729283,  6399593.62575849])

Calculate the earth rotation rate resolved on NED axis given VN, VE, VD, lat, and alt.

Paul Groves’s Notation: \omega_{IE}^N, Eq. (2.75), Ch. 2.3, pp. 44

Parameters:

lat : {(N,)} array like latitudes, unit specified in lat_unit, default deg

Returns:

e : {(N,3)} np.array of the earth’s rotation rate

The unit is in rad/seconds.

References

[1] P. Groves, GNSS, Inertial, and Integrated Navigation Systems, Artech House, 2008