How to plot Earth and drape a mesh with elevation data over it?

Illustration
Emmitt - 2020-10-28T10:30:34+00:00
Question: How to plot Earth and drape a mesh with elevation data over it?

Hello, I need a simple Earth model, but with correct elevation data. With it I want to check whether visual contact between two points is possible. (i.e. is there a mountain in view or not?) With the help of the documentation I created this code: Earth = wgs84Ellipsoid; figure('Renderer','opengl') ax = axesm('globe','Geoid',Earth,'Grid','off'); axis equal off view(3) load topo geoshow(topo,topolegend,'DisplayType','texturemap') demcmap(topo) land = shaperead('landareas','UseGeoCoords',true); plotm([land.Lat],[land.Lon],'Color','black') I got the hint with meshm from this example: load geoid meshm(geoid,geoidrefvec,size(geoid),topo) However, adding these two lines seems to be not enough. I do not get errors, but the coloring is weird. Question: How can I drape the elevation data over an ellipsoid? And is there a easy way to check whether a line between two points is intersecting the mesh or not?

Expert Answer

Profile picture of Neeta Dsouza Neeta Dsouza answered . 2025-11-20

Dear future reader, this is the solution I found:

Earth = wgs84Ellipsoid;
axesm('globe','Grid','on','GlineStyle','-','Geoid',Earth)
view(3)
axis off

load topo

topo = topo / (1e-2); % The elevation can be exaggerated here 
meshm(topo,topolegend,size(topo),topo);
demcmap(topo)


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!