<p>I want to say that's a <a href="https://en.wikipedia.org/wiki/Mollweide_projection" rel="nofollow noreferrer">Mollweide projection</a>. I know that they're pretty common in astronomy; many images of the CMB use them. I was actually working with one recently. Given latitude $\varphi$ and longitude $\lambda$, the $x$ and $y$ coordinates of an object are
$$x=R\frac{2\sqrt{2}}{\pi}(\lambda-\lambda_0)\cos\theta,\quad y=R\sqrt{2}\sin\theta$$
for projecting from a sphere of radius $R$. $\theta$ is the solution to
$$2\theta+\sin2\theta=\pi\sin\varphi$$
Similar images can be found <a href="http://wise.ssl.berkeley.edu/sky_coverage.html" rel="nofollow noreferrer">here</a> (labeled as Mollweide projections), which are of the same shape and proportions:</p>

<p><a href="https://i.sstatic.net/TUupm.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/TUupm.png" alt="enter image description here"></a></p>

<p>Matplotlib will let you do Mollweide projections; a nice tutorial can be found <a href="http://balbuceosastropy.blogspot.com/2013/09/the-mollweide-projection.html" rel="nofollow noreferrer">here</a>. <a href="https://matplotlib.org/basemap/users/moll.html" rel="nofollow noreferrer">Basemap</a> is a possibility, although I haven't used it before. It has quite a few different built-in projections. There are some interesting features available in the different matplotlib implementations, and using the <a href="https://pypi.python.org/pypi/pyephem/" rel="nofollow noreferrer"><code>ephem</code></a> package, you can use astronomical data. That said, I've found that the transformations aren't that hard to implement by hand; I was able to get some basic projections done from scratch.</p>

CC BY-SA 3.0
2017-09-10T04:17:19.693Z
Excellent answer, thank you! It looks like solving for $\theta$ is the fun step, and a good exercise for those of us whose basic numerical techniques are a bit rusty ;-) But I'm thinking that the correct way to warp images is the inverse problem. For each pixel coordinate in the *destination image* you find the contributing pixels in the *source image* to interpolate, and in this direction $(x, y)\rightarrow(\lambda, \varphi)$ there's no need for Newton's method. But adding nice looking anti-aliased fixed width curves would still require solving for $\theta$.
uhoh
CC BY-SA 3.0
2017-09-10T03:42:32.340Z
2017-09-10T03:47:56.233Z
2017-09-10T03:47:56.233Z
HDE 226868
<p>I see this kind of projection of the celestial sphere into 2D frequently, usually with an image of the <a href="https://en.wikipedia.org/wiki/Cosmic_microwave_background" rel="nofollow noreferrer">milky way galaxy</a> or <a href="https://en.wikipedia.org/wiki/Milky_Way" rel="nofollow noreferrer">cosmic microwave background</a>. This particular image shows the path of visible transits of the inner solar system planets across the sun as seen from locations outside of the solar system from the Motherboard article <a href="https://motherboard.vice.com/en_us/article/gyy4eq/at-least-9-exoplanets-could-see-earth-with-present-day-human-technology" rel="nofollow noreferrer">At Least 9 Exoplanets Could See Earth With Present-Day Human Technology</a> which links to: R. Wells, K. Poppenhaeger, C. A. Watson, R. Heller; <em>Transit Visibility Zones of the Solar System Planets</em>, Monthly Notices of the Royal Astronomical Society, stx2077, <a href="https://doi.org/10.1093/mnras/stx2077" rel="nofollow noreferrer">https://doi.org/10.1093/mnras/stx2077</a></p>

<p><strong>Question:</strong> What is the 2D elliptical projection of the Celestial Sphere called, and how can I make one? Is there a python-friendly package, but more importantly, is there a <em>mathematical expression</em> for this transform?</p>

<p><a href="https://i.sstatic.net/iTtCu.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/iTtCu.png" alt="enter image description here"></a></p>

