Plot data on a global map
22 ビュー (過去 30 日間)
古いコメントを表示
Hello,
I have 3D matrix of size (360,180,300). I need to plot this on a global map. 360 represents longitudes, 180 represents latitudes and 300 represents temperature at each coordinate. I can use the following to draw the map boundaries.
worldmap('world')
load coastlines
plotm(coastlat,coastlon)
Please help me with this plotting.
0 件のコメント
回答 (2 件)
Sulaymon Eshkabilov
2023 年 2 月 12 日
(1) Load your data
(2) Plot world map
(3) Hold on the plot figure
(4) plot your data on top of the world map. E.g.:
worldmap('world')
load coastlines
% World map plotted
plotm(coastlat,coastlon)
% Plot is held
hold on
% Load your data:
% E.g.:
X = coastlat(1:1800);
Y = coastlon(1:1800);
% Your data plotted on the top of the world map:
plotm(X, Y, 'r--', 'LineWidth',2)
0 件のコメント
Walter Roberson
2023 年 2 月 13 日
As discussed in https://www.mathworks.com/matlabcentral/answers/1910990-global-map-based-on-data-from-a-3d-matrix#answer_1169590 you have the problem that you have multiple datapoints (12 in that discussion, 300 here) for each latitude and longitude combination.
The suggestions I gave there:
- draw one plot for each layer of data; or
- contour each layer of data with hold on and a different color of line. This might be difficult to understand
Otherwise, you need to start considering doing some kind of volume visualization, which might be a bit tricky to overlay on a map. You could try something like volshow or https://www.mathworks.com/help/images/ref/volumeviewer-app.html but those will not overlay on a map. And volume visualization is... difficult... to understand unless you are looking at something like isosurfaces of equal rainfail.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Orange についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
