height_path_data#

pycraf.pathprof.height_path_data(lon_t, lat_t, lon_r, lat_r, step, zone_t=CLUTTER.UNKNOWN, zone_r=CLUTTER.UNKNOWN)[source]#

Calculate height profile auxillary data needed for atten_path_fast.

This can be used to cache height-profile data. Since it is independent of frequency, timepercent, Tx and Rx heights, etc., one can re-use it to save computing time when doing batch jobs. It is assumed that the Tx is at a fixed position, while the Rx “moves” accross the specified paths (since the attenuation is completely symmetric, this is without loss of generality).

Parameters:
lon_t, lat_tdouble

Geographic longitude/latitude of start point (transmitter) [deg]

lon_r, lat_rdouble

Geographic longitude/latitude of end point (receiver) [deg]

stepdouble

Distance resolution of height profile along path [m]

zone_t, zone_rCLUTTER enum, optional

Clutter type for transmitter/receiver terminal. (default: CLUTTER.UNKNOWN)

Returns:
hprof_datadict

Dictionary with height profile auxillary data.

The dictionary contains the following entities (the path length is m):

  • “lons”, “lats” : ndarray 1D (float; (m,))

    Longitudes and latitudes of path.

    This is returned for information, only. It is not needed by atten_path_fast!

  • “lon_mids”, “lat_mids” : ndarray 1D (float; (m,))

    Path center longitudes and latitudes of path. The values at index i in these arrays are the midpoints of the paths from lons[0] to lons[i] (likewise for lats).

    This is returned for information, only. It is not needed by atten_path_fast!

  • “distances” : ndarray 1D (float; (m,))

    Distances of each point in the path from Tx position.

  • “heights” : ndarray 1D (float; (m,))

    Height profile.

  • “bearing” : float

    Start bearing of path.

    This is returned for information, only. It is not needed by atten_path_fast!

  • “backbearings” : ndarray 1D (float; (m,))

    Back-bearing of each point in the path.

    This is returned for information, only. It is not needed by atten_path_fast!

  • “omega” : ndarray 1D (float; (m,))

    The omega values for each point in the path.

  • “d_tm”, “d_lm” : ndarray 1D (float; (m,))

    The d_tm and d_lm values for each point in the path.

  • “d_ct”, “d_cr” : ndarray 1D (float; (m,))

    The d_ct and d_cr values for each point in the path.

  • “zone_t” : int

    Clutter type at Tx.

  • “zone_r” : ndarray 1D (int; (m,))

    Clutter type at Rx. (Currently only a single type is used.)

  • “N0”, “delta_N”, “beta0” : ndarray 1D (float; (m,))

    The N0, delta_N, and beta0 values for each point in the path.

Notes

Currently, no sea or lake bodies are accounted for. Also the clutter type of the receiver is fixed, while one could also think of using different clutter types (in the array). You can modify the returned arrays in hprof_data, of course, before feeding into atten_path_fast.