SeaSurface
Description
SeaSurface defines a sea surface object belonging to a radarScenario. The
object describes the size, surface reflectivity, motion, and wind speed of the surface. You
can use the SeaSurface object to determine sea heights in a scenario and
surface reflectivity, test for occlusion along the line-of-sight between two points in the
scenario and give surface height at a point.
Creation
Create SeaSurface objects using the seaSurface object
function of the radarScenario
object.
Properties
Sea surface omnidirectional motion spectrum, specified as a seaSpectrum
object. This object models surface heights over time.
Dependencies
To enable this property, set the radarScenario property
IsEarthCentered to false.
Bounding rectangle of the surface, specified as a 2-by-2 matrix of real values. The bounding rectangle is defined by two two-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 [MinX,MaxX,MinYMaxY], as Cartesian coordinates in the reference frame of the scenario, whereMinX<MaxX, andMinY<MaxY.true— Scenario coordinates are geodetic. Specify the bounding rectangle as [StartLat,EndLat,StartLonEndLon] whereStartLatandEndLatare the minimum and maximum latitudes of the geodetic frames.StartLatandEndLatmust lie in the interval [–90,90] whereStartLat<EndLat.Specify
StartLonandEndLonas the minimum and maximum longitudes of the geodetic frame.StartLonandEndLonmust lie in the interval [–180,180]. IfEndLon<StartLon, the object wrapsEndLontoStartLon+360°. Units are in degrees.
Data Types: double
Radar reflectivity object of surface, specified as a surfaceReflectivitySea or surfaceReflectivityCustom for the normalized radar cross section (NRCS) of
the surface. The default object is a surfaceReflectivitySea object with default properties.
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
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 function model of the relative permittivity and
conductivity for sea water that has a smooth surface (no waves). Note, by default, the
reflectionCoefficient object function is 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
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
Wind speed over sea surface, specified as a nonnegative scalar. Wind speed is defined at a height of 10 meters from the water surface. Wind speed is used as a parameter for the associated spectral model. Units are m/s.
Data Types: double
Wind direction over the sea surface, specified as a scalar in the range 0° to 180°.
A standard right-handed Cartesian coordinate system is used. When the
IsEarthCentered property of radarScenario is
true, wind direction is a positive angle defined counterclockwise
from the positive x-axis. Otherwise, wind direction is defined as
clockwise from the North direction. This property is used to determine surface
reflectivity and is used as a parameter for the associated spectral model. Units are in
degrees.
Data Types: double
Fetch, specified as a positive scalar. Fetch is the distance over a sea surface in which the wind blows in a single direction without obstruction. The fetch is used as a parameter for the associated spectral model. Units are in meters.
Data Types: double
Object Functions
height | Height of point on surface |
occlusion | Test for occlusion of point by a surface |
plotReflectivityMap | Plots reflectivity map |
Examples
Create a square sea surface area using the seaSurface object. Assume a moderate sea state with a wind speed of about 10 m/s, a fetch of 250 km and a length of 1.0 km. Add an Elfouhaily spectrum to the sea surface. Use the height function to determine the heights of 2 points on the map.
Create a radar scenario.
scene = radarScenario(IsEarthCentered = false);
rng('default')Add a sea surface to the scene with an Elfouhaily spectrum.
spec = seaSpectrum(Resolution = 20);
srf = seaSurface(scene,Boundary = [-500 500; -500 500], ...
WindSpeed = 10,Fetch = 250000,SpectralModel = spec);Find the height at two points.
P1 = [0;0]; P2 = [30;-70]; H = height(srf,[P1 P2])
H = 1×2
-0.9394 -0.2682
Display the sea surface properties in the surface manager.
mgr = scene.SurfaceManager
mgr =
SurfaceManager with properties:
EnableMultipath: 0
UseOcclusion: 1
Surfaces: [1×1 radar.scenario.SeaSurface]
mgr.Surfaces
ans =
SeaSurface with properties:
WindSpeed: 10
WindDirection: 0
Fetch: 250000
SpectralModel: [1×1 seaSpectrum]
RadarReflectivity: [1×1 surfaceReflectivitySea]
ReflectionCoefficient: [1×1 radar.scenario.SurfaceReflectionCoefficient]
ReflectivityMap: 1
ReferenceHeight: 0
Boundary: [2×2 double]
Create a square sea surface assuming a moderate sea state with a wind speed of about 12 knots (6.17 m/s), a fetch of 120 nmi (222.24 km), and a length of 1.024 km. Add an Elfouhaily spectrum to the sea surface. Use the occlusion object function to determine if the path from point 1 to point 2 is occluded.
Start by creating a radar scenario;
scene = radarScenario;
Add a sea surface with an Elfouhaily spectrum.
rng('default'); spec = seaSpectrum('Resolution',16);
Create the sea surface.
bnds = [0 1024; 0 1024]; srf = seaSurface(scene,'Boundary',bnds, ... 'WindSpeed',6.17,'Fetch',222.24e3, ... 'SpectralModel',spec);
Set two points for testing occlusion.
p1 = [1016; 368; -0.082]; p2 = [10; 100; 0.13];
Determine if the path from p1 to p2 is occluded
tf1 = occlusion(srf,p1,p2)
tf1 = logical
1
Create a 1024-by-1024 m square sea surface. Assume an NRL reflectivity model for a high sea state 6 with a wind speed of about 20 m/s and a fetch of 250 km. Set UseOcclusion in the SurfaceManager to false.
Create a radar scenario.
scene = radarScenario;
Model the reflectivity using the NRL model.
refl = surfaceReflectivitySea(Model = 'NRL',SeaState = 6, ... Polarization = 'V')
refl =
surfaceReflectivitySea with properties:
EnablePolarization: 0
Model: 'NRL'
SeaState: 6
Polarization: 'V'
Speckle: 'None'
rng(2033) spec = seaSpectrum(Resolution = 2); bnds = [0 1024; 0 1024]; srf = seaSurface(scene,Boundary = bnds, ... WindSpeed = 20,Fetch = 250e3, ... SpectralModel = spec); mgr = scene.SurfaceManager; mgr.UseOcclusion = false
mgr =
SurfaceManager with properties:
EnableMultipath: 0
UseOcclusion: 0
Surfaces: [1×1 radar.scenario.SeaSurface]
x = linspace(srf.Boundary(1,1),srf.Boundary(1,2),1000); y = linspace(srf.Boundary(2,1),srf.Boundary(2,2),1000); [X,Y] = meshgrid(x,y); X1 = X(:)'; Y1 = Y(:)'; hts = height(srf,[Y1;X1]); hts = reshape(hts,length(x),length(y)); surf(x,y,hts) axis equal shading interp ylabel('X (m)') xlabel('Y (m)') zlabel('Height (m)')

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.
Sélectionner un site web
Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .
Vous pouvez également sélectionner un site web dans la liste suivante :
Comment optimiser les performances du site
Pour optimiser les performances du site, sélectionnez la région Chine (en chinois ou en anglais). Les sites de MathWorks pour les autres pays ne sont pas optimisés pour les visites provenant de votre région.
Amériques
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)