Main Content

range2height

Convert propagated range to target height

Since R2021b

Description

tgtht = range2height(r,anht,el) returns the target height, tgtht, as a function of the propagated range r, the sensor height anht, and the elevation angle of the sensor el, assuming a Curved Earth Model with an effective radius factor of 4/3. r is the distance along the slightly curved propagated path that results from atmospheric refraction and is longer than the straight-line geometric distance between the sensor and target.

example

tgtht = range2height(r,anht,el,Name=Value) specifies additional inputs using name-value arguments. For example, you can specify a flat Earth model, a curved Earth model with a given radius, or a CRPL Exponential Reference Atmosphere Model with custom values.

example

Examples

collapse all

Determine the target height in meters given a range of 300 km, a sensor height of 10 meters, and an elevation angle of 0.5 degrees. Assume a curved Earth with an effective radius equal to 4/3 times the Earth's actual radius.

R = 300e3;
anht = 10;
el = 0.5;

range2height(R,anht,el)
ans = 
7.9325e+03

Compute target heights in meters using different Earth models and compare the values you obtain. Assume a range of 200 km and an antenna height of 100 meters. Use a range of elevation angles from 0 to 5 degrees.

R = 200e3;
anht = 100;
el = (0:0.1:5)';

Compute the target height for the given parameters assuming a flat Earth.

tgthtFlat = range2height(R,anht,el,Method="Flat");

Compute the target height for the given parameters assuming free-space propagation with a curved Earth.

r0 = physconst("EarthRadius");
tgthtFS = range2height(R,anht,el,Method="Curved", ...
    EffectiveEarthRadius=r0);

Compute the target height for the given parameters assuming a 4/3 effective Earth radius.

tgthtEffRad = range2height(R,anht,el);

Compute the target height for the given parameters assuming the CRPL atmospheric model.

tgthtCRPL = range2height(R,anht,el,Method="CRPL");

Plot the results.

plot(el,[tgthtFlat(:) tgthtFS(:) tgthtEffRad(:)], ...
    el,tgthtCRPL,'--',LineWidth=1.5)
grid on

xlabel("Elevation Angle (degrees)")
ylabel("Target Height (m)")
legend(["Flat" "Free Space" "4/3 Earth" "CRPL"],Location="best")
title("Target Height Estimation")

Figure contains an axes object. The axes object with title Target Height Estimation, xlabel Elevation Angle (degrees), ylabel Target Height (m) contains 4 objects of type line. These objects represent Flat, Free Space, 4/3 Earth, CRPL.

Input Arguments

collapse all

Propagated range between the target and sensor, specified as a nonnegative scalar or length-M row vector. If r is a vector, it must have the same size as the other vector input arguments anht and el. The propagated range is the distance along the slightly curved propagated path that results from atmospheric refraction over long distances and is the range that would be retrieved from measurements acquired by a sensor with pointing geometry defined by anht and el for a target height of tgtht. Units are in meters.

Data Types: double

Sensor height specified as a nonnegative scalar or length-M row vector. If anht is a vector, it must have the same size as the other vector input arguments of range2height. Heights are referenced to the ground. Units are in meters.

Data Types: double

Elevation angle of the sensor, specified as scalar or length-M row vector. The elevation angle is the initial elevation angle of the ray leaving the sensor. If el is a vector, it must have the same size as the other vector input arguments of range2height. Units are in degrees.

Data Types: double

Name-Value Arguments

collapse all

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.

Example: tgtht = range2height(r,anht,el,Method="CRPL",SurfaceRefractivity=300,RefractionExponent=0.15,MaxNumIterations=8,Tolerance=1e-7)

Earth model used for the computation, specified as "Curved", "Flat", or "CRPL".

  • "Curved" — Assumes a Curved Earth Model with an effective radius of 4/3 times the actual Earth radius, which is a commonly used approximation for modeling refraction effects in the troposphere. To specify another value for the effective Earth radius, use the EffectiveEarthRadius name-value pair argument.

  • "Flat" — Assumes a Flat Earth Model. In this case, the effective Earth radius is infinite.

  • "CRPL" — Assumes a curved Earth model with the atmosphere defined by the CRPL Exponential Reference Atmosphere Model with a refractivity of 313 N-units and a refraction exponent of 0.143859 km–1. To specify other values for the refractivity and the refraction exponent, use the SurfaceRefractivity and RefractionExponent name-value arguments. This CRPL Exponential model accounts for refraction at elevation angles greater than approximately 10 millirad (about 0.573 degrees) and heights above approximately 1 km. For more information, see CRPL Model Geometry.

Data Types: char | string

Effective Earth radius in meters, specified as a positive scalar. If this argument is not specified, range2height calculates the effective Earth radius using a refractivity gradient of –39 × 10–9 N-units/meter, which results in approximately 4/3 of the real Earth radius. This argument applies only if Method is specified as "Curved".

Data Types: double

Surface refractivity in N-units, specified as a nonnegative real-valued scalar. The surface refractivity is a parameter of the CRPL Exponential Reference Atmosphere Model used by range2height. This argument applies only if Method is specified as "CRPL".

Data Types: double

Refraction exponent, specified as a nonnegative real-valued scalar. The refraction exponent is a parameter of the CRPL Exponential Reference Atmosphere Model used by range2height. This argument applies only if Method is specified as "CRPL".

Data Types: double

Maximum number of iterations for the CRPL method, specified as a nonnegative integer. This input acts as a safeguard to preempt long iterative calculations.

If MaxNumIterations is set to 0, a faster but less accurate non-iterative CRPL calculation is performed. The non-iterative calculation has a maximum height error of 0.056388 m (0.185 ft) at a target height of 30,480 m (100,000 ft) and an elevation angle of 0 degrees. The height error for the non-iterative method decreases with decreasing target height and increasing elevation angle. This quantity is dimensionless.

Dependencies

To enable this argument, set the Method name-value pair argument to "CRPL".

Data Types: double

Numerical tolerance for the CRPL method, specified as a positive scalar. The iterative process terminates when the numerical tolerance is achieved.

Dependencies

To enable this argument, set the Method name-value pair argument to "CRPL" and set the MaxNumIterations name-value pair argument to be greater than 0. This quantity is dimensionless.

Data Types: double

Output Arguments

collapse all

Target height, returned as a nonnegative scalar or length-M row vector. If tgtht is a vector, it has the same size as the vector input arguments of range2height. The height is referenced to the ground. Units are in meters.

More About

collapse all

References

[1] Barton, David K. Radar Equations for Modern Radar. Norwood, MA: Artech House, 2013.

[2] Bean, B.R., and G.D. Thayer. "Central Radio Propagation Laboratory Exponential Reference Atmosphere." Journal of Research of the National Bureau of Standards, Section D: Radio Propagation 63D, no. 3 (November 1959): 315. https://doi.org/10.6028/jres.063D.031.

[3] Blake, Lamont V. "Ray Height Computation for a Continuous Nonlinear Atmospheric Refractive-Index Profile." Radio Science 3, no. 1 (January 1968): 85–92. https://doi.org/10.1002/rds19683185.

[4] Doerry, A. W. "Earth Curvature and Atmospheric Refraction Effects on Radar Signal Propagation." Sandia National Laboratories, SAND2012-10690 (Jan. 2013).

Extended Capabilities

expand all

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2021b