Featured Product Archive
The inventions and products featured on these pages were chosen either for their
uniqueness in the RF engineering realm, or are simply awesome (or ridiculous) enough
to warrant an appearance.
| 1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
<Previous
Next>
Many thanks to RF Cafe visitor
Michael M. for sending me a note about a very handy RF
propagation software tool provided free of charge by the French organization Centre
National d'Études Spatiales (CNES, National Centre for Space Studies).
The PROPAGATION (PropA)
dynamic link library (DLL) contains functions to compute Earth-Space propagation
losses according to ITU-R P.†
recommendations. Versions are available for both 32- and 64-bit Windows and Linux
operating systems, as well as for the C and Visual Basic programming languages.
Very conveniently, the DLL functions can be referenced from within an Excel spreadsheet
as well*, and a demo (demoprop.xls - see screen shot at right) is provided for reference.
To access the DLL contents, add the "Propa" module to your VBA (Visual Basic for
Applications) code and call away. A full list of the functions is given below, including
ones for gaseous, cloud and rain attenuation that factors in temperature, precipitation
intensity, and atmospheric noise, as well as for inputting geographic location (latitude,
longitude, and elevation) and antenna parameters.
CNES RF Propagation Calculations DLL Integrated into Excel 2021
Workbook
The PropA library can be downloaded here (new URL provided):
https://www.connectbycnes.fr/en/propa
PROPA_DLL_2017.zip was the CNES file version as of this original writing.
However, they seem to have reverted back to the 2016 version for some reason. I
do not have a copy of it. The compresses package contains all
necessary files along with a User Manual in PDF format. You will need to fill out
a form to get the file. CNES asks for user information but does not distribute it;
you will not be added to an email list.
CNES has indicated that the PropA library is no longer supported. The CNES Library
is publicly released and can be further distributed as long as credit is given to
CNES; neither warranty nor guarantee is provided; use PropA at your own risk. CNES
is working on an updated propagation application however there is no status information
available for it.
The MS-Excel interface is convenient. The DLL (PropA.dll or PropA64.dll) is copied
into the MS Windows path (C:\windows\system32). The download includes a file demoprop.xlsm;
demoprop includes a sample calculation and a link budget example. The demoprop file
has a VBA macro (.bas file) that provides the MS Excel interface to the DLL. The
VBA .bas file is also provided if a user wants to create their own spreadsheet using
the PropA functions. The .bas file is imported through MS Excel Developer … Visual
Basic menu.
The imported VBA is shown here:
Declare Function Agaz Lib "propa.dll" Alias "gaseous_attenuation@32" (ByVal freq
As Double, ByVal Elevation As Double, ByVal Temperature As Double, ByVal ro As Double)
As Double
Declare Function Acloud Lib "propa.dll" Alias "cloud_attenuation@24" (ByVal freq
As Double, ByVal Elevation As Double, ByVal L As Double) As Double
Declare Function Arain Lib "propa.dll" Alias "rain_attenuation@64" (ByVal lat
As Double, ByVal freq As Double, ByVal Elevation As Double, ByVal Indispo As Double,
ByVal hstation As Double, ByVal hpluie As Double, ByVal R001 As Double, ByVal polar
As Double) As Double
Declare Function Iscint Lib "propa.dll" Alias "scintillation@56" (ByVal Nwet
As Double, ByVal freq As Double, ByVal Elevation As Double, ByVal Indispo As Double,
ByVal hstation As Double, ByVal eta As Double, ByVal Diam As Double) As Double
Declare Function Nwet Lib "propa.dll" Alias "NWET@16" (ByVal latitude As Double,
ByVal longitude As Double) As Double
Declare Function TTC Lib "propa.dll" Alias "LWCC@24" (ByVal latitude As Double,
ByVal longitude As Double, ByVal Indispo As Double) As Double
Declare Function rain_height Lib "propa.dll" Alias "rain_height@16" (ByVal latitude
As Double, ByVal longitude As Double) As Double
Declare Function rain_intensity Lib "propa.dll" Alias "rain_intensity@24" (ByVal
latitude As Double, ByVal longitude As Double, ByVal Indispo As Double) As Double
Declare Function Temperature Lib "propa.dll" Alias "temperature@16" (ByVal latitude
As Double, ByVal longitude As Double) As Double
Declare Function WVC Lib "propa.dll" Alias "SWVD@16" (ByVal latitude As Double,
ByVal longitude As Double) As Double
Declare Function iwvc Lib "propa.dll" Alias "IWVC@24" (ByVal latitude As Double,
ByVal longitude As Double, ByVal Indispo As Double) As Double
Declare Function Agaz_exceeded Lib "propa.dll" Alias "gaseous_attenuation_exc@32"
(ByVal freq As Double, ByVal Elevation As Double, ByVal Temperature As Double, ByVal
iwvc As Double) As Double
Declare Function EFSR Lib "propa.dll" Alias "EFSR@24" (ByVal freq1 As Double,
ByVal freq2 As Double, ByVal Att_1 As Double) As Double
Declare Function XPD Lib "propa.dll" Alias "XPD@40" (ByVal Arain As Double, ByVal
titl_deg As Double, ByVal freq As Double, ByVal elev_deg As Double, ByVal prob As
Double) As Double
Declare Function Tmr Lib "propa.dll" Alias "TMR@8" (ByVal Ts As Double) As Double
Declare Function Tnoise Lib "propa.dll" Alias "noise_temperature@16" (ByVal A_total
As Double, ByVal Tmr As Double) As Double Public
Declare Function version Lib "propa.dll" Alias "version@0" () As Long
PROPA_DLL_2017.zip
is the file version as of this writing (link goes to the Archive.org page since
CNES removed the original download), and it contains all of the individual DLL
files along with a User Manual in PDF format. You will need to fill out a form to
get the file. I got mine a few weeks ago and have not received an unsolicited e-mail
from them, so appears CNES does not put on any kind of list.
† The ITU Radiocommunication Sector (ITU-R) is one of the three sectors
(divisions or units) of the International Telecommunication Union (ITU) and is responsible
for radio communications.
A list of ITU-R Propagation Recommendations can be found here:
The following list shows all the ITU-R Recommendations captured in the CNES PropA
DLL:
- ITU-R Radio Earth-Space Path.pdf
- R-REC-P.453-14-201908-I!!PDF-E.pdf
- R-REC-P.618-13-201712-I!!PDF-E.pdf
- R-REC-P.676-12-201908-I!!PDF-E.pdf
- R-REC-P.836-6-201712-I!!PDF-E.pdf
- R-REC-P.837-7-201706-I!!PDF-E.pdf
- R-REC-P.839-4-201309-I!!PDF-E.pdf
- R-REC-P.840-8-201908-I!!PDF-E.pdf
- R-REC-P.1510-1-201706-I!!PDF-E.pdf
* Michael says the DLL version he got a while back did not
work with 64-bit versions of Excel. He and a cohort created a 64-bit version and
offered it to CNES, but never heard back. It appears this circa 2017 file available
now does work because it does fine with my Excel 2021 version. If you have a problem,
Michael will provide his DLL.
A full list of functions is given below, including ones for gaseous, cloud and
rain attenuation that factors in temperature, precipitation intensity, unavailability,
and atmospheric noise, as well as for inputting geographic location (latitude, longitude,
and elevation) and antenna parameters.
Note: function calls are provided in both the original French and in English
translations: e.g. gaseous _attenuation and Agaz.
Note: check units carefully; e.g. ground station elevation angle can be in radians
or degrees depending on each specific function call; frequencies are listed in GHz;
temperatures in degrees kelvin
Function |
Units |
Input |
Units |
Comment |
rain_height() |
km |
latitude |
degrees |
|
|
|
longitude |
degrees |
|
|
|
|
|
|
gaseous_attenuation() |
dB |
frequency |
GHz |
frequency ≤ 350 GHz |
|
|
elevation angle |
radians |
elevation angle ≥ 5° |
|
|
temperature |
K |
|
|
|
WVC |
g/m³ |
|
|
|
|
|
|
Agaz() |
dB |
frequency |
GHz |
frequency ≤ 350 GHz |
|
|
elevation angle |
radians |
elevation angle ≥ 5° |
|
|
temperature |
K |
|
|
|
WVC |
g/m³ |
|
|
|
|
|
|
Acloud() |
dB |
frequency |
GHz |
frequency ≤ 200 GHz |
|
|
elevation angle |
radians |
|
|
|
TCC |
kg/m² |
1% ≤ unavailability ≤ 50% |
|
|
|
|
|
Arain() |
dB |
latitude |
degrees |
|
|
|
frequency |
GHz |
frequency ≤ 55 GHz |
|
|
elevation angle |
radians |
|
|
|
unavailability |
% |
0.001% ≤ unavailability ≤5% |
|
|
altitude |
km |
|
|
|
rain height |
km |
|
|
|
rain intensity |
mm/hr |
exceeded p% of average year |
|
|
polarization |
degrees |
tilt angle = 45° for circular polarization |
|
|
|
|
|
Iscint() |
dB |
NWET |
unitless |
|
|
|
frequency |
GHz |
7 GHz ≤ frequency ≤ 20 GHz |
|
|
elevation angle |
radians |
elevation angle ≥ 4° |
|
|
unavailability |
% |
0.1% ≤ unavailability ≤50% |
|
|
altitude |
km |
|
|
|
antenna efficiency |
% |
0 ≤ antenna efficiency ≤ 1 |
|
|
antenna diameter |
m |
|
|
|
|
|
|
NWET() |
unitless |
latitude |
degrees |
|
|
|
longitude |
degrees |
|
|
|
|
|
|
TCC() |
kg/m² |
latitude |
degrees |
|
|
|
longitude |
degrees |
|
|
|
unavailability |
% |
1% ≤ unavailability ≤ 50% |
|
|
|
|
|
TTC() |
kg/m² |
latitude |
degrees |
|
|
|
longitude |
degrees |
|
|
|
unavailability |
% |
1% ≤ unavailability ≤ 50% |
|
|
|
|
|
rain_intensity() |
mm/hr |
latitude |
degrees |
|
|
|
longitude |
degrees |
|
|
|
unavailability |
% |
ITU-R Rain Model calculates at 0.01% |
|
|
|
|
|
temperature() |
K |
latitude |
degrees |
|
|
|
longitude |
degrees |
|
|
|
|
|
|
WVC() |
g/m³ |
latitude |
degrees |
1% ≤ unavailability ≤ 50% |
|
|
longitude |
degrees |
|
|
|
|
|
|
IWVC() |
kg/m² |
latitude |
degrees |
|
|
|
longitude |
degrees |
|
|
|
unavailability |
% |
0.1% ≤ unavailability ≤ 50% |
|
|
|
|
|
gaseous_attenuation_exceeded() |
dB |
frequency |
GHz |
frequency ≤ 350 GHz |
|
|
elevation angle |
radians |
elevation angle ≥ 5° |
|
|
temperature |
K |
|
|
|
IWVC |
kg/m² |
based on link availability |
|
|
|
|
|
Agaz_exceeded() |
dB |
frequency |
GHz |
frequency ≤ 350 GHz |
|
|
elevation angle |
radians |
elevation angle ≥ 5° |
|
|
temperature |
K |
|
|
|
IWVC |
kg/m² |
based on link availability |
|
|
|
|
|
EFSR() |
dB |
frequency1 |
GHz |
|
|
|
frequency2 |
GHz |
frequency2 > frequency1 |
|
|
Arain |
dB |
|
|
|
|
|
|
XPD() |
dB |
Arain |
dB |
exceeded p% of average year |
|
|
polarization angle |
degrees |
tilt angle = 45° for circular polarization |
|
|
frequency |
GHz |
6 GHz ≤ frequency ≤ 55 GHz |
|
|
elevation angle |
degrees |
elevation angle ≤ 60° |
|
|
unavailability |
% |
0.001% ≤ unavailability ≤ 1.000%% |
|
|
|
|
|
|
|
|
|
|
TMR() |
K |
temperature |
K |
|
|
|
|
|
|
|
|
|
|
|
Tnoise() |
K |
A_sky |
dB |
less scintillation |
|
|
TMR |
K |
if TMR is not available set TMR = 275 K |
† See also
Error Calculation Excel Spreadsheet, by Michael Maguire.
Posted June 27, 2022 (updated 10/21/2022 with new DLL file
URL - Michael M.)
|