Main Content

slant2range

Convert slant range to propagated range

Since R2022b

    Description

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

    example

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

    [r,t_el,k] = slant2range(___) also returns the elevation angle between the target and the propagated path r, t_el, and the effective earth radius factor, k.

    If the outputs are returned as r = NaN, t_el = NaN, and k = 1, the propagation path does not exist or cannot be computed for the geometry specified by sr, anht, and tgtht.

    example

    Examples

    collapse all

    Calculate the propagated range from a slant range of 100 km, antenna height of 1 km, and target height of 2 km. Use default parameter values.

    R = slant2range(100000,1000,2000)
    R = 
    1.0001e+05
    

    Compute the range between an antenna and a target. Start with a slant range of 250 km, an antenna height of 1 km, and target height of 5 km. Using the default 'Curved' Method, set an effective earth radius factor of 1.2.

    Re = physconst('EarthRadius');
    effactor = 1.2;
    R = slant2range(250000,1000,5000,'EffectiveEarthRadius',effactor*Re)
    R = 
    2.5002e+05
    

    Calculate the propagated range and elevation angle of a target at a slant range of 300 km, an antenna height of 100 m, and target height of 5 km. Use the CRPL method and assume the surface refractivity is equal to 400 N-units. From the calculated propagated range and elevation angle, convert back to target height. Verify that the estimated target height from the range2height function matches the expected 5 km.

    sr = 300000;
    ha = 100;
    ht = 5000;
    Ns = 400;
    rexp = refractionexp(Ns);

    Calculate propagated range and elevation angle.

    [R,el] = slant2range(sr,ha,ht,'Method','CRPL', ...
            'SurfaceRefractivity',Ns,'RefractionExponent',rexp)
    R = 
    3.0009e+05
    
    el = 
    0.1286
    

    Convert propagated range and elevation angle back to target height. Verify that calculated value matches 5000 meters.

    htest = range2height(R,ha,el,'Method','CRPL', ...,
        'SurfaceRefractivity',Ns,'RefractionExponent',rexp)
    htest = 
    5.0000e+03
    

    Compare the effective Earth radius factors calculated from the CRPL, the average radius of curvature, and 4/3 Earth models. Assume the slant range is 100000 m, the antenna heights range from 1 to 10 km, and the target is on the surface at zero altitude.

    sr = 100000;
    ha = linspace(1,10,50).*1000;
    ht = 200;
    [~,kAvgCurv] = effearthradius(sr,ha,ht);
    [~,~,kCRPL] = slant2range(sr,ha,ht,'Method','CRPL');

    Plot the effective earth radius factor as a function of antenna height.

    plot(ha*1e-3,kCRPL)
    hold on
    plot(ha*1e-3,kAvgCurv)
    yline(4/3,'--k')
    grid on
    legend('CRPL','Average Curvature','4/3 Earth')
    ylabel('Effective Earth radius factor k')
    xlabel('Antenna height (km)')

    Figure contains an axes object. The axes object with xlabel Antenna height (km), ylabel Effective Earth radius factor k contains 3 objects of type line, constantline. These objects represent CRPL, Average Curvature, 4/3 Earth.

    Input Arguments

    collapse all

    Slant range, or straight-line geometric distance between sensor and target, specified as a nonnegative scalar or length-M row vector. If sr is a vector, it must have the same size as the other vector input arguments, anht and tgtht. Units are in meters.

    Example: 5000.0

    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 slant2range. Heights are referenced to the ground. Units are in meters.

    Data Types: double

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

    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.

    Before R2021a, use commas to separate each name and value, and enclose Name in quotes.

    Example: r = slant2range(sr,anht,tgtht,Method="CRPL",SurfaceRefractivity=300,RefractionExponent=0.15)

    Earth model used for computation, specified as "Curved" 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.

    • "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, specified as a positive scalar. By default, the effective Earth radius is calculated using a refractivity gradient of –39 × 10–9 N-units/meter, which results in approximately 4/3 times the actual Earth radius. See effearthradius for more information. Units are in meters.

    Dependencies

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

    Data Types: double

    Surface refractivity in N-units, specified as a nonnegative scalar. The surface refractivity is a parameter of the CRPL Exponential Reference Atmosphere Model. This quantity is dimensionless.

    Dependencies

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

    Data Types: double

    Refraction exponent, specified as a nonnegative scalar. The refraction exponent is a parameter of the CRPL Exponential Reference Atmosphere Model. This quantity is dimensionless.

    Dependencies

    To enable this argument, set the Method name-value pair argument to "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

    Propagated range between the target and sensor, returned as a scalar or length-M row vector. If r is a vector, it has the same size as the vector input arguments of slant2range. 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 sr, anht, and tgtht.Units are in meters.

    Data Types: double

    Elevation angle between the target and propagated path r, returned as a scalar or length-M row vector. At long slant ranges, t_el differs from the elevation angle of the sensor due to atmosphere refraction. Units are in degrees.

    Data Types: double

    Effective earth radius factor, returned as a scalar or length-M row vector. This quantity is dimensionless.

    Data Types: double

    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 R2022b