想象飞机在地形上的视线
这个例子展示了如何从地面位置计算和可视化飞机在地形上的视线可见度。首先,导入一个地区的地形数据,并将其应用到三维地理全球。然后,从地面位置到模拟飞行路径执行点对点能见度分析,并在三维地理地球仪上显示结果。最后,从飞行高度恒定的飞机对应的地面位置进行点到区域能见度分析,并在二维地理轴上显示结果。
使用视距分析的地对空场景,无障碍能见度是重要的,如雷达监视,通信和无人机路径规划。本例将分析应用于机场的雷达监视。
地形数据导入
指定用于数据分析和3d可视化的dted格式地形文件。该地形文件是从美国地质调查局(USGS)提供的“SRTM空洞填充”数据集下载的。
dtedfile =“n39_w106_3arc_v2.dt1”;归因=SRTM 3弧秒分辨率。数据来自美国地质调查局。”;
将DTED文件数据作为数组和地理光栅引用对象导入到工作区中,并指定返回类型为double,以便数据与所有分析函数一起工作。
[Zterrain, Rterrain] = readgeoraster (dtedfile,“OutputType”,“替身”);
通过访问地理光栅参考对象的属性,查看地形数据的地理界限和样本分辨率。该文件的限制对应于美国科罗拉多州博尔德附近的地区,分辨率对应于DTED级别1格式,该格式的样本分辨率为3弧秒,或约90米。
latlim = Rterrain.LatitudeLimits;lonlim = Rterrain.LongitudeLimits;latspc = Rterrain.SampleSpacingInLatitude;lonspc = Rterrain.SampleSpacingInLongitude;disp (“地形的纬度界限:”mat2str(latlim) +换行符+...“地形经度界限:”mat2str(lonlim) +换行符+...“纬度地形分辨率:”+ latspc * 3600 +“弧秒”+换行符+...“经度地形分辨率:”+ lonspc * 3600 +“弧秒”)
地形纬度限制:[39 40]地形经度限制:[-106 -105]纬度地形分辨率:3角秒经度地形分辨率:3角秒
在3-D地图上可视化飞机轨迹视线
创建地理地球仪与自定义地形
使用DTED文件添加自定义数据,以便与3d可视化一起使用。
addCustomTerrain (“southboulder”dtedfile,“归因”归因)
使用新的地理球体指定自定义地形。
无花果= uifigure;g = geoglobe(无花果,“地形”,“southboulder”);
查看雷达地面位置
定义落基山大都会机场的雷达地面位置。雷达安装在离地面10米高的塔上。雷达高度是地面高度和雷达塔高度的总和,参考平均海平面。
rdrlat = 39.913756;rdrlon = -105.118062;rdrtowerht = 10;Rdralt = 1717 + rdrtowerht;
在地理地球仪上绘制雷达位置。
geoplot3 (g, rdrlat rdrlon rdralt,“有限公司”,...“线宽”6...“MarkerSize”, 1)
模拟飞机轨迹
模拟一架飞机在群山上空盘旋的轨迹。
确定一架盘旋的飞机的中心位置。
tlat0 = 39.80384;tlon0 = -105.49916;tht0 = 3000;
使用东-北-上(ENU)笛卡尔坐标定义飞机的轨迹路径点。指定一条半径为5公里(5000米)的曲线,在1.5转的范围内垂直偏移量为1公里(1000米)。然后,将ENU坐标转换为引用WGS84椭球的大地坐标。
阿兹= 1:540;r = 5000;(X, Y) = pol2cart(函数(az), r);Z = linspace(0、1000、元素个数(az));wgs84 = wgs84Ellipsoid;[tlat, tlon,年中]= enu2geodetic (X, Y, Z, tlat0 tlon0, tht0, wgs84);
查看飞机在地形上的轨迹
在地理地球仪上画出飞机的轨迹。默认视图,或相机位置,是头顶和方向向下。
(g,“上”) traj = geoplot3(g,tlat,tlon,tht,“y”,...“HeightReference”,“椭球体”,...“线宽”3);
通过改变相机位置和旋转角度,从远处查看3d地形和雷达位置。
坎波斯(g, 39.77114, -105.62662, 6670) camheading (g, 70) campitch (g, -12)
用飞机轨迹计算视线能见度
方法计算视线可见性los2
函数和DTED数据。
的los2
函数支持正交高度(高于平均海平面的高度)或高于地面的高度。将飞机轨迹高度由椭球高度转换为正交高度。然后,计算从机场雷达位置到每个飞机轨迹路径点的视线,并将结果转换为一个逻辑数组。
numwaypts =元素个数(tlat);numwaypts isvis = 0 (1);Talt = THT - egm96geoid(tlat,tlon);为1:numwaypts isvis(k) = los2(Zterrain,Rterrain,rdrlat,rdrlon,tlat(k),tlon(k),rdralt,talt(k),“火星科学实验室”,“火星科学实验室”);结束isvis =逻辑(isvis);
请注意,los2
计算直线能见度假设数据是参考一个球形的地球,而数据实际上是参考WGS84椭球,因此可能有微小的差异。视线计算也对应于光学视线,不考虑通过大气的折射。
可视化地形上的视线能见度
绘制视线能见度。在从机场可以看到飞机的地方使用绿色标记,在不可见的地方使用洋红色标记。
删除(traj) geoplot3 (g, tlat (isvis) tlon (isvis),这(isvis),“og”,...“HeightReference”,“椭球体”,...“线宽”2,...“MarkerSize”, 1) geoplot3 (g, tlat (~ isvis) tlon (~ isvis),这(~ isvis),“唵”,...“HeightReference”,“椭球体”,...“线宽”2,...“MarkerSize”, 1)
从机场的角度查看视距图。获得距离雷达位置东900米、北200米、上100米位置的大地坐标。然后,设置相机的位置和旋转角度。绿色标记出现在视野中,但品红标记被地形完全或部分阻挡。
RDRHT = rdralt + egm96 geooid (rdrlat,rdrlon);[camlat, camlon camht] = enu2geodetic(900200100、rdrlat rdrlon rdrht, wgs84);坎波斯(g, camlat camlon camht) camheading (g, -110) campitch (g, 0)
在2-D地图上可视化飞机视线能见度等高线
前几节进行了从雷达位置到飞机轨迹的点对点视距分析和可视化。现在从相同的雷达位置在地形区域执行点到区域的视距分析和可视化。该可视化显示了飞机在恒定高度飞行时的能见度边缘。
在二维地图上绘制雷达位置和地形界限
用2-D地形图在新图中绘制雷达位置。
图geoplot (rdrlat rdrlon,“有限公司”,...“线宽”6...“MarkerSize”3,...“DisplayName”,“雷达位置”) geobasemap地形甘氨胆酸gx =;gx。InnerPosition = gx.OuterPosition;
在地图上以矩形的形式显示自定义地形的范围。
latmin = latlim (1);latmax = latlim (2);lonmin = lonlim (1);lonmax = lonlim (2);持有在Geoplot ([latmin latmin latmax latmax latmax latmin],[lonmin lonmax lonmin lonmin],...“线宽”, 1...“颜色”,“k”,...“DisplayName”,“地形限制”)
在西北角显示一个图例。
传奇(“位置”,“西北”)
绘制飞机在恒定高度飞行的能见度等高线
指定飞机在平均海平面以上的三个高度。对于每一个高度:
使用雷达位置作为观察者计算视图。视图定义了具有视线可见性的区域。
通过从视图数据中计算等值线,找到飞机可见性的边缘。
删除小的轮廓段。
在地理轴上绘制等高线。
Tgtalts = [3000 4000 5000];minVertices = 10;cfig =图(“可见”,“关闭”);使用不可见的图形抑制等高线图cax =轴(“父”, cfig);为(Zterrain,Rterrain,rdrlat,rdrlon,rdralt,tgtalt,“火星科学实验室”,“火星科学实验室”);C = contourm (vis、Rterrain“LevelList”, 1“父”, cax);clat = C (2);:克隆= C (1);clats = [];克隆= [];k = 1;而k < size(C,2) numVertices = clat(k);如果numVertices > minVertices不要绘制小段clats = [clats clat(k+1:k+numVertices) NaN];% #好< AGROW >clons = [clons clon(k+1:k+numVertices) NaN];% #好< AGROW >结束k = k + numVertices + 1;结束geoplot (gx clats,克隆,“线宽”2,...“DisplayName”,飞机:“字符串(tgtalt) + +“m”);结束
这些轮廓主要出现在雷达位置的西部,越过山脉。等高线不会出现在其他方向,因为在这些方向的地形数据范围内,能见度不受地形的限制。
如果雷达受到视距能见度的限制,则等高线对应不同高度的雷达覆盖区域,其中离雷达最近的等高线对应飞行在3000米的飞机的雷达覆盖区域,最远的等高线对应飞行在5000米的飞机的雷达覆盖区域。
与los2
,视域范围
函数计算视距能见度,假设数据引用的是球形地球,而数据实际上引用的是WGS84椭球体,因此可能有微小的差异。视线计算也对应于光学视线,不考虑通过大气的折射。
清理
通过关闭地理地球仪并删除导入的地形数据进行清理。
如果isvalid(图)关闭(图)结束removeCustomTerrain (“southboulder”)