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 have this Mollweide projection of the Earth circa 600 million years ago (http://jan.ucc.nau.edu/~rcb7/370moll.jpg).(1)

Mollweide projection of the earth

I want to map this onto a sphere. My results have big black splotches in the Pacific Ocean and the continents are distorted, because the code I used also mapped the black corners of the image to the sphere. I need to map just the central ellipse. What sort of code should I use? Perhaps I need to first convert the image to an equirectangular projection.

(1) Image credit: Ron Blakey, NAU Geology

share|improve this question
add comment

2 Answers 2

It might be better to start from the rectangular global maps that are available here and then use part of the method proposed by PlatoManiac.

This is the earth in early Devonian time:

earth map in early Devonian time

map = Import["http://jan.ucc.nau.edu/~rcb7/400marect.jpg"];
pic = SphericalPlot3D[1, {u, 0, Pi}, {v, 0, 2 Pi}, Mesh -> None, 
    TextureCoordinateFunction -> ({#5, 1 - #4} &), 
    PerformanceGoal -> "Quality", PlotStyle -> Directive[Texture[map]], 
    Lighting -> "Neutral", Axes -> False, RotationAction -> "Clip", 
    Boxed -> False]

There should be a way to transform your original image into an image that corresponds to an equirectangular projection by using ImageTransformation[].

share|improve this answer
add comment

As there is no conformal map to transform a elliptical shape into a rectangle. But one needs to have a rectangular map in order to use it as a texture on the globe.

In spite of this if you want to use the above image you need to colorize the black back ground similarly as the sea. Such a fairly realistic looking (but wrong) emulation can be the following

i = Import["http://jan.ucc.nau.edu/~rcb7/370moll.jpg"];
map = Colorize[(GeodesicDilation[MorphologicalBinarize[#, {0.35, Automatic}], #, 3] & [i]), 
ColorFunction -> "BlueGreenYellow"];
pic = SphericalPlot3D[1 , {u, 0, Pi}, {v, 0, 2 Pi}, Mesh -> None, 
       TextureCoordinateFunction -> ({#5, 1 - #4} &),PerformanceGoal -> "Quality", 
       PlotStyle -> Directive[Specularity[White, 10], Texture[map]], 
       Lighting -> "Neutral", Axes -> False, RotationAction -> "Clip", 
       Boxed -> False]

enter image description here

share|improve this answer
3  
I don't think that this approach is correct, you just colorized the parts of the 2D map before applying the texture on the sphere. –  VLC Oct 10 '12 at 9:33
    
There is no conformal map from a ellipse to a rectangle hence I tried this quick hack! Every digital texture image will be rectangular by default. –  PlatoManiac Oct 10 '12 at 9:59
add comment

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.