seaSurface
Description
adds a srf
= seaSurface(scene
)SeaSurface
object
srf
to the radarScenario
object scene
.
adds a sea surface object with the specified property srf
= seaSurface(scene
,Name=Value
)Name
set to the
specified Value
. You can specify additional name-value pair arguments
in any order as
(Name1=Value1
,...,NameN=ValueN
).
Examples
Find Height of Sea Surface
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: [1x1 radar.scenario.SeaSurface]
mgr.Surfaces
ans = SeaSurface with properties: WindSpeed: 10 WindDirection: 0 Fetch: 250000 SpectralModel: [1x1 seaSpectrum] RadarReflectivity: [1x1 surfaceReflectivitySea] ReflectionCoefficient: [1x1 radar.scenario.SurfaceReflectionCoefficient] ReflectivityMap: 1 ReferenceHeight: 0 Boundary: [2x2 double]
Test for Occlusion Between Two Points on Sea Surface
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 Surface from Sea Spectrum
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: [1x1 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)')
Input Arguments
scene
— Radar scenario
radarScenario
object
Radar scenario, specified as a radarScenario
object.
Name-Value Arguments
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN
, where Name
is
the argument name and Value
is the corresponding value.
Name-value arguments must appear after other arguments, but the order of the
pairs does not matter.
Before R2021a, use commas to separate each name and value, and enclose
Name
in quotes.
Example: srf = seaSurface(scene,'Boundary',[-500 500; -500
500],'WindSpeed',10,'Fetch',250000,'SpectralModel',spec);
SpectralModel
— Sea surface omnidirectional motion spectrum
seaSpectrum
object
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
.
Boundary
— Bounding rectangle of surface
[-Inf Inf; -Inf Inf]
(default) | 2-by-2 matrix of real values
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
,MinY
MaxY
], 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
,StartLon
EndLon
] whereStartLat
andEndLat
are the minimum and maximum latitudes of the geodetic frames.StartLat
andEndLat
must lie in the interval [–90,90] whereStartLat
<EndLat
.Specify
StartLon
andEndLon
as the minimum and maximum longitudes of the geodetic frame.StartLon
andEndLon
must lie in the interval [–180,180]. IfEndLon
<StartLon
, the object wrapsEndLon
toStartLon
+360°
. Units are in degrees.
Data Types: double
RadarReflectivity
— Radar reflectivity object of surface
surfaceReflectivitySea
object (default) | surfaceReflectivityCustom
object
Radar reflectivity object of surface, specified as a surfaceReflectivitySea
or surfaceReflectivityCustom
for the normalized radar cross section (NRCS)
of the surface. Defaults to a surfaceReflectivitySea
object using a Barton land model and flatland land
type.
ReflectivityMap
— Map of reflectivity type indices over the surface
1 (default) | scalar | real-valued matrix
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
ReflectionCoefficient
— Surface reflection coefficient model or value
seawater model (default) | SurfaceReflectionCoefficient
object | finite scalar
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
ReferenceHeight
— Surface reference height (m)
0 (default) | scalar
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
WindSpeed
— Wind speed
10 (default) | nonnegative scalar
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
WindDirection
— Wind direction
0 (default) | scalar
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
— Wave fetch
Inf
(default) | positive scalar
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
Output Arguments
srf
— Sea surface
SeaSurface
object
Sea surface, returned as a SeaSurface
object.
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.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- 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)