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

5 visualizzazioni (ultimi 30 giorni)
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: Drape Geoid Heights Over Topography
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?
Thanks for your help!

Risposta accettata

Ni Wi
Ni Wi il 23 Nov 2017
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)

Più risposte (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by