主要内容

绘制一个三维圆顶作为一个网格覆盖一个球体

这个例子展示了如何从一个本地东北向上(ENU)坐标系统的3-D特征开始,然后转换并将其与以地球为中心、地球固定(ECEF)坐标的地球仪显示相结合。

步骤1:设置自定义参数

使用1980年大地基准系统(GRS80),以公里为单位工作。将本地系统的起源放在美国华盛顿特区附近。

grs80 = referenceEllipsoid (“grs80”“公里”);domeRadius = 3000;%公里domeLat = 39;%度domeLon = -77;%度domeAlt = 0;%公里

步骤2:在当地的东北方坐标建造圆顶

本地ENU系统是根据一个大地参考点定义的,在本例中指定为(domeLatdomeLon,domeAlt).它是一个三维笛卡尔系统,其中正x轴指向东方,正y轴指向北方,z轴垂直于参考椭球面向上。

在本例中,三维特征是z >= 0半空间中半径为3000公里的一个半球。假设,这个半球可以把空间的体积包围在理想的雷达系统的范围内,从地平线到天顶,在所有方位角都有统一的覆盖。像这样的空间体积,当代表有效的监视覆盖区域时,有时被非正式地称为“雷达圆顶”。

一个快速构建坐标阵列勾勒出封闭半球穹丘的方法是,从一个单位球体开始,放大半径,然后折叠下半球。如果你把它做成半透明的,就更容易想象了FaceAlpha在这里是0.5。

[x, y, z] =球体(20);xEast = domeRadius * x;yNorth = domeRadius * y;zUp = domeRadius * z;zUp(zUp < 0) = 0;图(“渲染”“opengl”)冲浪(xEast yNorth z上,“FaceColor”“黄色”“FaceAlpha”, 0.5)轴平等的

图中包含一个轴对象。axis对象包含一个类型为surface的对象。

第三步:将圆顶转换为以地球为中心的地球固定(ECEF)系统

使用enu2ecef功能将圆顶从本地ENU转换为ECEF系统,基于grs80参考椭球。它应用了三维平移和旋转。注意半球是如何倾斜的,它的中心是如何从原点移动数千公里的。

[xECEF, yECEF zECEF]...= enu2ecef (xEast yNorth、z上domeLat, domeLon, domeAlt, grs80);冲浪(xECEF yECEF zECEF,“FaceColor”“黄色”“FaceAlpha”, 0.5)轴平等的

图中包含一个轴对象。axis对象包含一个类型为surface的对象。

第四步:构建一个地球仪

使用。构造一个基本的地球仪显示axesm全球

图(“渲染”“opengl”) ax = axesm(“全球”“大地水准面”grs80,“网格”“上”...“GLineWidth”, 1“GLineStyle”“-”...“Gcolor”(0.9 0.9 0.1),“Galtitude”, 100);斧子。Position = [0 0 1 1];轴平等的视图(3)

步骤5:添加各种全球地图数据

添加低分辨率的全球地形、海岸线和河流到全球。

负载topo60cgeoshow (topo60c topo60cR,“DisplayType”“texturemap”) demcmap(topo60c) land = readgeotable(“landareas.shp”);geoshow(土地,“FaceColor”“没有”“EdgeColor”“黑色”河流= readgeotable(“worldrivers.shp”);geoshow(河流、“颜色”“蓝色”

步骤6:将圆顶添加到地球仪中

将ECEF版本的圆顶作为半透明网格添加到球体轴上。

冲浪(xECEF yECEF zECEF,“FaceColor”“黄色”“FaceAlpha”, 0.5)

您可以通过交互旋转MATLAB®图形中的轴线从不同角度查看圆顶和球体。

信贷

感谢Edward J. Mayhew, Jr.提供了关于“雷达圆顶”的技术背景,并提请我们注意使用Mapping Toolbox™将它们可视化的问题。