主要内容

1996年地球位势模型大地水准面高度的可视化

这个例子展示了如何使用航天工具箱软件的EGM96地球位势模型计算地球大地水准面高度。它还展示了如何将等高线地图叠加在地球地图上的结果可视化。需要使用Mapping Toolbox™和万博1manbetxSimulink®3D Animation™来生成可视化效果。

1996年地球位势模型的数值生成

为了实现EGM96地球位势模型,请使用geoidheight函数。

使用以下代码生成260281个数据点,用于计算地球大地水准面高度的值geoidheight.为了减少计算开销,本例包含一个包含此数据的mat文件。

设置度数之间的增量量gridDegInc = 0.5;%度用于纬度扫描的经度值(以度为单位)。lon = -180:gridDegInc:180;%度%要扫描的大地纬度值。geod_lat = -90:gridDegInc:90;%度遍历每个纬度数组的经度值-90:90。lonIdx = size(lon,2):-1:1经度必须与纬度数组的维度相同lon_temp = lon(lonIdx)*ones(1, nummel (geod_lat));%度geoidResults(:,lonIdx) = geoidheight(geod_lat,lon_temp,“没有”);结束

加载大地水准面数据文件和海岸数据

geoidFileName =“GeoidResults_05deg_180.mat”;geoidData = load(geoidFileName);海岸=负荷(“coastlines.mat”);

大地水准面高度二维图

创建2-D图使用meshm。

h2D =图;集(h2D,“位置”,[20 75 700 600],“工具栏”“图”);

将大地水准面高度映射到地球上的纬度/lon的参考矩阵。

RRR = geoorefcells ([- 90,90], [-180, 180], size(geoidData.geoidResults));ast2DGeoidPlot(存款准备金率、geoidData.geoidResults海岸,geoidData.gridDegInc)

使用VR画布查看大地水准面高度。

www2D = vrworld(“astGeoidHeights.wrl”);打开(www2D)

实际大地水准面高度供参考。

geoidGrid = vrnode(www2D,“EGM96_Grid”);actualHeights = getfield(geoidGrid,“高度”);% #好< GFLD >

将滑块控件的高度初始化为0。

geoidGrid。height = 0*实际高度;

大小画布绘图和设置参数。

geoidcanvas2D = vr.canvas(www2D,“父”h2D,...抗锯齿的“上”“NavSpeed”“veryslow”...“NavMode”“检查”“单位”“归一化”...“观点”“视角”“位置”,(。15.04 . 7.42]);

创建滑块。

滑= astGeoidSlider (geoidcanvas2D);

{

大地水准面高度三维图

h3D =图形;集(h3D,“位置”,[20 75 700 600]);

设置坐标轴。

Hmapaxis = axesm (“全球”“网格”“上”);集(hmapaxis,“位置”,(。1 .5 .8 .4])视图(85,0)轴

在三维地球仪上绘制数据。

meshm (geoidData.geoidResults,存款准备金率)

图地块轮廓。

plotm (coast.coastlat coast.coastlon,“颜色”“k”) colormap (“喷气机”);

图标题。

标题({“EGM96大地水准面高度”;[“网格增量:”num2str (geoidData.gridDegInc),度;单位:米colorbar]});

三维地球仪:使用VR画布的大地水准面高度。

www3D = vrworld(“astGeoidSphere.wrl”);打开(www3D)

位置画布。

geoidcanvas3D = vr.canvas(www3D,“父”h3D,...抗锯齿的“上”“NavSpeed”“veryslow”...“NavMode”“检查”“单位”“归一化”...“位置”,(。15.04 .7 .4]);

{

vrdrawnow;

清理

关闭(h2D h3D)关闭(www2D);密切(www3D);删除(www2D);删除(www3D);