# range2height

## Description

returns the target height `tgtht`

= range2height(`r`

,`anht`

,`el`

)`tgtht`

as a function of the propagated range
`r`

, the sensor height `anht`

, and the local
elevation angle `el`

assuming a Curved Earth Model with a 4/3 effective Earth
radius.

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.`tgtht`

= range2height(`r`

,`anht`

,`el`

,`Name=Value`

)

## Examples

### Target Height from Propagated Range

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

### Target Height Using Different Earth Models

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")

## Input Arguments

`r`

— Propagated range

real-valued scalar | real-valued vector

Propagated range between the target and the sensor in meters, specified as a
real-valued scalar or vector. If `r`

is a vector, it must have the
same size as the other vector input arguments of
`range2height`

.

**Data Types: **`double`

`anht`

— Sensor height

nonnegative real-valued scalar | nonnegative real-valued vector

Sensor height in meters, specified as a nonnegative real-valued scalar or 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.

**Data Types: **`double`

`el`

— Local elevation angle

real-valued scalar | real-valued vector

Local elevation angle in degrees, specified as a real-valued scalar or vector. The local 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`

.

**Data Types: **`double`

### 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.

**Example: **`Method="CRPL",SurfaceRefractivity=300,RefractionExponent=0.15,MaxNumIterations=8,Tolerance=1e-7`

`Method`

— Earth model

`"Curved"`

(default) | `"Flat"`

| `"CRPL"`

Earth model used for the computation, specified as `"Curved"`

,
`"Flat"`

, or `"CPRL"`

.

`"Curved"`

— Assumes a Curved Earth Model with a 4/3 effective Earth radius, which is an approximation used for modeling refraction effects in the troposphere. To specify another value for the effective Earth radius, use the`EffectiveEarthRadius`

name-value 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 method requires`el`

to be positive. For more information, see CRPL Model Geometry.

**Data Types: **`char`

| `string`

`EffectiveEarthRadius`

— Effective Earth radius

4/3 of Earth's radius (default) | positive scalar

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`

`SurfaceRefractivity`

— Surface refractivity

`313`

(default) | real-valued scalar

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`

`RefractionExponent`

— Refraction exponent

`0.143859`

(default) | real-valued scalar

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`

`MaxNumIterations`

— Maximum number of iterations for the CRPL method

`10`

(default) | nonnegative scalar integer

Maximum number of iterations for the CRPL method, specified as a nonnegative
scalar integer. This input acts as a safeguard to preempt long iterative calculations.
This argument applies only if `Method`

is specified as
`"CRPL"`

.

If `MaxNumIterations`

is set to `0`

,
`range2height`

performs a faster but less accurate noniterative
CRPL calculation. The noniterative 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.
The height error for the noniterative method decreases with decreasing target height
and increasing elevation angle.

**Data Types: **`double`

`Tolerance`

— Numerical tolerance for the CRPL method

`1e-6`

(default) | positive real scalar

Numerical tolerance for the CRPL method, specified as a positive real scalar. The
iterative process terminates when the numerical tolerance is achieved. This argument
applies only if `Method`

is specified as `"CRPL"`

and `MaxNumIterations`

is greater than `0`

.

**Data Types: **`double`

## Output Arguments

`tgtht`

— Target height

nonnegative real-valued scalar | nonnegative real-valued row vector

Target height in meters, returned as a nonnegative real-valued scalar or 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.

## More About

### Flat Earth Model

The flat Earth model assumes that the Earth has infinite radius and that the index of refraction of air is uniform throughout the atmosphere. The flat Earth model is applicable over short distances and is used in applications like communications, automotive radar, and synthetic aperture radar (SAR).

Given the antenna height *h _{a}* and the initial
elevation angle

*θ*

_{0}, the model relates the target height

*h*and the slant range

_{T}*R*by

_{T}$${h}_{T}={h}_{a}+{R}_{T}\mathrm{sin}{\theta}_{0}\text{\hspace{1em}}\iff \text{\hspace{1em}}{R}_{T}=\left({h}_{T}-{h}_{a}\right)\mathrm{csc}{\theta}_{0},$$