CC BY-SA 3.0
2017-09-10T03:45:31.767Z
@barrycarter bingo!
uhoh
CC BY-SA 4.0
2019-12-18T00:10:43.353Z
@barrycarter: You're probably right, but I'd like to point out that the Hammer projection (https://en.wikipedia.org/wiki/Hammer_projection ) and the Tobler projections (https://en.wikipedia.org/wiki/Tobler_hyperelliptical_projection )  are also elliptical or nearly-elliptical equal-area projections.
David Cary
<python><mathematics>
What is the 2D elliptical projection of the Celestial Sphere called, and how can I make one?
uhoh
# What is the 2D elliptical projection of the Celestial Sphere called, and how can I make one?

(Asked by: username_0 on 2017-09-10)

I see this kind of projection of the celestial sphere into 2D frequently, usually with an image of the [milky way galaxy](https://en.wikipedia.org/wiki/Cosmic_microwave_background) or [cosmic microwave background](https://en.wikipedia.org/wiki/Milky_Way). This particular image shows the path of visible transits of the inner solar system planets across the sun as seen from locations outside of the solar system from the Motherboard article [At Least 9 Exoplanets Could See Earth With Present-Day Human Technology](https://motherboard.vice.com/en_us/article/gyy4eq/at-least-9-exoplanets-could-see-earth-with-present-day-human-technology) which links to: R. Wells, K. Poppenhaeger, C. A. Watson, R. Heller; *Transit Visibility Zones of the Solar System Planets*, Monthly Notices of the Royal Astronomical Society, stx2077, <https://doi.org/10.1093/mnras/stx2077>

**Question:** What is the 2D elliptical projection of the Celestial Sphere called, and how can I make one? Is there a python-friendly package, but more importantly, is there a *mathematical expression* for this transform?

[![enter image description here](https://i.sstatic.net/iTtCu.png)](https://i.sstatic.net/iTtCu.png)

**Tags:** python, mathematics

> **Comments:**
> **username_0**: @barrycarter bingo!  
> **username_1**: @barrycarter: You're probably right, but I'd like to point out that the Hammer projection (https://en.wikipedia.org/wiki/Hammer_projection ) and the Tobler projections (https://en.wikipedia.org/wiki/Tobler_hyperelliptical_projection )  are also elliptical or nearly-elliptical equal-area projections.  

---

## 1 answers

### Answer by username_2 on 2017-09-10. Score: 4 | Accepted answer

I want to say that's a [Mollweide projection](https://en.wikipedia.org/wiki/Mollweide_projection). I know that they're pretty common in astronomy; many images of the CMB use them. I was actually working with one recently. Given latitude $\varphi$ and longitude $\lambda$, the $x$ and $y$ coordinates of an object are
$$x=R\frac{2\sqrt{2}}{\pi}(\lambda-\lambda\_0)\cos\theta,\quad y=R\sqrt{2}\sin\theta$$
for projecting from a sphere of radius $R$. $\theta$ is the solution to
$$2\theta+\sin2\theta=\pi\sin\varphi$$
Similar images can be found [here](http://wise.ssl.berkeley.edu/sky_coverage.html) (labeled as Mollweide projections), which are of the same shape and proportions:

[![enter image description here](https://i.sstatic.net/TUupm.png)](https://i.sstatic.net/TUupm.png)

Matplotlib will let you do Mollweide projections; a nice tutorial can be found [here](http://balbuceosastropy.blogspot.com/2013/09/the-mollweide-projection.html). [Basemap](https://matplotlib.org/basemap/users/moll.html) is a possibility, although I haven't used it before. It has quite a few different built-in projections. There are some interesting features available in the different matplotlib implementations, and using the [`ephem`](https://pypi.python.org/pypi/pyephem/) package, you can use astronomical data. That said, I've found that the transformations aren't that hard to implement by hand; I was able to get some basic projections done from scratch.

> **Comments:**
> **username_0**: Excellent answer, thank you! It looks like solving for $\theta$ is the fun step, and a good exercise for those of us whose basic numerical techniques are a bit rusty ;-) But I'm thinking that the correct way to warp images is the inverse problem. For each pixel coordinate in the *destination image* you find the contributing pixels in the *source image* to interpolate, and in this direction $(x, y)\rightarrow(\lambda, \varphi)$ there's no need for Newton's method. But adding nice looking anti-aliased fixed width curves would still require solving for $\theta$.  

---

