Radio coverage maps
Die nachfolgende (Installations-)Anleitung wurde erstmalig unter:
veröffentlicht (ab Beitrag Nr. 15).
Bei Bedarf nach einigermassen präzise und mit der Realität übereinstimmenden Netzabdeckungskarten sollten diese Netzabdeckungskarten selber mit dem kostenlosen Programm Signal-Server berechnet werden. Dazu benötigt man lediglich die genauen Koordinaten der gewünschten Mobilfunkantenne im WGS84-Format.
https://de.wikipedia.org/wiki/World_Geodetic_System_1984
Diese Koordinaten im WGS84-Format erhält man auf der BAKOM-Funksenderkarte über das Kontextmenü (rechte Maustaste).
https://map.geo.admin.ch/?topic=funksender
https://de.wikipedia.org/wiki/Kontextmen%C3%BC
Signal-Server ist:
- ein Programm zur Berechnung der Netzabdeckung eines Funksystems (coverage map).
- ein Programm zur Berechnung von Sichtverbindungen (P2P Analysis) und der Fresnelzonen von Richtfunkverbindungen (Richtstrahl).
Zwar sind bequeme Bedienoberflächen (GUI) für die Bedienung von Signal-Server erhältlich. Jedoch sind diese sehr mangelhaft. Deshalb kann der Einsatz einer Bedienoberfläche (GUI) für Signal-Server aktuell NICHT empfohlen werden!
Diese Installationsanleitung wurde für die Linuxdistribution:
SUSE Linux Enterprise Desktop 15 SP3 (SLED)
geschrieben und getestet.
Die Angabe des Tilde-Zeichen "~" entspricht dem Heimverzeichnis des aktuellen Benutzers. Zum Beispiel:
/home/foo
Erst nachdem die unten beschriebene Installation durchgeführt wurde, darf das Programm das erste Mal gestartet werden.
Falls keine Bedienoberfläche (GUI) für Signal-Server installiert ist, kann Signal-Server auf der Kommandozeile mit Rechenarbeit beauftragt werden.
Dabei sind die Parameter von Signal-Server zu beachten. Informationen zu den Parametern von Signal-Server erhält man beim Programmaufruf ohne Parameter:
# signalserver
Hier einige Beispiele vom Programmaufruf von Signal-Server:
- Netzabdeckungskarte berechnen (Normalauflösung: 90 Meter/3 Bogensekunden)
# signalserver -dbg -sdf ~/DEM/vfp -m -dbm -erp 1.0 -rt -90 -f 446.2 -R 100 -pm 2 -lat 46.5466 -lon 7.0186 -txh 1.0 -rxh 1.0 -o /tmp/Test_Netzabdeckung
- Sichtverbindung kontrollieren und Fresnelzone berechnen (Normalauflösung: 90 Meter/3 Bogensekunden)
# signalserver -ng -dbg -sdf ~/DEM/vfp -m -dbm -erp 1.0 -rt -90 -f 6000.0 -R 100 -pm 2 -lat 46.5466573 -lon 7.0186223 -txh 1.0 -rla 46.6043527 -rlo 7.3164414 -rxh 1.0 -o /tmp/Test_Richstrahl
- Netzabdeckungskarte berechnen (Hoch auflösend: 30 Meter/1 Bogensekunde)
# signalserverHD -dbg -sdf ~/DEM/vfp -m -dbm -erp 1.0 -rt -90 -f 446.2 -R 100 -pm 2 -lat 46.5466 -lon 7.0186 -txh 1.0 -rxh 1.0 -o /tmp/Test_Netzabdeckung_HD
- Sichtverbindung kontrollieren und Fresnelzone berechnen (Hoch auflösend: 30 Meter/1 Bogensekunde)
# signalserverHD -ng -dbg -sdf ~/DEM/vfp -m -dbm -erp 1.0 -rt -90 -f 6000.0 -R 100 -pm 2 -lat 46.5466573 -lon 7.0186223 -txh 1.0 -rla 46.6043527 -rlo 7.3164414 -rxh 1.0 -o /tmp/Test_Richstrahl_HD
Beim Aufruf von Signal-Server ist zu beachten, dass beim Parameter "-o" die Angabe des Dateinamens genügend Zeichen enthält!
Folgende Funkausbreitungsmodellen (radio propagation models) sind tauglich für die Berechnung von Netzabdeckungskarten in ländlichen und unverbauten Regionen:
Funkausbreitungsmodell | -pm | Berücksichtigt Freiraumdämpfung | Berücksichtigt Höhenmodell (DEM) |
---|---|---|---|
ITM | 1 | Ja | Ja |
LOS | 2 | Nein | Ja |
FSPL | 7 | Ja | Nein |
Signal-Server gibt die Netzabdeckungskarte als Grafikdatei im PPM-Format
(*.ppm)
aus. Mit Hilfe von ImageMagick kann die Grafikdatei ins PNG-Format
(*.png)
umgewandelt werden:
# convert /tmp/Test_Netzabdeckung.ppm -transparent white -channel Alpha PNG32:/tmp/Test_Netzabdeckung.png
Als nächster Schritt ist von Hand eine *.kmz-Datei zu erstellen.
In einem Texteditor die XML-Datei doc.kml erstellen. Beim Speichern der XML- Datei darauf achten, dass die Zeichenkodierung UTF-8 verwendet wird. Mit oder ohne BOM (Byte Order Mark) ist wahrscheinlich egal.
https://de.wikipedia.org/wiki/Extensible_Markup_Language
https://de.wikipedia.org/wiki/UTF-8
https://de.wikipedia.org/wiki/Byte_Order_Mark
Die XML-Datei doc.kml mit diesem Inhalt ausstatten:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<GroundOverlay>
<name>Titel - Netzabdeckungskarte</name>
<Icon>
<href>Test_Netzabdeckung.png</href>
</Icon>
<LatLonBox>
<north>49.0</north>
<east>10.0</east>
<south>45.0</south>
<west>5.0</west>
</LatLonBox>
</GroundOverlay>
</kml>
-
Unter
<name>
den Titel der Netzabdeckungskarte angeben. -
Unter
<href>
den Dateinamen der von Signal-Server erstellten Grafik mit der Netzabdeckungskarte angeben. Nur Dateiformat PNG(*.png)
zulässig! -
Unter
<LatLonBox>
müssen die korrekten Angaben der Positionen der beiden äusseren Bildecken der von Signal-Server erstellten Grafik mit der Netzabdeckungskarte eingetragen werden.Signal-Server gibt diese Positionen bei der Berechnung der Netzabdeckungskarte aus. Zum Beispiel:
|49.000000|10.000000|45.000000|5.000000|
Bei fehlenden Debug-Parameter "-dbg" ist dies in der Regel die einzige Ausgabe von Signal-Server beim Berechnen einer Netzabdeckungskarte. Diese Ausgabe muss in die korrekte LatLonBox-Angabe umgemünzt werden. Zum Beispiel:
<LatLonBox>
<north>49.0</north>
<east>10.0</east>
<south>45.0</south>
<west>5.0</west>
</LatLonBox>
Nach dem Erstellen und Editieren der XML-Datei doc.kml können die Dateien:
- XML-Datei doc.kml
- *.png-Datei mit der Netzabdeckungskarte
zu einem ZIP-Archiv (*.zip)
gepackt werden. Diesem neu erstellten ZIP-Archiv
muss die Dateiendung angepasst werden:
- Alt: *.zip
- Neu: *.kmz
Dieses ZIP-Archiv mit der Dateiendung (*.kmz)
kann dann Google Earth als
Projekt "gefüttert" werden. Siehe dazu das Kapitel "Google Earth".
Die Erstellung von *.kmz-Dateien kann auch automatisiert werden. Siehe dazu den Inhalt vom Unterverzeichnis:
output/GoogleEarth
der Signal-Server-Installation.
Die händisch erstellte *.kmz-Datei kann in Google Earth dargestellt werden.
https://de.wikipedia.org/wiki/Google_Earth
-
Im Webbrowser Google Earth starten. https://earth.google.com/web/
-
Unter "Projekte" den Eintrag "KML-Datei vom Computer importieren" wählen.
-
Händisch erstellte *.kmz-Datei hochladen.
-
Die Deckkraft der Ebene "Plot: " anpassen. Im Hamburgermenü von dieser Ebene den Eintrag "Deckkraft des Merkmals ändern".
Für die Anpassung der Deckkraft siehe auch dieses Youtube-Video ab 13:00 min: https://www.youtube.com/watch?v=MWYoX3-G3gM
Alternativ zu Google Earth kann die Darstellung mit Kartenmaterial von Open Street Map (OSM) im Webbrowser erfolgen.
https://de.wikipedia.org/wiki/OpenStreetMap
Einige nette Beispiel von Netzabdeckungskarten mit der Darstellung auf Basis von "Open Street Map"-Kartenmaterial (OSM) findet man im Unterverzeichnis:
output/OpenLayers
der Signal-Server-Installation.
Die in diesem Kapitel vorgestellte Lösung erlaubt die Darstellung mit diesem Kartenmaterial:
-
OpenStreetMap (OSM) https://www.openstreetmap.org/
-
OpenTopoMap https://opentopomap.org/
Vorgängig ist eine HTML-Datei mit der Dateiendung *.html im Texteditor zu erstellen. Beim Speichern der HTML-Datei darauf achten, dass die Zeichenkodierung UTF-8 verwendet wird. Mit oder ohne BOM (Byte Order Mark) ist wahrscheinlich egal.
https://de.wikipedia.org/wiki/Hypertext_Markup_Language
https://de.wikipedia.org/wiki/UTF-8
https://de.wikipedia.org/wiki/Byte_Order_Mark
Diese HTML-Datei ist im Texteditor mit folgenden Inhalt zu befüllen. Leerzeichen am Zeilenanfang beachten!
=> Siehe Verzeichnis OpenLayers/*.html
Wird diese HTML-Datei in einem Webbrowser geöffnet, so wird die Netzabdeckungskarte auf der OpenStreetMap-Karte oder OpenTopoMap-Karte dargestellt. Dazu werden vom Webbrowser gemäss den Anweisungen in der HTML-Datei zwei JavaScripts aus dem Internet heruntergeladen und für die Darstellung dieser HTML-Datei eingesetzt:
- OpenLayers https://de.wikipedia.org/wiki/OpenLayers
https://github.com/walkermatt/ol-layerswitcher
Die Netzabdeckungskarte wird vom JavaScript OpenLayers aus der in der HTML- Datei in der Zeile:
url: 'file:///tmp/coveragemap.png',
angegebene Grafikdatei (*.png)
geladen. Im abgebildeten Beispiel ist dies die
Grafikdatei unter:
/tmp/coveragemap.png
welche lokal auf dem Linux-Rechner abgelegt wurde (SSD oder Festplatte). Die Grafikdatei Coveragemap.png sollte die mit Signal-Server berechnete Netzabdeckungskarte enthalten.
Diese url-Zeile kann in der HTML-Datei den eigenen Wünschen entsprechend angepasst werden. Beim Einsatz des Webbrowsers Firefox sind die Hinweise unter: https://kb.mozillazine.org/Links_to_local_pages_do_not_work zu beachten.
Weiter muss in der HTML-Datei die Zeile:
const imageExtent = [6.0, 46.0, 8.0, 48.0];
angepasst werden. Diese Zeile muss die korrekten Angaben der Positionen der beiden äusseren Bildecken der von Signal-Server erstellten Grafik mit der Netzabdeckungskarte enthalten. Siehe dazu die Angaben zur Erstellung der *.kmz-Datei für Google Earth.
Die Darstellung der Netzabdeckungskarte erfolgt im Webbrowser mit der Kartenprojektion:
EPSG:3857 => WGS 84 Web Mercator
https://de.wikipedia.org/wiki/Kartennetzentwurf
https://en.wikipedia.org/wiki/Web_Mercator_projection
Zur Fehlersuche sollte im Webbrowser Firefox die Taste <F12>
betätigt werden.
Danach die HTML-Datei neu laden. Interessante Angaben für die Fehlersuche
enthält das Register "Konsole" und "Netzwerkanalyse" im Werkzeugkasten:
Werkzeuge für Webentwickler
Signal-Server berechnet die Netzabdeckungskarten und die Sichtverbindungen (P2P) und deren Fresnelzonen.
https://github.com/GrandDixence/Signal-Server
https://de.wikipedia.org/wiki/Fresnelzone
Signal-Server wurde in der Programmiersprache C/C++ geschrieben.
Getester Git-Stand: 11f992c vom 03.02.2022
Anforderungen:
- C++14 konformer C++ Compiler (GCC,G++ / clang)
- Build-Umgebung für C++ (Linker, C++ Standardbibliothek und so weiter)
- CMake v3.5 oder neuer
- Convert (Teil von ImageMagick)
- Für einige zusätzliche Skripte: Bash und Python-Interpreter
- Einige dynamische Programmbibliotheken (Shared library/DLL): pthread: POSIX threads library bz2: The bzip2 runtime library dl: Open and close a shared object - POSIX conform z: zlib is a general-purpose lossless data-compression library
# git clone https://github.com/GrandDixence/Signal-Server /var/mail/Signal-Server/
# cd /var/mail/Signal-Server/
# cd src
# cmake .
# cmake --build .
# sudo cmake --build . --target install
Nach der Installation von Signal-Server können die Daten für das Höhenmodell heruntergeladen werden. Benötigt wird ein "Digitales Höhenmodell" (DEM):
https://de.wikipedia.org/wiki/Digitales_H%C3%B6henmodell
Generell sind für die Schweiz folgende Höhenmodelle zu beachten: https://info.skitourenguru.ch/index.php/algorithmus/31-dem
Randbemerkung: Der Einsatz von Skitourenguru ist allen WintersportlerInnen abseits der markierten Pisten zu empfehlen:
Signal-Server unterstützt für das Höhenmodell mehrere verschiedene Datenformate. Mehr Informationen zu den von Signal-Server unterstützten Datenformate bietet die README.md-Datei von Signal-Server:
https://github.com/GrandDixence/Signal-Server#readme
Höhenmodelle für den weltweiten Einsatz mit normaler Auflösung (90 Meter;
3 Bogensekunden) können von der Webseite von ViewFinderPanorma (VFP) im
HGT-Format (*.hgt)
heruntergeladen werden. Gewünschte Kachel auf der Weltkarte
auswählen und herunterladen.
http://viewfinderpanoramas.org/Coverage%20map%20viewfinderpanoramas_org3.htm
Diese HGT-Dateien im Verzeichnis:
~/DEM/vfp
ablegen.
Die im Lieferumfang von Signal-Server enthaltene Konverterprogramme für die Höhenmodelle kompilieren:
# cd /var/mail/Signal-Server/
# cd utils/sdf/usgs2sdf
# cmake .
# cmake --build .
# sudo cmake --build . --target install
Höhenmodelle im HGT-Format (*.hgt)
ins SDF-Format (*.sdf)
umwandeln:
# cd ~/DEM/vfp
# convert_sdf.sh
Nach der Konvertierung müssen die Höhenmodelle diese Schreibweise für den Dateinamen zwingend einhalten:
- Normale Auflösung für "signalserver":
ba:be:la:le.sdf
- Hohe Auflösung für "signalserverHD":
ba:be:la:le-hd.sdf
ba Anfang Breitengrad (zum Beispiel: 46° N -> 46)
be Ende Breitengrad (zum Beispiel: 47° N -> 47)
la Anfang Längengrad (zum Beispiel: 7° E -> 353)
lb Ende Längengrad (zum Beispiel: 8° E -> 352)
Installation von Signal-Server und die Höhenmodelle testen mit einigen Aufrufen ohne Bedienoberfläche (GUI). Siehe dazu Kapitel "Programmstart".
Im Zusammenhang mit den Höhenmodellen kann auch der Einsatz einer Webseite zur Berechnung des Bergpanoramas sinnvoll sein. Zum Beispiel:
https://www.udeuschle.de/panoramas/makepanoramas.htm
Auf der Webseite von ViewFinderPanorma (VFP) sind für einige Regionen auch Höhenmodelle in höherer Auflösung (30 Meter; 1 Bogensekunde) erhältlich. Diese hochauflösenden Höhenmodelle benötigen eine spezielle Behandlung.
Diese hochauflösenden Höhenmodelle werden im weiteren "HD-Höhenmodelle" genannt.
HD-Höhenmodell von der Webseite von ViewFinderPanorma (VFP) im HGT-Format
(*.hgt)
heruntergeladen. Gewünschte Kachel auf der Weltkarte auswählen und
herunterladen.
http://viewfinderpanoramas.org/Coverage%20map%20viewfinderpanoramas_org1.htm
oder alternativ von der Webseite:
http://viewfinderpanoramas.org/dem3.html
herunterladen.
Diese HGT-Dateien im Verzeichnis:
~/DEM/vfp
ablegen.
Höhenmodelle im HGT-Format (*.hgt)
ins SDF-Format (*-hd.sdf)
umwandeln:
# cd ~/DEM/vfp
# convert_sdf_hd.sh
Signal-Server deinstallieren:
# rm -R /var/mail/Signal-Server/
# rm /usr/local/bin/signalserver
# rm /usr/local/bin/signalserverHD
# rm /usr/local/bin/signalserverLIDAR
# rm /usr/local/bin/usgs2sdf
# rm /usr/local/bin/srtm2sdf
# rm /usr/local/bin/srtm2sdf-hd
ImageMagick deinstallieren.