主要内容

可视化飞机在地形上的视线

这个例子展示了如何计算和可视化飞机从地面位置越过地形的视线能见度。首先,导入一个区域的地形数据,并将其应用于三维地理全球。然后,执行从地面位置到模拟飞行路径的点对点能见度分析,并在3-D地理地球仪上显示结果。最后,从恒定高度飞行的飞机对应的地面位置进行点到区域能见度分析,并在二维地理轴上显示结果。

使用视距分析的地对空情况下,通畅的能见度是重要的,如雷达监视,通信和无人机路径规划。本例将分析应用于某机场的雷达监视。

导入地形数据

指定用于数据分析和3-D可视化的dted格式地形文件。地形文件是从美国地质调查局(USGS)提供的“SRTM Void Filled”数据集中下载的。

dtedfile =“n39_w106_3arc_v2.dt1”;归因=“SRTM 3弧秒分辨率。数据来自美国地质调查局。”

将DTED文件数据作为数组和地理栅格引用对象导入工作空间,并将返回类型指定为double,以便数据与所有分析函数一起工作。

[Zterrain,Rterrain] = readgeoraster(dtedfile, dtedfile)“OutputType”“替身”);

通过访问地理光栅参考对象的属性,查看地形数据的地理限制和样本分辨率。该文件的限制对应于美国科罗拉多州博尔德附近的地区,分辨率对应于DTED一级格式,其样本分辨率为3弧秒,或约90米。

