Propagation models for Earth-space communications from ITU-R P.618
![]() |
7 months ago | |
---|---|---|
.github | 7 months ago | |
config | 1 year ago | |
data | 5 years ago | |
docs | 3 years ago | |
mod | 2 years ago | |
sandbox | 5 years ago | |
src | 7 months ago | |
test | 7 months ago | |
CMakeLists.txt | 2 years ago | |
LICENSE | 5 years ago | |
README.md | 1 year ago | |
TODO | 7 months ago |
This is a translation into code of ITU-R P.618 and other references given there and in this ITU table. The implementations I could find were all in Matlabese (from ITU itself or national offices), which I couldn't use, or don't seem to give the source (like this one).
You probably need to be familiar with the relevant ITU-R papers to use this at all. Eventually there will be a manual in lloda.github.io/prop-618.
The library is written in Fortran (-std=f2018
). It uses the C compatibility feature (bind(c)
) which makes it easy to call from C, or anything with an FFI. C headers are included, plus bindings for Python and Guile. These are automatically generated from the Fortran.
Building is the usual CMake recipe
cd build && cmake -DCMAKE_INSTALL_PREFIX=somewhere ..
make
make test
make install
el
instead of θ
or th
where this means elevation.The library is maybe halfway complete. Look at the TODO file or the tests in test/test-0.f90 to see what's implemented. The functions do work and pass ITU's validation table (linked below) but I'm not settled on function names and error handling, so the interface could change in the future.
.
(or the CMake build directory) being in the dynamic library path.This is the first time I write anything in Fortran; I'm using gfortran 8.2 and 8.3.