这个例子展示了如何从一个本地东北向上(ENU)坐标系统的3-D特征开始,然后转换并将其与以地球为中心、地球固定(ECEF)坐标的地球仪显示相结合。
使用1980年大地基准系统(GRS80),以公里为单位工作。将本地系统的起源放在美国华盛顿特区附近。
grs80 = referenceEllipsoid (“grs80”,“公里”);domeRadius = 3000;%公里domeLat = 39;%度domeLon = -77;%度domeAlt = 0;%公里
本地ENU系统是根据一个大地参考点定义的,在本例中指定为(domeLat
,domeLon
,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)轴平等的
使用enu2ecef
功能将圆顶从本地ENU转换为ECEF系统,基于grs80参考椭球。它应用了三维平移和旋转。注意半球是如何倾斜的,它的中心是如何从原点移动数千公里的。
[xECEF, yECEF zECEF]...= enu2ecef (xEast yNorth、z上domeLat, domeLon, domeAlt, grs80);冲浪(xECEF yECEF zECEF,“FaceColor”,“黄色”,“FaceAlpha”, 0.5)轴平等的
使用。构造一个基本的地球仪显示axesm
和全球
.
图(“渲染”,“opengl”) ax = axesm(“全球”,“大地水准面”grs80,“网格”,“上”,...“GLineWidth”, 1“GLineStyle”,“-”,...“Gcolor”(0.9 0.9 0.1),“Galtitude”, 100);斧子。Position = [0 0 1 1];轴平等的从视图(3)
添加低分辨率的全球地形、海岸线和河流到全球。
负载topo60cgeoshow (topo60c topo60cR,“DisplayType”,“texturemap”) demcmap(topo60c) land = readgeotable(“landareas.shp”);geoshow(土地,“FaceColor”,“没有”,“EdgeColor”,“黑色”河流= readgeotable(“worldrivers.shp”);geoshow(河流、“颜色”,“蓝色”)
将ECEF版本的圆顶作为半透明网格添加到球体轴上。
冲浪(xECEF yECEF zECEF,“FaceColor”,“黄色”,“FaceAlpha”, 0.5)
您可以通过交互旋转MATLAB®图形中的轴线从不同角度查看圆顶和球体。
感谢Edward J. Mayhew, Jr.提供了关于“雷达圆顶”的技术背景,并提请我们注意使用Mapping Toolbox™将它们可视化的问题。