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);