landSurface
Description
LandSurface defines a land surface object belonging to a radarScenario.
Manage surfaces in a radar scenario using SurfaceManager.
Surface reflectivity, or normalized radar cross section, is defined as a surfaceReflectivityLand or surfaceReflectivityCustom
System object™.
You can use landSurface function to specify surface extent,
reflectivity, reference height, and digital elevation terrain data. Use the occlusion object
function to test for occlusion along the line-of-sight between two points in the scenario and
use height to provide
surface height at a point.
Creation
Description
adds a srf = landSurface(scenario)LandSurface object, srf, to the radar
scenario radarScenario
object scenario.
adds a srf = landSurface(scenario,PropertyName=Value)LandSurface object, srf, with each specified
PropertyName set to the corresponding Value.
You can specify additional pairs of arguments in any order as
PropertyName1=Value1,...,PropertyNameN=ValueN.
Properties
Radar reflectivity, or normalized radar cross section, specified as a surfaceReflectivityLand or surfaceReflectivityCustom
System object. Defaults to a surfaceReflectivityLand object with a
"Barton" land model and "FlatLand" land
type.
Example: surfaceReflectivityLand(Model="GIT",LandType="Soil")
Surface reflection coefficient for use in multipath calculations, specified either as a
SurfaceReflectionCoefficient object that defines the reflectivity
model or as scalar with a value between -1 and 1. The default value is a SurfaceReflectionCoefficient object containing the earthSurfacePermittivity model of a dry sandy loam for a flat,
non-vegetated surface. By default, the reflectionCoefficient object function is automatically called internally
on the SurfaceReflectionCoefficient object to calculate the cumulative reflection
coefficient value during multipath modeling if the EnableMultipath
property is set to true in SurfaceManager.
Complex Number Support: Yes
This property contains a grid of reflectivity type values corresponding to vertices of the
surface height data. If any terrain or a spectral model is present,
ReflectivityMap must be a matrix of the same size as the domain
of that data. Otherwise it must be scalar. Each element is an index into the third
dimension of the Reflectivity property of the surfaceReflectivityCustom object.
Dependencies
To enable this property, set the RadarReflectivity property to a surfaceReflectivityCustom object.
Data Types: double
Reference height of surface height data, specified as a scalar. Surface heights are relative to the reference height. Units are in meters.
Data Types: double
Extent of the rectangular surface, specified as a 2-by-2 matrix of real values. The bounding
rectangle is defined by two 2-dimensional points in either Cartesian or geodetic
scenario coordinates. When the IsEarthCentered property of the
radarScenario object is specified as:
false— Scenario coordinates are Cartesian. Specify the bounding rectangle as [minX,maxX,minYmaxY].minXandmaxXare the minimum and maximum values in the x-direction of the reference frame, whereminX<maxX.minYandmaxYare the minimum and maximum values in the y-direction of the reference frame, whereminY<maxY.true— Scenario coordinates are geodetic. Specify the bounding rectangle as [startLat,endLat,startLonendLon].startLatandendLatare the minimum and maximum latitudes of the geodetic frames, wherestartLatandendLatmust lie in the interval [–90,90] andstartLat<endLat.startLonandendLonare the minimum and maximum longitudes of the geodetic frame and must lie in the interval [–180,180]. IfendLon<startLon, the object wrapsendLontostartLon+360°. Units are in degrees.
Data Types: double
Terrain data of the surface, specified as an M-by-N real-valued matrix or a string containing a Digital Terrain Elevation Data (DTED) file name. Terrain data consists of land height as a function of geo-position and is assumed to be referenced to the WGS84 ellipsoidal model. When a DTED filename is provided, it is expected that the data in the DTED file is referenced to the EGM96 geoid model.
M-by-N real-valued matrix — The matrix values represent the height data of an area defined by the
Boundaryproperty of the surface object. The domain can be a global Cartesian frame in meters or a geodetic grid with units of degrees. The object extends the height data in the matrix to the area. The object automatically fills heights of unspecified points using linear interpolation. M or N must be greater than or equal to 3.You may use
wmsfind(Mapping Toolbox) to find a digital elevation layer.
If you get the layer using
wmsread(Mapping Toolbox), make sure the elevations are oriented correctly. You may need to flip (flipud) and transpose the layer, as demonstrated in the Airborne Target Height Estimation Using Multipath Over Sea and Land example.
DTED file name — To use this option, you must specify the
IsEarthCenteredproperty of the radar scenario astrue. In this case, the function uses the DTED file to specify the terrain heights for an area defined by theBoundaryproperty of the ground surface object. Also, the object automatically fills unspecified data in the DTED file using linear interpolation.
Height values here are relative to the
ReferenceHeight property.
Data Types: double | string | char
Object Functions
height | Height of point on surface |
occlusion | Test for occlusion of point by a surface |
plotReflectivityMap | Plots reflectivity map |
Examples
Create a surface with two hills. Plot the surface on a 200-by-200 meter grid with grid points one meter apart. Add the surface to a radar scenario. Assume the surface has a radar reflectivity defined by a constant gamma model.
[x,y] = meshgrid(linspace(-100,100,201)); ht1 = 40*exp(-(x.^2 + y.^2)/30^2); ht2 = 100*exp(-((x-60).^2 + y.^2)/25^2); ht = ht1 + ht2; p = surfc(x(1,:),y(:,1),ht); axis equal axis tight shading interp simTime = 3; scene = radarScenario(UpdateRate = 1, ... IsEarthCentered = false,StopTime = simTime); gammaDB = surfacegamma('Flatland'); refl = surfaceReflectivityLand(Model = 'ConstantGamma',Gamma = gammaDB); srf = landSurface(scene,RadarReflectivity = refl, ... Terrain = ht,Boundary = [-100,100;-100,100]);
Use surface manager to identify the surface.
scene.SurfaceManager
ans =
SurfaceManager with properties:
EnableMultipath: 0
UseOcclusion: 1
Surfaces: [1×1 radar.scenario.LandSurface]
scene.SurfaceManager.Surfaces
ans =
LandSurface with properties:
RadarReflectivity: [1×1 surfaceReflectivityLand]
ReflectionCoefficient: [1×1 radar.scenario.SurfaceReflectionCoefficient]
ReflectivityMap: 1
ReferenceHeight: 0
Boundary: [2×2 double]
Terrain: [201×201 double]
Obtain and plot the height of the surface at the point (50,-30).
xt = 50; yt = -30; htx = height(srf,[xt,yt])
htx = 21.1046
hold on plot3(xt,yt,htx+5,'ow','MarkerFaceColor','r') xlabel('x') ylabel('y') hold off

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: [1×1 surfaceReflectivityLand]
ReflectionCoefficient: [1×1 radar.scenario.SurfaceReflectionCoefficient]
ReflectivityMap: 1
ReferenceHeight: 0
Boundary: [2×2 double]
Terrain: 'n39_w106_3arc_v2.dt1'
mgr = scene.SurfaceManager
mgr =
SurfaceManager with properties:
EnableMultipath: 0
UseOcclusion: 1
Surfaces: [1×1 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)')

Create a radar scenario and specify set the IsEarthCentered property as true to obtain the terrain from a 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);
Verify that occlusion is turned on.
mgr = scene.SurfaceManager
mgr =
SurfaceManager with properties:
EnableMultipath: 0
UseOcclusion: 1
Surfaces: [1×1 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)') hold on
Test for occlusion.
ht1 = height(srf,[39.59 -105.5])
ht1 = 2.7962e+03
ht2 = height(srf,[39.51 -105.41])
ht2 = 2.7718e+03
occlusion(srf,[39.59 -105.5 ht1],[39.51 -105.41 ht2])
ans = logical
1
The points are occluded. The line between the two points passes through the surface as shown.
plot3([-105.5 -105.41],[39.59 39.51], [ht1 ht2],'r','LineWidth',3)

Version History
Introduced in R2022a
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)