ITS.ITU.PSeries.P2108 1.0
Part of the NTIA/ITS Propagation Library
Loading...
Searching...
No Matches
P2108.h
Go to the documentation of this file.
1
4#pragma once
5
6#include <string> // for std::string
7#include <unordered_map> // for std::unordered_map
8
9namespace ITS {
10namespace ITU {
11namespace PSeries {
12namespace P2108 {
13
14// Define cross-platform PROPLIB_API to export functions
15#ifndef DOXYGEN_SHOULD_SKIP
16 #ifndef PROPLIB_API
17 #ifdef _WIN32
18 #define PROPLIB_API extern "C" __declspec(dllexport)
19 #else
20 #define PROPLIB_API extern "C"
21 #endif
22 #endif
23#endif
24
26// Enums
27
37
38
53
54
57// clang-format off
78// clang-format on
79
81// Constants
83constexpr double PI = 3.14159265358979323846;
84
86// Public Functions
88 const double f__ghz,
89 const double theta__deg,
90 const double p,
91 double &L_ces__db
92);
94 const double f__ghz, const double d__km, const double p, double &L_ctt__db
95);
97 const double f__ghz,
98 const double h__meter,
99 const double w_s__meter,
100 const double R__meter,
101 const ClutterType clutter_type,
102 double &A_h__db
103);
104PROPLIB_API char *GetReturnStatusCharArray(const int code);
105PROPLIB_API void FreeReturnStatusCharArray(char *c_msg);
106
108// Private Functions
109std::string GetReturnStatus(const int code);
110double cot(const double x);
111double InverseComplementaryCumulativeDistribution(const double q);
112double Equation_2a(const double nu);
113double Equation_2b(
114 const double K_h2, const double h__meter, const double R__meter
115);
117 const double f__ghz,
118 const double h__meter,
119 const double w_s__meter,
120 const double R__meter
121);
123 const double f__ghz, const double d__km, const double p
124);
126 const double f__ghz, const double theta__deg, const double p
127);
129 const double f__ghz, const double d__km, const double p
130);
131
132
133} // namespace P2108
134} // namespace PSeries
135} // namespace ITU
136} // namespace ITS
double InverseComplementaryCumulativeDistribution(const double q)
Compute the inverse complementary cumulative distribution function approximation as described in Reco...
Definition InverseComplementaryCumulativeDistribution.cpp:25
constexpr double PI
Approximate value of .
Definition P2108.h:83
ClutterType
Clutter type enum, based on Table 3 in Section 3.1.
Definition P2108.h:29
@ OPEN_RURAL
Open/rural clutter type.
Definition P2108.h:31
@ TREES_FOREST
Trees/forest clutter type.
Definition P2108.h:34
@ DENSE_URBAN
Dense urban clutter type.
Definition P2108.h:35
@ SUBURBAN
Suburban clutter type.
Definition P2108.h:32
@ WATER_SEA
Water/sea clutter type.
Definition P2108.h:30
@ URBAN
Urban clutter type.
Definition P2108.h:33
ReturnCode
Return Codes defined by this software (0-127)
Definition P2108.h:58
@ ERROR32__FREQUENCY
Frequency must be between 2 and 67 GHz.
Definition P2108.h:69
@ ERROR31__STREET_WIDTH
Street width must be 0 meters.
Definition P2108.h:64
@ ERROR32__PERCENTAGE
Percentage must be between 0 and 100.
Definition P2108.h:71
@ ERROR31__CLUTTER_TYPE
Invalid value for clutter type.
Definition P2108.h:66
@ SUCCESS
Successful execution.
Definition P2108.h:59
@ ERROR33__FREQUENCY
Frequency must be between 10 and 100 GHz.
Definition P2108.h:74
@ ERROR33__PERCENTAGE
Percentage must be between 0 and 100.
Definition P2108.h:76
@ ERROR31__ANTENNA_HEIGHT
Antenna height must be 0 meters.
Definition P2108.h:63
@ ERROR31__CLUTTER_HEIGHT
Representative clutter height must be 0 meters.
Definition P2108.h:65
@ ERROR31__FREQUENCY
Frequency must be between 0.3 and 3 GHz.
Definition P2108.h:62
@ ERROR33__THETA
Elevation angle must be between 0 and 100 GHz.
Definition P2108.h:75
@ ERROR32__DISTANCE
Path distance must be 0.25 km.
Definition P2108.h:70
RepresentativeClutterHeight
Default values of the representative clutter height , in meters, by clutter type.
Definition P2108.h:45
@ R__DENSE_URBAN
for the dense urban clutter type
Definition P2108.h:51
@ R__SUBURBAN
for the suburban clutter type
Definition P2108.h:48
@ R__OPEN_RURAL
for the open/rural clutter type
Definition P2108.h:47
@ R__URBAN
for the urban clutter type
Definition P2108.h:49
@ R__WATER_SEA
for the trees/forest clutter type
Definition P2108.h:46
@ R__TREES_FOREST
for the trees/forest clutter type
Definition P2108.h:50
ReturnCode Section3p3_InputValidation(const double f__ghz, const double theta__deg, const double p)
Inputs-in-range validation for the Earth-space and aeronautical statistical clutter loss model (Secti...
Definition AeronauticalStatisticalModel.cpp:71
ReturnCode AeronauticalStatisticalModel(const double f__ghz, const double theta__deg, const double p, double &L_ces__db)
The Earth-space and aeronautical statistical clutter loss model as described in Section 3....
Definition AeronauticalStatisticalModel.cpp:31
double cot(const double x)
Helper function to calculate .
Definition AeronauticalStatisticalModel.cpp:94
ReturnCode HeightGainTerminalCorrectionModel(const double f__ghz, const double h__meter, const double w_s__meter, const double R__meter, const ClutterType clutter_type, double &A_h__db)
Height gain terminal correction model as described in Section 3.1.
Definition HeightGainTerminalCorrectionModel.cpp:33
ReturnCode Section3p1_InputValidation(const double f__ghz, const double h__meter, const double w_s__meter, const double R__meter)
Input validation for the height gain terminal correction model (Section 3.1).
Definition HeightGainTerminalCorrectionModel.cpp:95
double Equation_2b(const double K_h2, const double h__meter, const double R__meter)
Equation (2b) of Section 3.1.
Definition HeightGainTerminalCorrectionModel.cpp:143
double Equation_2a(const double nu)
Equation (2a) of Section 3.1.
Definition HeightGainTerminalCorrectionModel.cpp:122
char * GetReturnStatusCharArray(const int code)
Get an error message string (as C-style string) from a return code.
Definition ReturnCodes.cpp:72
void FreeReturnStatusCharArray(char *c_msg)
Free the memory allocated by GetReturnStatusCharArray.
Definition ReturnCodes.cpp:88
std::string GetReturnStatus(const int code)
Get an error message string from a return code.
Definition ReturnCodes.cpp:32
double TerrestrialStatisticalModelHelper(const double f__ghz, const double d__km, const double p)
Compute the clutter loss.
Definition TerrestrialStatisticalModel.cpp:59
ReturnCode TerrestrialStatisticalModel(const double f__ghz, const double d__km, const double p, double &L_ctt__db)
Statistical clutter loss model for terrestrial paths as described in Section 3.2.
Definition TerrestrialStatisticalModel.cpp:30
ReturnCode Section3p2_InputValidation(const double f__ghz, const double d__km, const double p)
Input validation for the statistical clutter loss model for terrestrial paths (Section 3....
Definition TerrestrialStatisticalModel.cpp:98
Privacy Policy FOIA Accessibility Information Quality