4.57143

4.6 | 7 ratings Rate this file 201 downloads (last 30 days) File Size: 34.53 KB File ID: #15285

Geodetic Toolbox

by Mike Craymer

 

13 Jun 2007 (Updated 31 May 2009)

BSD License  

Toolbox for angle, coordinate and date conversions and transformations. Version 2.92a.

Download Now | Watch this File

File Information
Description

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. 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  
   
Coordinate Transformations  
  refell - Reference ellipsoid definition  
  ellradii - Various radii of curvature  
  cct2clg - Conventional terrestrial to local geodetic cov. matrix  
  clg2cct - Local geodetic to conventional terrestrial cov. matrix  
  ct2lg - Conventional terrestrial (ECEF) to local geodetic (NEU)  
  dg2lg - Differences in Geodetic (lat,lon) to local geodetic (NEU)  
  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  
  jd2yr - Julian date to year & decimal year  
  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  
   
Miscellaneous  
  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  
 
Most recent version can be found at <ftp://geod.nrcan.gc.ca/pub/GSD/craymer/software/matlab/geodetic/>.

Acknowledgements
This submission has inspired the following:
Equinoxes and Solstices
MATLAB release MATLAB 7.0.4 (R14SP2)
Zip File Content  
Other Files
geodetic/.DS_Store,
geodetic/cal2jd.m,
geodetic/cct2clg.m,
geodetic/clg2cct.m,
geodetic/Contents.m,
geodetic/ct2lg.m,
geodetic/dates.m,
geodetic/dates_old.m,
geodetic/deg2rad.m,
geodetic/dg2lg.m,
geodetic/direct.m,
geodetic/DirInv.m,
geodetic/DirProb.m,
geodetic/Dist3D.m,
geodetic/dms2deg.m,
geodetic/dms2rad.m,
geodetic/doy2jd.m,
geodetic/ell2utm.m,
geodetic/ell2xyz.m,
geodetic/ellradii.m,
geodetic/errell2.m,
geodetic/errell3.m,
geodetic/findfixed.m,
geodetic/gps2jd.m,
geodetic/inverse.m,
geodetic/InvProb.m,
geodetic/jd2cal.m,
geodetic/jd2dow.m,
geodetic/jd2doy.m,
geodetic/jd2gps.m,
geodetic/jd2yr.m,
geodetic/lg2ct.m,
geodetic/lg2dg.m,
geodetic/plterrel.m,
geodetic/pltmap.m,
geodetic/pltnet.m,
geodetic/PltNetEl.m,
geodetic/rad2deg.m,
geodetic/rad2dms.m,
geodetic/rad2sec.m,
geodetic/refell.m,
geodetic/rotct2lg.m,
geodetic/rotlg2ct.m,
geodetic/sec2rad.m,
geodetic/simil.m,
geodetic/sph2xyz.m,
geodetic/ToUTM.m,
geodetic/txyz2ell.m,
geodetic/xyz2ell.m,
geodetic/xyz2ell2.m,
geodetic/xyz2ell3.m,
geodetic/xyz2sph.m,
geodetic/yr2jd.m,
license.txt
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (10)
15 Jun 2007 John D'Errico This seems pretty good from what I checked. There are many conversions in here.  
 
A couple of minor points. I notice that there is no error checking. For example, in ellradii one must provide an axis length and eccentricity (squared). But there are no checks on the proper number of parameters or even on the sign of the eccentricity.  
 
In dms2deg, I noticed one interesting feature. Converting from 32 degrees, 12 minutes, -3 seconds, results in a degree prediction of:  
 
dms2deg([32 12 -3])  
ans =  
      -32.201  
 
Overall, its still pretty good.
28 Jun 2007 Nice Work Nice work
05 Oct 2007 Ali Ebrahimi  
25 Feb 2008 Jagkrich A.warangkul Thanks
01 Mar 2008 Ray Borough Very Useful
09 Jul 2008 Gene Newton Thank you.
11 Sep 2008 jaime torres gracias
27 Jan 2009 Christopher under matlab which file do i put this in so that it is being used?
18 Feb 2009 Sebastian Hölz There is a potential bug in function ell2UTM, which may lead to wrong results in the calculated northing, if the funciton is called with a vector containing coordinates from both southern and northern hemisphere. Change lines 23-27, which read ... 
 
if lat>=0 
  No=0;  
else 
  No=10000000;  
end 
 
to ... 
 
No(size(lat))=0; % False northing (north) 
No(lat<0) = 1e7; % False northing (south) 
 
Sebastian
24 Feb 2009 Mike Craymer I corrected the bug for vector and array input to function ell2utm per Sebastian Holz's comments and posted a new version 2.91. Unfortunately, the fix only worked for row vectors. I've corrected it again in version 2.92 and tested it this time to make sure it works. Sorry for any problems this may have caused. In addition to error checking, I'll consider adding array input to all functions in the next major release (this Summer I hope).
Please login to add a comment or rating.
Updates
18 Feb 2009 Corrected ell2utm function for mixed north and south latitudes. Thanks to Sebastian Holz for pointing out the error and providing a fix.
24 Feb 2009 Corrected correction to ell2utm function in v2.91 (and tested it this time!).
31 May 2009 Added Matlab File Exchange BSD licensing. No changes to code since v2.92.
31 May 2009 Added Matlab File Exchange BSD licensing. No changes to code since v2.92.
Tag Activity for this File
Tag Applied By Date/Time
geodesy Mike Craymer 22 Oct 2008 09:15:20
geodetic Mike Craymer 22 Oct 2008 09:15:20
angle Mike Craymer 22 Oct 2008 09:15:20
date Mike Craymer 22 Oct 2008 09:15:20
julian Mike Craymer 22 Oct 2008 09:15:20
gps week Mike Craymer 22 Oct 2008 09:15:20
coordinate Mike Craymer 22 Oct 2008 09:15:20
coordinates Mike Craymer 18 Feb 2009 12:57:18
statistics Mike Craymer 18 Feb 2009 12:57:18
mathematics Mike Craymer 18 Feb 2009 12:57:18
measurement Mike Craymer 18 Feb 2009 12:57:18
optimization Mike Craymer 18 Feb 2009 12:57:18
aerospace Mike Craymer 18 Feb 2009 12:57:18
gps Mike Craymer 01 Jun 2009 09:57:52
earth science Mike Craymer 01 Jun 2009 09:57:52
geomatics Mike Craymer 01 Jun 2009 09:57:52
statistics surveying Mike Craymer 01 Jun 2009 09:57:52

Public Submission Policy

NOTICE: Any content you submit to MATLAB Central, including personal information, is not subject to the protections which may be afforded information collected under other sections of The MathWorks, Inc. Web site. You are entirely responsible for all content that you upload, post, e-mail, transmit or otherwise make available via MATLAB Central. The MathWorks does not control the content posted by visitors to MATLAB Central and, does not guarantee the accuracy, integrity, or quality of such content. Under no circumstances will The MathWorks be liable in any way for any content not authored by The MathWorks, or any loss or damage of any kind incurred as a result of the use of any content posted, e-mailed, transmitted or otherwise made available via MATLAB Central. Read the complete Disclaimer prior to use.

Contact us at files@mathworks.com