so knowing one of those magnitudes enables you to compute the other. The
actual range *R* is equal to the slant range. The true elevation angle
*θ _{T}* is equal to the initial elevation
angle.

To compute the ground range *G*, use

$$G=\left({h}_{T}-{h}_{a}\right)\mathrm{cot}{\theta}_{0}.$$

### Curved Earth Model

The fact that the index of refraction of air depends on height can be treated approximately by using an effective Earth's radius larger than the actual value.

Given the effective Earth's radius *R*_{0}, the antenna
height *h _{a}*, and the initial elevation angle

*θ*

_{0}, the model relates the target height

*h*and the slant range

_{T}*R*by

_{T}$${\left({R}_{0}+{h}_{T}\right)}^{2}={\left({R}_{0}+{h}_{a}\right)}^{2}+{R}_{T}^{2}+2{R}_{T}\left({R}_{0}+{h}_{a}\right)\mathrm{sin}{\theta}_{0},$$

so knowing one of those magnitudes enables you to compute the other. In particular,

$${h}_{T}=\sqrt{{\left({R}_{0}+{h}_{a}\right)}^{2}+{R}_{T}^{2}+2{R}_{T}\left({R}_{0}+{h}_{a}\right)\mathrm{sin}{\theta}_{0}}-{R}_{0}.$$

The actual range *R* is equal to the slant range. The
true elevation angle *θ _{T}* is equal to the initial
elevation angle.

To compute the ground range *G*, use

$$G={R}_{0}\varphi ={R}_{0}\mathrm{arcsin}\frac{{R}_{T}\mathrm{cos}{\theta}_{0}}{{R}_{0}+{h}_{T}}.$$

A standard propagation model uses an effective Earth's radius that is 4/3 times the actual value. This model has two major limitations:

The model implies a value for the index of refraction near the Earth's surface that is valid only for certain areas and at certain times of the year. To mitigate this limitation, use an effective Earth's radius based on the near-surface refractivity value.

The model implies a value for the gradient of the index of refraction that is unrealistically low at heights of around 8 km. To partially mitigate this limitation, use an effective Earth's radius based on the platform altitudes.

For more information, see `effearthradius`

.

### CRPL Exponential Reference Atmosphere Model

Atmospheric refraction evidences itself as a deviation in an
electromagnetic ray from a straight line due to variation in air density as a function of
height. The Central Radio Propagation Laboratory (CRPL) exponential reference atmosphere
model treats refraction effects by assuming that the index of refraction
*n*(*h*) and the refractivity *N*
decay exponentially with height. The model defines

$$N=\left(n\left(h\right)-1\right)\times {10}^{6}={N}_{\text{s}}{e}^{-{R}_{\text{exp}}h},$$

where *N*_{s} is the atmospheric
refractivity value (in units of 10^{–6}) at the surface of the
earth, *R*_{exp} is the decay constant, and
*h* is the height above the surface in kilometers. Thus

$$n(h)=1+\left({N}_{\text{s}}\text{\hspace{0.17em}}\times {10}^{-6}\right){e}^{-{R}_{\text{exp}}h}.$$

The default value of *N*_{s} is 313
N-units and can be modified using the `SurfaceRefractivity`

name-value
argument in functions that accept it. The default value of
*R*_{exp} is 0.143859 km^{–1} and can be modified using the `RefractionExponent`

name-value argument in functions that accept it.

### CRPL Model Geometry

When the refractivity of air is incorporated into the curved Earth model, the ray paths do not follow a straight line but curve downward. (This statement assumes standard atmospheric propagation and nonnegative elevation angles.) The true elevation angle is different from the initial . The actual range , which is the distance along the curved path , is different from the slant range .

Given the Earth's radius , the antenna height , the initial elevation angle , and the height-dependent index of refraction with value at , the modified model relates the target height and the actual range by

When `Method`

is specified as `"CRPL"`

, the integral is solved using from CRPL Exponential Reference Atmosphere Model.

To compute the ground range , use

## 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.

## Extended Capabilities

### C/C++ Code Generation

Generate C and C++ code using MATLAB® Coder™.

## Version History

**Introduced in R2021b**

## See Also

### Apps

### Functions

## Open Example

You have a modified version of this example. Do you want to open this example with your edits?

## 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)