latlim = Rterrain.LatitudeLimits;lonlim = rterrain . longitude elimits;latspc = Rterrain.SampleSpacingInLatitude;lonspc = Rterrain.SampleSpacingInLongitude;disp (“地形的纬度界限:”+ mat2str(latlim) +换行符+...“地形经度界限:”+ mat2str(lonlim) +换行符+...“纬度的地形分辨率:”+ latspc*3600 +“弧秒”+换行符+...“经度地形分辨率:”+ lonspc*3600 +“弧秒”
地形纬度限制:[39 40]地形经度限制:[-106 -105]纬度地形分辨率:3角秒经度地形分辨率:3角秒

在3d地图上可视化飞机轨迹视线

创建自定义地形的地理地球仪

使用DTED文件添加自定义数据,用于3-D可视化。

addCustomTerrain (“southboulder”dtedfile,“归因”归因)

使用新的地理地球仪指定自定义地形。

FIG = ufigure;G = geoglolobe(图,“地形”“southboulder”);

查看雷达地面位置

确定落基山大都会机场的雷达地面位置。雷达安装在离地面10米高的塔上。雷达高度为地面高程与雷达塔高之和,参考平均海平面。

Rdrlat = 39.913756;Rdrlon = -105.118062;Rdrtowerht = 10;Rdralt = 1717 + rdrtowerht;

在地理地球仪上画出雷达的位置。

geoplot3 (g, rdrlat rdrlon rdralt,“有限公司”...“线宽”6...“MarkerSize”, 1)

snapshot_1.jpg

模拟飞机飞行轨迹

模拟一架飞机在群山上空盘旋的轨迹。

定义一个盘旋的飞机的中心位置。

Tlat0 = 39.80384;Tlon0 = -105.49916;Tht0 = 3000;

使用ENU笛卡尔坐标定义飞机的弹道路径点。指定一条半径为5公里(5000米),垂直偏移量为1公里(1000米)超过1.5转的曲线。然后,将ENU坐标转换为引用WGS84椭球的大地坐标。

Azs = 1:40 40;R = 5000;[X,Y] = pol2cart(deg2rad(azs),r);Z = linspace(0,1000,numel(azs));wgs84 = wgs84椭球;[tat, ton,tht] = enu2geodetic(X,Y,Z,tlat0,tlon0,tht0,wgs84);

查看飞机在地形上的轨迹

在地理地球仪上画出飞机的飞行轨迹。默认视图或相机位置是头顶向下的。

(g,“上”) traj = geoplot3(g, tat,tlon,tht,“y”...“HeightReference”“椭球体”...“线宽”3);

snapshot_5.jpg

通过改变相机位置和旋转角度,从远处查看3d地形和雷达位置。

Campos (g,39.77114,-105.62662,6670) camheading(g,70) campitch(g,-12)

snapshot_2.jpg

用飞机轨迹计算视距能见度

计算视距能见度los2函数和DTED数据。

los2函数支持正交高度(万博1manbetx高于平均海平面的高度)或高于地面的高度。将飞行器轨迹高度从椭球高度转换为正交高度。然后,计算从机场雷达位置到每架飞机轨迹航路点的视距,并将结果转换为逻辑数组。

Numwaypts =数字(tat);Isvis = 0 (1,numwaypts);Talt = THT - egm96geoid(tat,tlon);k = 1:numwaypts isvis(k) = los2(Zterrain,Rterrain,rdrlat,rdrlon, tat (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)

los1.jpg

从机场的角度查看视距图。获取距离雷达位置向东900米、向北200米、向上100米位置的大地坐标。然后,设置相机位置和旋转角度。绿色标记出现在视野中,但洋红色标记被地形完全或部分阻挡。

RDRHT = rdralt + egm96geoid(rdrlat,rdrlon);[camlat,camlon,camht] = enu2geodetic(900,200,100,rdrlat,rdrlon,rdrht,wgs84);Campos (g,camlat,camlon,camht)凸面(g,-110)凸面(g,0)

los2.jpg

在2-D地图上可视化飞机视线能见度等高线

前面的部分执行了从雷达位置到飞机轨迹的点对点视距分析和可视化。现在执行点到区域的视距分析和可视化,从相同的雷达位置覆盖地形区域。可视化显示了飞机在恒定高度飞行的能见度边缘。

在二维地图上绘制雷达位置和地形界限

用二维地形图在新图中绘制雷达位置。

图geoplot (rdrlat rdrlon,“有限公司”...“线宽”6...“MarkerSize”3,...“DisplayName”“雷达位置”) geobasemap地形Gx = gca;gx。InnerPosition = gx.OuterPosition;

在地图上以矩形显示自定义地形的限制。

Latmin = latlim(1);Latmax = latlim(2);Lonmin = lonlim(1);Lonmax = lonlim(2);持有Geoplot ([latmin latmin latmax latmax latmin],[lonmin lonmax lonmax lonmin lonmin],...“线宽”,1,...“颜色”“k”...“DisplayName”“地形限制”

在西北角显示一个图例。

传奇(“位置”“西北”

图中包含一个轴对象。axis对象包含2个line类型的对象。这些物体代表雷达位置,地形限制。

绘制飞机在恒定高度飞行的能见度等高线

指定飞机在平均海平面以上的三个高度。对于每个高度:

  • 使用雷达位置作为观察者计算视场。视图定义了具有视线可见性的区域。

  • 通过从查看的数据中计算轮廓来找到飞机能见度的边缘。

  • 删除小的轮廓段。

  • 在地理轴上画等高线。

Tgtalts = [3000 4000 5000];minVertices = 10;Cfig =图(“可见”“关闭”);%使用隐形人物压制等高线图Cax =轴(“父”, cfig);tgtalt = tgtalts vis =视图(Zterrain,Rterrain,rdrlat,rdrlon,rdralt,tgtalt,“火星科学实验室”“火星科学实验室”);C = contourm(vis,Rterrain,“LevelList”,1,“父”, cax);clat = C(2,:);clon = C(1,:);Clats = [];克隆= [];K = 1;k < size(C,2) numVertices = clat(k);如果numVertices > minVertices不要绘制小段clats = [clats clat(k+1:k+numVertices) NaN];% #好< AGROW >clons =[克隆克隆(k+1:k+numVertices) NaN];% #好< AGROW >结束k = k + numVertices + 1;结束geoplot (gx clats,克隆,“线宽”2,...“DisplayName”飞机:“+ string(tgtalt) +“m”);结束

图中包含一个轴对象。axis对象包含5个line类型的对象。这些物体代表雷达位置,地形限制,飞机:3000米,飞机:4000米,飞机:5000米。

轮廓主要出现在雷达位置的西部山脉上方。等高线不会出现在其他方向,因为在地形数据范围内,这些方向的能见度不受地形的限制。

如果雷达受到视距能见度的限制,则等高线对应不同高度的雷达覆盖区域,其中距离雷达最近的等高线对应飞行在3000米的飞机的雷达覆盖区域,最远的等高线对应飞行在5000米的飞机的雷达覆盖区域。

los2,视域范围函数计算视距能见度,假设数据引用的是球形地球,而数据实际上引用的是WGS84椭球,因此可能会有微小的差异。视距计算也与光学视距相对应,不考虑通过大气的折射。

清理

通过关闭地理地球仪并删除导入的地形数据来进行清理。

如果isvalid(图)关闭(图)结束removeCustomTerrain (“southboulder”

另请参阅

功能

对象

相关的话题