Xplanet
(quelloffen, Version 1.3.1 unter Linux Mint 22)
Xplanet ist eine Kommandozeilen-orientierte Software zum Erstellen von fotorealistischen Ansichten der Planeten des Sonnensystems. Über eine Konfigurationsdatei und Kommando-Optionen kann die Bildgestaltung gesteuert werden.
Installation aus den offiziellen Paketquellen:
sudo apt-get install xplanet xplanet-images
Installation per apturl
Über folgenden Befehl kann ein erstes Bild der Erde erzeugt werden mit 0° Breite und 0° Länge als Position unter dem Betrachter sowie mit Tag- und Nacht-Darstellung bei einer Bildgröße von 512 × 512 Pixeln:
xplanet -num_times 1 -output ~/Schreibtisch/xplanet.png
Komandozeilen-Optionen
Die unterstützten Komandozeilen-Optionen findet man über man xplanet
. Hier eine Auswahl:
Option | Beschreibung |
---|---|
-output | Der Pfad der auszugebenden Biddatei. Beispiel: -output ~/Schreibtisch/xplanet.png |
-num_times | Die Anzahl der Rendering-Vorgänge. Wird diese Option nicht angegeben, werden unbegrenzt viele Bilder ausgegeben und das Programm kann nur über Strg+C abgebrochen werden. Beispiel: -num_times 1 |
-latitude | Die geografische Breite unter dem Betrachter als Fließkommazahl (-origin wird ignoriert). Beispiel: -latitude 52.5 |
-longitude | Die geografische Länge unter dem Betrachter als Fließkommazahl (-origin wird ignoriert). Beispiel: -longitude 13.5 |
-geometry | Die Breite und Höhe des auszugebenden Bildes in Pixeln. Beispiel: -geometry 2048x1024 |
-background | Die Farbe oder Bilddatei des Hintergrundes. Beispiel: -background 0x002233 |
-body oder -target |
Der zu rendernde Himmelskörper, wobei sich eine Grafik mit der Textur des Himmelskörpers in ~/.xplanet/images oder /usr/share/xplanet/images befinden muss. Lediglich Erde und Sonne benötigen keine besondere Texturgrafik. Beispiel: -body mars |
-center | Der Mittelpunkt (x/y) des zu rendernden Objekts innerhalb der Grafik. Der Nullpunkt ist oben links. Beispiel: -center +512+500 |
-date | Der Zeitpunkt, für den das Objekt gerendert werden soll im Format YYYYMMDD.hhmmss. Wird dieser Wert nicht angegeben, wird die aktuelle Ortszeit angenommen. Beispiel: -date 20211104.073729 |
-label | Zeigt eine Beschriftung des Objekts an. |
-localtime | Das Objekt wird gerendert, als würde sich der Betrachter über dem Ort befinden, an dem die angebene Ortszeit herrscht (-longitude wird ignoriert). Beispiel: -localtime 15 |
-origin | Das Objekt wird gerendert, als würde sich der Betrachter im Mittelpunkt des angegebenen Objekts befinden. Beispiel: -origin moon |
-post_command | Ein Befehl, der ausgeführt wird, nachdem das Bild gerendert wurde. Beispiel: -post_command "bash /home/BENUTZERNAME/script.sh" |
-prev_command | Ein Befehl, der ausgeführt wird, bevor das Bild gerendert wird. Beispiel: -prev_command "bash /home/BENUTZERNAME/script.sh" |
-projection | Die Kartenprojektion, in der das Bild gerendert wird. Beispiel: -projection mercator |
-radius | Der Radius des zu rendernden Objekts in Prozent der Bildschirmhöhe. Ändert den Abstand des Betrachters zum Objekt. Beispiel: -radius 80 |
-range | Die virtuelle Entfernung zum Hintergrund. Beispiel: -range 3 |
-wait | Bild nach der angegebenen Zeit in Sekunden kontinuierlich aktualisieren. Beispiel: -wait 1800 |
Konfigurationsdatei
Bei der Erzeugung des Bildes liest xplanet folgende Konfigurationsdateien:
/etc/xplanet/config/default (systemweit) und
~/.xplanet/config/default (nur für den aktuellen Benutzer)
Die Konfigurationsdatei für den aktuellen Benutzer muss allerdings zunächst manuell angelegt werden, wobei man dazu am besten die systemweite Datei kopiert. Bei der Gelegenheit kann man auch gleich den Bilderordner anlegen:
mkdir -p ~/.xplanet/config
mkdir -p ~/.xplanet/images
cp /etc/xplanet/config/default ~/.xplanet/config/default
In diesen Dateien lassen sich nun weitere Einstellungen für das Rendern vornehmen. Beispielsweise:
[default]
...
draw_orbit=true # zeichnet die Umlaufbahnen der Planeten
Wolkenbilder hinzufügen
Um beim Rendern der Erde einen Wolkenhimmel hinzuzufügen, benötigt man dazu zunächst eine entsprechende Grafik, die man beispielsweise folgendermaßen herunterladen kann:
wget https://eoimages.gsfc.nasa.gov/images/imagerecords/57000/57747/cloud_combined_2048.jpg -P ~/.xplanet/images
Diese Grafik ist allerdings statisch, gibt also nicht die reale aktuelle Bewölkung wieder. Meines Wissens gibt es gegenwärtig keine unkommerziellen Anbieter von dynamischen Wolkenbildern.
In der Konfigurationsdatei ergänzt man nun in der Sektion [earth] folgende Zeile und speichert die Datei:
[earth]
...
cloud_map=cloud_combined_2048.jpg
Nun kann man das Bild erneut generieren (diesmal in den Bilderordner von xplanet):
xplanet -num_times 1 -latitude 52.5 -longitude 13.5 -geometry 2048x1024 -output ~/.xplanet/images/current.png
Texturen ergänzen
Um die Oberflächen anderer Himmelskörper wie Mond und Planeten ebenfalls fotorealistisch darstellen zu können, müssen deren Texturen erst heruntergeladen und in der Konfigurationsdatei referenziert werden.
Für den Mond beispielsweise:
wget https://svs.gsfc.nasa.gov/vis/a000000/a004700/a004720/lroc_color_poles_2k.tif -P ~/.xplanet/images
In der Konfigurationsdatei wird das Bild nun in der Sektion [moon] in der Variable map referenziert:
[moon]
...
map=lroc_color_poles_2k.tif
Dieser Befehl erzeugt dann ein Bild des Mondes von der Erde aus gesehen:
xplanet -num_times 1 -target moon -origin earth -geometry 2048x1024 -output ~/.xplanet/images/current.png
Es ist auch möglich, komplett vorgerenderte Bilder zu verwenden.
Für die Erde beispielsweise (einschließlich aktueller Bewölkung und Nachtbeleuchtung):
wget --header="Referer: http://www.die.net/" https://static.die.net/earth/mercator/1600.jpg -P ~/.xplanet/images
In der Konfigurationsdatei muss das Bild nun in der Sektion [earth] in der Variable map referenziert werden. Eine gesonderte Textur für die Nachtseite wird in der Variable night_map referenziert.
[earth]
...
map=1600.jpg
night_map=1600.jpg
In dem xplanet-Befehl wird dann die Bildgröße entsprechend dem heruntergeladenen Bild angepasst:
xplanet -num_times 1 -latitude 30 -longitude 13.5 -range 3 -geometry 1600x887 -output ~/.xplanet/images/current.png
Koordinatengitter anzeigen
Um ein Koordinatengitter anzuzeigen ändert man folgende Zeilen in der Sektion [default]:
[default]
...
grid=true # Koordinatengitter anzeigen
grid1=6 # Anzahl der Gitterlinien pro 90°
grid2=20 # Anzahl der Gitterpunkte zwischen den Linien
Gerendertes Bild als Desktop-Hintergrund einrichten
Ein von xplanet gerendertes Bild kann wie jedes andere Bild auch als Desktop-Hintergrund eingerichtet werden. Entweder man verwendet dazu die üblichen grafischen Bordmittel oder gsettings (der Platzhalter BENUTZERNAME ist durch den eigenen Benutzernamen zu ersetzen):
gsettings set org.cinnamon.desktop.background picture-uri file:///home/BENUTZERNAME/.xplanet/images/current.png
Damit bei jeder Anmeldung am Rechner das Hintergrundbild neu generiert wird, kann man ein kleines Skript anlegen, das man dann zu den Startprogrammen hinzufügt:
xed ~/.xplanet/script.sh
#!/bin/bash
cd ~/.xplanet/images/
wget --header="Referer: https://www.die.net/" https://static.die.net/earth/mercator/1600.jpg -O 1600.jpg
xplanet -num_times 1 -latitude 30 -longitude 13.5 -range 3 -radius 42 -geometry 1600x887 -center +800+420 -output current.png
Unter ► Einstellungen ► Startprogramme wird dieses Skript mit folgendem Befehl eingetragen:
bash /home/BENUTZERNAME/.xplanet/script.sh
Wenn man möchte, dass das Hintergrundbild in einem bestimmten Intervall automatisch aktualisiert wird, kann man dazu einen Cronjob einrichten. Dazu editiert man die Crontab mit dem Editor Nano:
crontab -e
Dort fügt man folgende Zeile hinzu, speichert die Datei (Strg+O) und schließt sie (Strg+X):
*/15 * * * * bash /home/BENUTZERNAME/.xplanet/script.sh
In diesem Beispiel wird das Skript alle 15 Minuten ausgeführt und damit das Bild aktualisiert.