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

4 visualizaciones (últimos 30 días)
Ni Wi
Ni Wi el 23 de Nov. de 2017
Respondida: Ni Wi el 23 de Nov. de 2017
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!

Respuesta aceptada

Ni Wi
Ni Wi el 23 de Nov. de 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)

Más respuestas (0)

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by