How to detect if there is terrain behind a point which an observer can see using Mapping Toolbox and/or RF Toolbox?

10 次查看(过去 30 天)
I am working on a project involving aircraft line-of-sight analysis using the Mapping and RF Toolboxes. I have been closely following the examples Visualize Aircraft Line-of-Sight over Terrain and Radar Performance Analysis over Terrain.
Imagine this scenario: We have an aircraft flying a certain flight path to explore an area of interest near the side of a large mountain range. We have a chunk of terrain data for this area which everything is being plotted on. We have an observer (radar) that is following the aircraft, and we want to keep the aircraft in the best visibility possible (with direct line-of-sight visibility and without any terrain in the background. To do this we have a given flight path and want to test each waypoint to determine whether they are:
  • "Good" meaning they have line-of-sight visibility and no terrain in the background,
  • "Okay" meaning they have line-of-sight visibility but there is terrain in the background, and
  • "Bad" meaning they have no line of sight visibility.
At the moment I have no issue determining whether waypoints have line-of-sight visibility with the observer radar (using los2). My issue comes when testing all waypoints that do have line-of-sight visibility to see whether there is terrain in the background. My first approach was to "step" out a certain discrete distance in (lat,long,alt) coordinates from each line-of-sight-visible waypoint, basically "continuing" the line of sight between the radar and the waypoint until we either left the bounds of the terrain data given, went into space, or determined we were under terrain via interpolation. Unfortunately this was very computationally intensive and did not always work as intended. Is there a better way to test these points?
I have included a very crude picture to help explain this scenario which hopefully will help.

回答(1 个)

Ayush
Ayush 2023-11-2
编辑:Ayush 2023-11-2
Hi Mike,
I understand that you want to find a method to test all waypoints that do have line-of-sight visibility to see whether there is terrain in the background in an optimal way.
To do so, you can refer the “viewshed” function. You can use the viewshed function to model radio wave propagation in the atmosphere as straight lines on a sphere. This will provide visible area from point on or above terrain. The syntax can be followed as:
[vis,visR]=viewshed(Z,R,latObs,lonObs,hObs,hTarget,hObsRef,hTargetRef)
This way you can reference the height of the target points to either the terrain (ground level) or the sphere (mean sea level). Here “vis” will be the visibility indicator and “visR” will be the spatial reference for “vis”. While "Z" is the elevation data grid and "R" is the spatial reference for "Z".
With this you can find the area that is visible by radar for an aircraft flying above the terrain. First specify the location of the aircraft, then specify visible areas for the aircraft, for example say at 3000 meters above mean sea level of the surface. Then model radio propagation in the atmosphere by specifying an effective radius for the reference sphere. Refer the code snippet below for better understanding:
latObs = 35;
lonObs = 120;
hObs = 3000;
hTarget = 0;
rad = earthRadius;
[vis1,vis1R] = viewshed(Z,R,latObs,lonObs,hObs,hTarget,"MSL","AGL",rad,4/3*rad);
For more information on the “viewshed” function you can refer the below link:
I hope this helps!
Regards,
Ayush

类别

Help CenterFile Exchange 中查找有关 Lighting, Transparency, and Shading 的更多信息

标签

产品


版本

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by