Main Content

SurfaceManager

Manage surfaces in radar scenario

Since R2022a

Description

The SurfaceManager object lists the surfaces in a radar scenario, radarScenario. You can enable or disable occlusion and multipath interactions from surfaces in the radar scenario. The occlusion object function determines if any surfaces occlude the line-of-sight between two points. Use the height object function to query the height of surfaces at any location in the scenario.

Creation

Use the landSurface object function to create LandSurface objects. Use the seaSurface object function to create SeaSurface objects. Use the customSurface object function to create CustomSurface objects. Obtain the SurfaceManager object from the SurfaceManager property of the radarScenario object.

Properties

expand all

Enable multipath propagation from LandSurface and SeaSurface objects, specified as true or false.

When specified as:

  • false — The scenario does not model multipath propagation effects from surfaces.

  • true — The scenario models multipath reflections arising from LandSurface and SeaSurface objects, as well as extended targets within the radar scenario. The detect object function for the radarScenario or Platform accounts for multipath interactions for all radarDataGenerator objects attached to platforms. On the first call to detect, the HasGhosts property will be automatically set to true for radarDataGenerator objects. Up to three detections in addition to the line of sight detection are modeled using a three-bounce multipath model for reflections arising from surfaces that are located along-track (contributions from surfaces off to the side are not considered). Reflections are calculated from the ReflectionCoefficient property of the LandSurface and SeaSurface objects. If a LandSurface or SeaSurface is not defined, the ReflectionCoefficient defaults to a value of -1 for multipath calculations.

    The Earth surface model is used to generate multipath for locations in the scenario for which LandSurface and SeaSurface objects are not defined. When the IsEarthCentered property of the radarScenario object is specified as:

    • false — Multipath is propagated over a flat Earth model located at z = 0.

    • true — Multipath is propagated over the WGS84 ellipsoid Earth Model.

Dependencies

EnableMultipath should be enabled before the simulation is advanced using the advance function because this property cannot be set to true after the detect function is called on the radarScenario. Multipath modeling is only supported for radarDataGenerator objects with DetectionMode property defined as Monostatic and EmissionsInputPort and InterferenceInputPort properties set to false.

Enable line-of-sight occlusion by surfaces, specified as true or false.

When specified as:

  • true — The scenario models the occlusion of the line-of-sight by surfaces between points. In this case, the detect object function of the radarScenario object or the detect object function of the Platform object account for surface occlusion.

    Note

    If the IsEarthCentered property of the radarScenario object is specified as true, selecting this option also enables horizon occlusion based on the WGS84 ellipsoid Earth model.

  • false — The scenario does not model the occlusion of lines-of-sight due to surfaces specified in the radar scenario or the Earth.

Surfaces in radarScenario, specified as an array of LandSurface, SeaSurface, and CustomSurface objects.

You can add land surfaces to a radar scenario using landSurface, sea surfaces using seaSurface, and custom surfaces using customSurface.

Object Functions

heightHeight of point on surface
occlusionTest for occlusion of point by a surface
surfacePlotterDataData for surface plotter

Examples

collapse all

Create a radar scenario and specify its IsEarthCentered property as true to use DTED file.

scene = radarScenario(IsEarthCentered = true);

Model the reflectivity as a constant gamma surface.

refl = surfaceReflectivityLand(Model = 'ConstantGamma',Gamma = -20);

Add a 0.1-by-0.1 degree land surface derived from a DTED file.

bdry = [39.5 39.6;-105.51 -105.41];
srf = landSurface(scene,Terrain = 'n39_w106_3arc_v2.dt1', ...
    Boundary = bdry,RadarReflectivity = refl)
srf = 
  LandSurface with properties:

        RadarReflectivity: [1x1 surfaceReflectivityLand]
    ReflectionCoefficient: [1x1 radar.scenario.SurfaceReflectionCoefficient]
          ReflectivityMap: 1
          ReferenceHeight: 0
                 Boundary: [2x2 double]
                  Terrain: 'n39_w106_3arc_v2.dt1'

mgr = scene.SurfaceManager
mgr = 
  SurfaceManager with properties:

    EnableMultipath: 0
       UseOcclusion: 1
           Surfaces: [1x1 radar.scenario.LandSurface]

Plot the surface height.

x = linspace(srf.Boundary(2,1),srf.Boundary(2,2),201);
y = linspace(srf.Boundary(1,1),srf.Boundary(1,2),201);
[X,Y] = meshgrid(x,y);
X1 = X(:)';
Y1 = Y(:)';
H = height(srf,[Y1;X1]);
H = reshape(H,length(x),length(y));
surf(x,y,H)
shading interp
ylabel('Latitude (deg)')
xlabel('Longitude (deg)')
zlabel('Height (m)')

Figure contains an axes object. The axes object with xlabel Longitude (deg), ylabel Latitude (deg) contains an object of type surface.

Version History

Introduced in R2022a