View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from
Geodetic Transformations Toolbox

Join the 15-year community celebration.

Play games and win prizes!

» Learn more

4.5 | 11 ratings Rate this file 69 Downloads (last 30 days) File Size: 629 KB File ID: #9696 Version: 1.17

Geodetic Transformations Toolbox


Peter Wasmeier (view profile)


19 Jan 2006 (Updated )

Set of tools for transformation used in geodesy, especially when using GNSS or mapping

| Watch this File

File Information

A set of functions to calculate coordinate transformations between different reference ellipsoids and different projections, including tools on:
- transformation from cartesian to geographic coordinates and back
- transformation from geographic coordinates to transverse mercator mapping or lambert conformal conical mapping and back
- transformation from geographic to UTM and back which can handle irregular zones and pole mapping
- 3D/2D/1D similarity transformation (Helmert transformation)
- determination of the parameters of a 3D/2D/1D-Helmert transformation
- applying residual corrections after performing a helmert transformation
- reading and using NTv2 transformation parameters
- 3D transformation between ITRS and ETRS frames
- 3D/2D affine transformation and its parameter determination
- 3D/2D to 2D projective transformation and its parameter determination
- Molodensky transformation
Some projections and ellipsoids are already defined in mat-Files.
This functions are often used in geodesy when transforming between different coordinate systems, e.g. UTM to GK or GPS-data (WGS84) to UTM.
Although some might be incorporated in the mapping toolbox, at least I don't have that...
An example document with background information is added.
A great acknowledgement to Andrea Pinna of the University of Cagliari who improved the helmert parameter estimation functions in speed and memory usage!
Please notify me of any bugs you may encounter.


This file inspired Geod Yet Another Geodetic Toolbox and Antarctic Geoid Conversions.

Required Products MATLAB
MATLAB release MATLAB 8.2 (R2013b)
MATLAB Search Path
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (17)
11 Jun 2016 Bernie Schestauer  
20 Apr 2016 Parma_Tep  
21 Jan 2015 Sonja Gamse

Dear Peter,
great work!

16 Feb 2014 jack

jack (view profile)

really thankful for this good code, and hope to write another in geodesy.

Comment only
20 Jul 2013 zhu

zhu (view profile)

29 Dec 2012 Kevin J. Delaney

Fantastic! Well-written, with excellent tutorial documentation.

27 Dec 2012 Douissa

very good

Comment only
31 Oct 2012 jade

jade (view profile)

great tools

Comment only
24 Jul 2012 Peter Wasmeier

Peter Wasmeier (view profile)

Michael, of course you are right. I corrected the wrong file. Thanks!

Comment only
18 Jun 2012 Michael

There seems to be a small bug in d2affinetrafo.m: In line 46f. you check for the parameter vector length being equal to 6. But in lines 68 and 70 you adress p(6:7). Invaluable toolbox nonetheless!

13 May 2012 Shien Kwun Leong

Very useful. Thank you.

08 May 2009 Cynthia

Concerning the definition of the coordinate system "helmert3D" is based on:
I suppose it is a right-handed system with the directions of the rotations defined as following:

x-axis: from z to y
y-axis: from x to z
z-axis: from y to x

Is that correct?

Comment only
29 Apr 2009 Aki

Aki (view profile)

Genau das habe ich gesucht. Grossartig!

09 Jan 2007 renoald Tang

i think it is good

02 May 2006 J J  
19 Apr 2006 Ingolf Storbult

Great tools, but the projection.mat file seems to be corrupted - or is that just my download?

21 Jan 2006 amir hossein sadeghi

for help me

Comment only
24 Jan 2006

I forgot to enable backwards compability for the included mat-Files. Now the mat-Files also work with Matlab V6.x
Thanks to Marie Ekstrom for bug reporting.

06 Feb 2006

A big in adding the right zone identifier was found for usage with utm-coordinates when transforming from ellipsoidal to projection coordinates.
I'm sorry for that.

03 May 2006

The Projections.mat file now is also accessible for Matlab R13 users.

16 Feb 2007

I was asked by Matlab users without geodetic background to give additional information about the transformation steps and an example of usage. I therfore added a paper which explains the calculations and gives a short introduction.

14 Apr 2009 1.1

I was asked to add a function which allows to calculate the transformation parameter set for cartesian datum transformation from two coordinate lists in both systems.

18 Dec 2009 1.2

There was some confusion with the additional file helmert3d which did not transform right-handed coordinate systems but left-handed, so the parameter sets did not fit in trafo3d.
this has been fixed now.

25 Mar 2010 1.3

A left-out transpose-command rose an error in trafo3d with only two input parameters. Thanks to Jon Preston for noticing me.

07 Dec 2011 1.4

The existing files of the Geodetic toolbox hove been completely revised and many additional functionality has been added.

22 Dec 2011 1.6

Some minor changes in the existing functions were made. Additional transformation types have been added.

24 Jul 2012 1.7

Update the coding error in d2affinetrafo.m Michael Schmitt mentioned on June 18th, 2012. Thanks, Michael!

30 Oct 2012 1.8

A missing default was fixed in cart2ell.m
Thanks to Johannes Schönberger to notice me.

07 Jan 2013 1.9

In itrstrafo.m there was a mistyping of two variable names which have been corrected. Additionally, a set of transformation parameters from IGS2005 to IGS2008 has been added in Trafo_ITRF.mat

07 May 2013 1.10

There were two small bugs in helmertprojective3d.m which threw errors.

11 Nov 2013 1.11

Molodensky transformation added due to a user request. Minor bug in deg2dms fixed. In Matlab 2013b, helmert adjustments with worse normal equation matrices diverged while they converged in earlier versions. I changed that functions to overcome that.

03 Apr 2014 1.12

Minor changes in the background document

24 Jun 2014 1.13

Fixed some minor warning issues.

20 Apr 2015 1.14

Andrea Pinna of the University of Cagliari sent me improvements of the helmert- and helmertaffine-functions which allowed to save a lot of memory and time. I am glad he offered me to update my toolbox with his improvements. Thanks!

07 May 2015 1.15

Small Bug in helmert3d due to the latest chenges "x0 is not found" .

26 May 2015 1.16

A mistyping was found in Helmert affine 3D transformation which is corerected now.

20 Feb 2016 1.17

Two bugs were found in helmert3D's parameter adjustment.
Until the update, calculation took too many iteration steps and finally lead to resulats with errors ~ 1e-14.
Thanks to Stefan Pegritz for the bug report!

Contact us