CNES RF Propagation Calculations PropA DLL - Free Download
Cool Product Report

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

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:

CNES PropA VBA Function List - RF Cafe

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