Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I am given geographic data in the form of Gauss-Krüger-Coordinates and would like to calculate distances with them and convert them to longitude/latitude coordinates in another system for plotting (e.g. WGS84).

Gauss-Krüger-Coordinates are essentially like UTM-coordinates based upon a transversal Mercator projection where positions are indicated by a Right-value (East-value in UTM; y-coordinate in the geodetic coordinate system) and a High-value (North-value in UTM; x-coordinate int the geodetic coordinate system)

Far from being an expert in geodesy the way I understand it Mathematica's geodetic functions allow entering coordinates as GeoPosition, as GeoPositionENU or as GeoGridPosition. GeoGridPosition essentially will reference to a position on a projection so probably should be the way the Gauss-Krüger-Coordinates are entered, but I am not so sure. Mathematica does not seem to know Gauss-Krüger-Projection (not listed among GeoProjectionData[]) and I do not know which parameters to use for Gauss-Krüger and how best to do this. Thus:

How can I enter the Gauss-Krüger-Coordinates into Mathematica so they can be used for distance-calculations and conversions using Mathematica's geodetic functions?

share|improve this question
    
For more information on coordinate reference systems and conversions one might turn to epsg.org where guidance on conversions and formulas is given under epsg.org/guides/G7-2.html. –  gwr May 22 '12 at 10:39

1 Answer 1

up vote 4 down vote accepted

With a little help from other sources and the links given as a comment to my question I came up with a solution. Essentially Gauss-Krüger is a variant of the Transversal Mercator projection so this projection can be used and made to fit the Gauss-Krüger specialties:

gaussKruegerPosition[{right_Integer,high_Integer},centralMeridian_Integer,
falseEasting_Integer]:=

  GeoGridPosition[
    {right-falseEasting-centralMeridian/3*10^6,high,0},
    {"TransverseMercator","Centering"-> {0,centralMeridian},"ReferenceModel"->"Bessel1841"}
  ];

This short function will convert Gauss-Krüger-Positions into a valid Mathematica position which can then be converted using GeoPosition or referenced for calculation of distances using GeoDistance[pos1, pos2].

Here in Germany the central Meridians will be spaced 3° apart and one can recognize this in the first digit of the Right-value of the coordinates which has to be multiplied by 3 to find the central Meridian.

In order to avoid negative Right-values a False Easting is usually given; in Germany it is 500 000.

share|improve this answer
    
As a side note: For some reason Mathematica seems not to be able to convert the gaussKruegerPosition into a WGS84-Position. GeoPosition[ gaussKruegerPosition[{3513495, 5405227}, 9, 500000], "WGS84"] returns the error "GeoPosition::invdtm:Unknown geodetic datum "WGS84". Use GeodesyData["Datum"] for a list of available named datums." This is strange as "WGS84" is of course explicitly listed under GeodesyData[] and accepted for GeoPositions. A bug? –  gwr May 22 '12 at 14:30
    
Another observation is that it seems people at Wolfram Research have gotten the axes wrong. In geodesy as far as I have learned from web-research the x-axis should point north and the y-axis should point east. Have they missed that? –  gwr May 23 '12 at 7:37

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.