Geodetic Toolbox

Toolbox for angle, coordinate and date conversions and transformations. Version 2.99.
Updated 29 Jun 2016

View License

A collection of geodetic functions that solve a variety of problems in geodesy. Supports a wide range of common and user-defined reference ellipsoids. Most functions are vectorized. Most recent version can be found at <>. Functions include:
Angle Conversions
deg2rad - Degrees to radians
dms2deg - Degrees,minutes,seconds to degrees
dms2rad - Degrees,minutes,seconds to radians
rad2deg - Radians to degrees
rad2dms - Radians to degrees,minutes,seconds
rad2sec - Radians to seconds
sec2rad - Seconds to radians
Coordinate Conversions
ell2utm - Ellipsoidal (lat,long) to UTM (N,E) coordinates
ell2xyz - Ellipsoidal (lat,long) to Cartesian (x,y,z) coodinates
sph2xyz - Shperical (az,va,dist) to Cartesian (x,y,z) coordinates
xyz2sph - Cartesian (x,y,z) to spherical (az,va,dist) coordinates
xyz2ell - Cartesian (x,y,z) to ellipsoidal (lat,long,ht) coordinates
xyz2ell2 - xyz2ell with Bowring height formula
xyz2ell3 - xyz2ell using complete Bowring version
utm2ell - UTM (N,E) to ellipsoidal (lat,long) coordinates
Coordinate Transformations
refell - Reference ellipsoid definition
ellradii - Various radii of curvature
ct2lg - Conventional terrestrial (ECEF) to local geodetic (NEU)
dg2lg - Differences in Geodetic (lat,lon) to local geodetic (NEU)
cct2clg - Conventional terrestrial to local geodetic cov. matrix
clg2cct - Local geodetic to conventional terrestrial cov. matrix
rotct2lg - Rotation matrix for conventional terrestrial to local geod.
rotlg2ct - Rotation matrix for local geod. to conventional terrestrial
lg2ct - Local geodetic (NEU) to conventional terrestrial (ECEF)
lg2dg - Local geodetic (NEU) to differences in geodetic (lat,lon)
direct - Direct geodetic problem (X1,Y1,Z1 + Az,VA,Dist to X2,Y2,Z2)
inverse - Inverse geodetic problem (X1,Y1,Z1 + X2,Y2,Z2 to Az,VA,Dist)
simil - Similarity transformation (translation,rotation,scale change)
Date Conversions
cal2jd - Calendar date to Julian date
dates - Converts between different date formats
doy2jd - Year and day of year to Julian date
gps2jd - GPS week & seconds of week to Julian date
jd2cal - Julian date to calenar date
jd2dow - Julian date to day of week
jd2doy - Julian date to year & day of year
jd2gps - Julian date to GPS week & seconds of week
jd2mjd - Julian date to Modified Julian date
jd2yr - Julian date to year & decimal year
mjd2jd - Modified Julian date to Julian date
yr2jd - Year & decimal year to Julian date

Error Ellipses
errell2 - Computes error ellipse semi-axes and azimuth
errell3 - Computes error ellipsoid semi-axes, azimuths, inclinations
plterrel - Plots error ellipse for covariance matrix

cart2euler- Converts Cartesian coordinate rotations to Euler pole rotation
euler2cart- Converts Euler pole rotation to Cartesian coordinate rotations
findfixed - Finds fixed station based on 3D covariance matrix
pltnet - Plots network of points with labels

Example Scripts

DirInv - Simple partial GUI script for direct and inverse problems
DirProb - Example of direct problem
Dist3D - Example to compute incremental 3D distances between points.
InvProb - Example of inverse problem
PltNetEl - Example plot of network error ellipses
ToUTM - Example of conversion from latitude,longitude to UTM

Cite As

Mike Craymer (2024). Geodetic Toolbox (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2013a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

Corrected function name & test for points in southern hemisphere in utm2ell; Corrected E2 computation, improved zone computation & corrected for zero Zones in ell2utm; Added transformations for both left-handed LG & right-handed CT systems in simil.

Added utm2ell, cart2euler & euler2cart; corrected cal2jd, ell2utm, xyz2ell; modified cct2clg & clg2cct; vectorized jd2yr; corrected help comments in lg2ct, pltnet. See individual functions for details.



Added jd2mjd & mjd2jd for modified Julian date conversions. Modified ct2lg & lg2ct for different lat,lon for each point. Corrected ToUTM. Removed clear all in example scripts. Modified functions to use GRS80 reference ellipsoid by default.

Added Matlab File Exchange BSD licensing. No changes to code since v2.92.

Added Matlab File Exchange BSD licensing. No changes to code since v2.92.

Corrected correction to ell2utm function in v2.91 (and tested it this time!).

Corrected ell2utm function for mixed north and south latitudes. Thanks to Sebastian Holz for pointing out the error and providing a fix.