--- referenceEllipsoid.m 2018-09-11 03:45:16.000000000 +0000 +++ referenceEllipsoid_new.m 2018-09-11 04:07:36.000000000 +0000 @@ -113,41 +113,97 @@ switch lower (name) ## Semimajor axis and Inverse flattening from - ## USER’s HANDBOOK ON DATUM TRANSFORMATIONS INVOLVING WGS 84 + ## USER's HANDBOOK ON DATUM TRANSFORMATIONS INVOLVING WGS 84 ## 3rd Edition, July 2003, (Last correction August 2008), ## Special Publication No. 60 ## Codenames are from https://epsg.io/ + + case {"airy30", "7001"} + Code = 7001; + Name = "Airy 1830"; + SemimajorAxis = 6377563.396; + InverseFlattening = 299.3249646; + + case {"airy49", "7002"} + Code = 7002; + Name = "Airy Modified 1849"; + SemimajorAxis = 6377340.189; + InverseFlattening = 299.3249646; + + case {"australia", "7003"} + Code = 7003; + Name = "Australian National"; + SemimajorAxis = 6378160; + InverseFlattening = 298.25; + + case {"bessel", "7004"} + Code = 7004; + Name = "Bessel 1841"; + SemimajorAxis = 6377397.155; + InverseFlattening = 299.1528128; + + case {"clarke66", "7008"} + Code = 7008; + Name = "Clarke 1866"; + SemimajorAxis = 6378206.4; + InverseFlattening = 294.9786982; + + case {"clarke80", "7012"} + Code = 7012; + Name = "Bessel 1880"; + SemimajorAxis = 6378249.145; + InverseFlattening = 293.465; + + case {"everest", "7015"} + Code = 7015; + Name = "Everest 1830"; + SemimajorAxis = 6377276.34518; + InverseFlattening = 300.8017; + case {"grs80", "1980", "7019"} - Ell.Code = 7019; - Ell.Name = "Geodetic Reference System 1980"; + Code = 7019; + Name = "Geodetic Reference System 1980"; SemimajorAxis = 6378137; InverseFlattening = 298.257222101; case {"int24" ,"1924", "7022"} - Ell.Code = 7022; - Ell.Name = "International 1924"; + Code = 7022; + Name = "International 1924"; SemimajorAxis = 6378388; InverseFlattening = 297; + case {"kras40" ,"krasovsky", "7024"} + Code = 7024; + Name = "Krasovsky 1940"; + SemimajorAxis = 6378245; + InverseFlattening = 298.3; + case {"wgs84", "1984", "7030"} - Ell.Code = 7030; - Ell.Name = "World Geodetic System 1984"; + Code = 7030; + Name = "World Geodetic System 1984"; SemimajorAxis = 6378137; InverseFlattening = 298.2572235630; + case {"wgs72", "1972", "7043"} + Code = 7043; + Name = "World Geodetic System 1972"; + SemimajorAxis = 6378135; + InverseFlattening = 298.26; otherwise error (" Ellipsoid %s has not been implemented", name) endswitch ## Calculations - Ell = param_calc (SemimajorAxis, InverseFlattening, unit); + Ell = param_calc (Code, Name, SemimajorAxis, InverseFlattening, unit); endfunction -function ell = param_calc (SemimajorAxis, InvF, unit) +function ell = param_calc (Code, Name, SemimajorAxis, InvF, unit) + ell.Code = Code; + ell.Name = Name; ratio = unitsratio (unit, "Meters"); ell.LengthUnit = unit; Major = SemimajorAxis * ratio;