I’m interested in finding closed-form inverses for map projection equations in general (of course, this is not always possible). I’m hoping Mathematica can help me with some of the trickier ones.

As a practice run, I thought I would try and use Mathematica to invert Lambert’s Azimuthal Equal-Area Projection. There are of course closed-form inverse equations on MathWorld, but I’m wondering how I would go about finding these using Mathematica.

I’ve tried using Solve and Reduce, for example:

k = Sqrt[2/(1 + s1 Sin[y] + c1 Cos[y] Cos[x])]
Solve[{u, v} == {
  k Cos[y] Sin[x], 
  k (c1 Sin[y] - s1 Cos[y] Cos[x])
}, {x, y}]

But no luck so far. Perhaps I need to specify more constraints?

For example, I know that the longitude and latitude (x and y above) have:

-π ≤ x ≤ π
-π/2 ≤ y ≤ π/2

I wonder if eliminating variables might also help the solving routines.

  • Have you seen the help pages for Latitude and Longitude? A (minor modification of an) example from that page exhibits an unprojection: Through[{Latitude, Longitude}[GeoGridPosition[{-0.12605573,-0.0464294, 0}, "LambertConformalConic"]]]. – whuber Feb 16 '13 at 11:56
  • I'm interested in automatically finding closed-form inverse formulæ, given arbitrary forward projection equations, so I'm not sure that really helps me. But thanks anyway! – Jason Davies Feb 16 '13 at 12:33
  • I've clarified the wording of the question a bit, so it's clear what I'm trying to achieve. – Jason Davies Feb 16 '13 at 12:35
  • In most cases there's no such thing as closed-form inverse formulae for non-spherical datums, so I presume you mean to apply these equations only to spheres. See pubs.usgs.gov/pp/1395/report.pdf for details. Moreover, only the simpler projections have closed forms, so the problem does not generally have a solution. – whuber Feb 16 '13 at 12:40
  • 1
    Yes, I’m only dealing with spheres, so that should simplify things. I know there is no general solution, but I'd like to know how to solve the simplest ones using Mathematica. Lambert’s azimuthal equal-area seems relatively simple, yet as you can see I’ve failed so far to find the (already known) result using Solve or Reduce. – Jason Davies Feb 16 '13 at 12:45

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.