Over astroterm
astroterm is een lichtgewicht programma geschreven in C dat een interactieve sterrenkaart direct in de terminal projecteert. Met behulp van ASCII- en Unicode-graphics kunnen gebruikers de real-time posities van sterren, planeten en sterrenbeelden visualiseren zonder dat daar een telescoop voor nodig is.
Belangrijkste kenmerken:
- Hoge aanpasbaarheid: Gebruikers kunnen specifieke datums, tijden en locaties (via coördinaten of stadsnamen) instellen om de hemel te verkennen.
- Visuele details: Het programma ondersteunt nauwkeurige maanfasen en gedetailleerde sterrenbeeldfiguren.
- Performance: De tool is geoptimaliseerd voor snelle ASCII-rendering.
Installatie en Gebruik
Het programma is breed beschikbaar en kan worden geïnstalleerd via diverse package managers zoals pacman (Arch Linux), dnf (Fedora), Homebrew (macOS), Nix en Guix. Daarnaast zijn er vooraf gebouwde executables beschikbaar voor Unix en Windows. Via uitgebreide command-line opties kunnen parameters zoals de helderheidsdrempel van sterren, kleurgebruik en animatiesnelheid worden aangepast.
Technische basis
De software maakt gebruik van betrouwbare wetenschappelijke bronnen voor zijn data, waaronder de Yale Bright Star Catalog, IAU Star Names en data van het NASA Jet Propulsion Laboratory.
🌌 astroterm
astroterm is constant in ontwikkeling. Suggesties of bugs kunnen worden gemeld via een 'issue'. Voor richtlijnen over het bouwen, testen en bijdragen aan astroterm kun je kijken in CONTRIBUTING.md.
Kenmerken
- Zeer aanpasbaar: Kies elke datum, tijd en locatie om hemelse gebeurtenissen uit het verleden, heden of de toekomst te verkennen.
- Nauwkeurige weergave: Bekijk de maan, sterren en planeten met de precisie die terminal-graphics toelaten.
- Maanfasen: Nauwkeurige maanfasen in real-time.
- Sterrenbeeldfiguren: Gedetailleerde vormen van sterrenbeelden.
- Prestatie-geoptimaliseerd: Lichtgewicht en snelle ASCII-rendering.
Installatie
Er zijn verschillende installatiemethoden beschikbaar, afhankelijk van je platform. Als deze niet voldoen, kun je het programma zelf vanaf de broncode bouwen. Raadpleeg de sectie 'Probleemoplossing' voor hulp bij eventuele problemen.
Arch Linux
Je kunt astroterm installeren vanuit de extra repository met pacman:
pacman -S astroterm
Fedora
Je kunt astroterm direct installeren vanuit de Fedora package repository (voor Fedora 40+):
sudo dnf install astroterm
Homebrew
Installatie via Homebrew:
brew install astroterm
Nix
Je kunt het pakket uitproberen in een tijdelijke omgeving met het volgende commando:
nix-shell -I nixpkgs=channel:nixpkgs-unstable -p astroterm --command astroterm
Argumenten worden toegevoegd door het commando tussen aanhalingstekens te plaatsen. Bijvoorbeeld:
nix-shell -I nixpkgs=channel:nixpkgs-unstable -p astroterm --command "astroterm -u -c"
Om astroterm beschikbaar te maken in je $PATH, voeg je het toe aan je configuration.nix:
environment.systemPackages = with pkgs; [
...
astroterm
]
Guix
Je kunt astroterm direct installeren vanuit het Guix main channel vanaf commit 4b5f0408e66392ab745dc0f7830732217d88f17d:
guix time-machine --commit=4b5f0408e66392ab745dc0f7830732217d88f17d -- shell astroterm
Of na een guix pull:
guix shell astroterm -- astroterm --help # om te proberen
guix package --install astroterm # toevoegen aan huidig profiel
Vooraf gebouwde executable
Unix
Download de nieuwste executable met wget:
wget -O astroterm "https://github.com/da-luce/astroterm/releases/latest/download/astroterm-<os>-<arch>"
Vervang <os> door het juiste platform:
- Linux:
linux
- macOS:
darwin
Vervang <arch> door de juiste architectuur:
- Linux:
x86_64 (ondersteuning voor arm64 volgt zodra Ubuntu arm64 runners beschikbaar zijn)
- Apple Silicon (M-serie):
aarch64
- Intel-gebaseerde Macs:
x86_64
Voer de executable uit:
chmod +x ./astroterm
./astroterm
Windows
Download het nieuwste .exe bestand via PowerShell's Invoke-WebRequest:
Invoke-WebRequest -Uri "https://github.com/da-luce/astroterm/releases/latest/download/astroterm-win-x86_64.exe" -OutFile "astroterm.exe"
Voer de .exe uit:
.\astroterm.exe
Gebruik
Opties
De --help vlag toont alle ondersteunde opties: Usage: astroterm [OPTION]...
-a, --latitude=<graden>: Breedtegraad van de waarnemer [-90°, 90°] (standaard: 0.0)
-o, --longitude=<graden>: Lengtegraad van de waarnemer [-180°, 180°] (standaard: 0.0)
-d, --datetime=<jjjj-mm-ddThh:mm:ss>: Waarnemingstijdstip in UTC
-t, --threshold=<float>: Render alleen sterren helderder dan deze magnitude (standaard: 5.0)
-l, --label-thresh=<float>: Label sterren helderder dan deze magnitude (standaard: 0.25)
-f, --fps=<int>: Frames per seconde (standaard: 24)
-s, --speed=<float>: Snelheidsmultiplier voor animatie (standaard: 1.0)
-c, --color: Terminalkleuren inschakelen
-C, --constellations: Teken sterrenbeeldfiguren. Let op: een sterrenbeeld wordt alleen getekend als alle sterren in de figuur boven de drempelwaarde liggen.
-g, --grid: Teken een azimutaal raster
-u, --unicode: Gebruik unicode-tekens
-b, --braille: Gebruik braille-tekens voor sterrenbeeldlijnen (vereist Unicode)
-q, --quit-on-any: Sluit af bij elke toetsaanslag (standaard is afsluiten via 'q' of 'ESC')
-m, --metadata: Toon metadata
-r, --aspect-ratio=<float>: Overschrijf de berekende aspectratio van de terminalcel. Gebruik dit als de projectie niet 'vierkant' is. Een waarde rond de 2.0 werkt goed in de meeste gevallen.
-h, --help: Print dit helpbericht
-B, --bash-completions: Print bash completions
-i, --city=<stadsnaam>: Gebruik de breedte- en lengtegraad van de opgegeven stad. Zet namen met meerdere woorden tussen enkelvoudige of dubbele aanhalingstekens. Een lijst met beschikbare steden is te vinden op: https://github.com/da-luce/astroterm/blob/main/data/cities.csv
-v, --version: Toon versie-informatie en sluit af
Shell Completions
Om Tab-aanvullingen in Bash in te schakelen, voeg je de volgende regel toe aan je ~/.bashrc:
source <(astroterm --bash-completions)
Voorbeeld 1
Om het "draaiende wereldbol"-effect te krijgen zoals getoond in de README GIF, gebruik je de volgende vlaggen:
astroterm --color --constellations --speed 10000 --fps 64 --city Singapore
of kort:
astroterm -cC -s 10000 -f 64 -i Singapore
Elke stad rond de evenaar zal werken. Locaties dichter bij de polen zullen er anders uitzien, omdat de schijnbare beweging van de sterren daar meer circulair is rond de hemelpool in plaats van een vegende beweging over de hemel.
Voorbeeld 2
Stel dat we de hemel willen bekijken om 5:00 uur 's ochtends (Eastern Time) op 16 juli 1969—de ochtend van de lancering van Apollo 11 vanuit het Kennedy Space Center in Florida. We voeren dan uit:
astroterm --latitude 28.573469 --longitude -80.651070 --datetime 1969-7-16T8:00:00
Omdat het vinden van precieze coördinaten lastig kan zijn, kun je ook de dichtstbijzijnde grote stad gebruiken voor een vergelijkbaar resultaat:
astroterm --city Orlando --datetime 1969-7-16T8:00:00 -m
Om sterrenbeelden en kleur toe te voegen, voeg je de opties --constellations --color toe.
Wanneer je de huidige tijd wilt gebruiken, laat je de --datetime optie weg. Voor je huidige locatie moet je nog steeds de --lat en --long opties specificeren, of de dichtstbijzijnde stad opgeven met de --city optie.
Voor meer opties en hulp, voer astroterm -h of astroterm --help uit.
Tips:
- Gebruik een tool zoals LatLong om je breedte- en lengtegraad te vinden.
- Stermagnitudes nemen af naarmate de schijnbare helderheid toeneemt; om dus meer sterren te tonen, moet je de drempelwaarde (threshold) verhogen.
Probleemoplossing
Release kan niet worden gedownload via Curl
Curl volgt om redenen de redirect naar de nieuwste release niet. Gebruik wget om de nieuwste release te downloaden, hardcode de tag in de link bij gebruik van curl, of download direct via de releases-pagina.
Defecte Unicode op Linux
Als Unicode-tekens niet correct worden weergegeven in de terminal, moet je mogelijk de locale van je systeem configureren om Unicode te ondersteunen.
Stel de locale tijdelijk in (voeg dit toe aan ~/.bashrc of equivalent om dit permanent af te dwingen):
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
Installeer en configureer locales (voorbeeld voor Ubuntu/Debian):
sudo apt update
sudo apt install -y locales
sudo dpkg-reconfigure locales
Selecteer tijdens de configuratie en_US.UTF-8 als de standaard locale.
Referenties
Veel dank aan de volgende bronnen, die onmisbaar waren voor de ontwikkeling van dit project:
- Map Projections-A Working Manual door John P. Snyder
- Wikipedia
- Atractor
- Jon Voisey's Blog: Following Kepler
- Celestial Programming: Greg Miller's Astronomy Programming Page
- Practical Astronomy with your Calculator door Peter Duffett-Smith
- NASA Jet Propulsion Laboratory
- Paul Schlyter's "How to compute planetary positions"
- Dan Smith's "Meeus Solar Position Calculations"
- Bryan Weber's "Orbital Mechanics Notes"
- ASCOM
- A Fast Bresenham Type Algorithm For Drawing Ellipses
Gegevensbronnen
- Sterren: Yale Bright Star Catalog
- Sternamen: IAU Star Names
- Sterrenbeeldfiguren: Stellarium (Geconverteerd van Hipparchus naar BSC5 indexen via de HYG Database—zie
convert_constellations.py)
- Steden: GeoNames (Gefilterd en ingekort via
filter_cities.py)
- Planetaire baan-elementen: NASA Jet Propulsion Laboratory
- Planetaire magnitudes: Computing Apparent Planetary Magnitudes for The Astronomical Almanac
🌌 astroterm
astroterm is constant in ontwikkeling. Suggesties of bugs kunnen worden gemeld via een 'issue'. Voor richtlijnen over het bouwen, testen en bijdragen aan astroterm kun je kijken in CONTRIBUTING.md.
Kenmerken
- Zeer aanpasbaar: Kies elke datum, tijd en locatie om hemelse gebeurtenissen uit het verleden, heden of de toekomst te verkennen.
- Nauwkeurige weergave: Bekijk de maan, sterren en planeten met de precisie die terminal-graphics toelaten.
- Maanfasen: Nauwkeurige maanfasen in real-time.
- Sterrenbeeldfiguren: Gedetailleerde vormen van sterrenbeelden.
- Prestatie-geoptimaliseerd: Lichtgewicht en snelle ASCII-rendering.
Installatie
Er zijn verschillende installatiemethoden beschikbaar, afhankelijk van je platform. Als deze niet voldoen, kun je het programma zelf vanaf de broncode bouwen. Raadpleeg de sectie 'Probleemoplossing' voor hulp bij eventuele problemen.
Arch Linux
Je kunt astroterm installeren vanuit de extra repository met pacman:
pacman -S astroterm
Fedora
Je kunt astroterm direct installeren vanuit de Fedora package repository (voor Fedora 40+):
sudo dnf install astroterm
Homebrew
Installatie via Homebrew:
brew install astroterm
Nix
Je kunt het pakket uitproberen in een tijdelijke omgeving met het volgende commando:
nix-shell -I nixpkgs=channel:nixpkgs-unstable -p astroterm --command astroterm
Argumenten worden toegevoegd door het commando tussen aanhalingstekens te plaatsen. Bijvoorbeeld:
nix-shell -I nixpkgs=channel:nixpkgs-unstable -p astroterm --command "astroterm -u -c"
Om astroterm beschikbaar te maken in je $PATH, voeg je het toe aan je configuration.nix:
environment.systemPackages = with pkgs; [
...
astroterm
]
Guix
Je kunt astroterm direct installeren vanuit het Guix main channel vanaf commit 4b5f0408e66392ab745dc0f7830732217d88f17d:
guix time-machine --commit=4b5f0408e66392ab745dc0f7830732217d88f17d -- shell astroterm
Of na een guix pull:
guix shell astroterm -- astroterm --help # om te proberen
guix package --install astroterm # toevoegen aan huidig profiel
Vooraf gebouwde executable
Unix
Download de nieuwste executable met wget:
wget -O astroterm "https://github.com/da-luce/astroterm/releases/latest/download/astroterm-<os>-<arch>"
Vervang <os> door het juiste platform:
- Linux:
linux
- macOS:
darwin
Vervang <arch> door de juiste architectuur:
- Linux:
x86_64 (ondersteuning voor arm64 volgt zodra Ubuntu arm64 runners beschikbaar zijn)
- Apple Silicon (M-serie):
aarch64
- Intel-gebaseerde Macs:
x86_64
Voer de executable uit:
chmod +x ./astroterm
./astroterm
Windows
Download het nieuwste .exe bestand via PowerShell's Invoke-WebRequest:
Invoke-WebRequest -Uri "https://github.com/da-luce/astroterm/releases/latest/download/astroterm-win-x86_64.exe" -OutFile "astroterm.exe"
Voer de .exe uit:
.\astroterm.exe
Gebruik
Opties
De --help vlag toont alle ondersteunde opties: Usage: astroterm [OPTION]...
-a, --latitude=<graden>: Breedtegraad van de waarnemer [-90°, 90°] (standaard: 0.0)
-o, --longitude=<graden>: Lengtegraad van de waarnemer [-180°, 180°] (standaard: 0.0)
-d, --datetime=<jjjj-mm-ddThh:mm:ss>: Waarnemingstijdstip in UTC
-t, --threshold=<float>: Render alleen sterren helderder dan deze magnitude (standaard: 5.0)
-l, --label-thresh=<float>: Label sterren helderder dan deze magnitude (standaard: 0.25)
-f, --fps=<int>: Frames per seconde (standaard: 24)
-s, --speed=<float>: Snelheidsmultiplier voor animatie (standaard: 1.0)
-c, --color: Terminalkleuren inschakelen
-C, --constellations: Teken sterrenbeeldfiguren. Let op: een sterrenbeeld wordt alleen getekend als alle sterren in de figuur boven de drempelwaarde liggen.
-g, --grid: Teken een azimutaal raster
-u, --unicode: Gebruik unicode-tekens
-b, --braille: Gebruik braille-tekens voor sterrenbeeldlijnen (vereist Unicode)
-q, --quit-on-any: Sluit af bij elke toetsaanslag (standaard is afsluiten via 'q' of 'ESC')
-m, --metadata: Toon metadata
-r, --aspect-ratio=<float>: Overschrijf de berekende aspectratio van de terminalcel. Gebruik dit als de projectie niet 'vierkant' is. Een waarde rond de 2.0 werkt goed in de meeste gevallen.
-h, --help: Print dit helpbericht
-B, --bash-completions: Print bash completions
-i, --city=<stadsnaam>: Gebruik de breedte- en lengtegraad van de opgegeven stad. Zet namen met meerdere woorden tussen enkelvoudige of dubbele aanhalingstekens. Een lijst met beschikbare steden is te vinden op: https://github.com/da-luce/astroterm/blob/main/data/cities.csv
-v, --version: Toon versie-informatie en sluit af
Shell Completions
Om Tab-aanvullingen in Bash in te schakelen, voeg je de volgende regel toe aan je ~/.bashrc:
source <(astroterm --bash-completions)
Voorbeeld 1
Om het "draaiende wereldbol"-effect te krijgen zoals getoond in de README GIF, gebruik je de volgende vlaggen:
astroterm --color --constellations --speed 10000 --fps 64 --city Singapore
of kort:
astroterm -cC -s 10000 -f 64 -i Singapore
Elke stad rond de evenaar zal werken. Locaties dichter bij de polen zullen er anders uitzien, omdat de schijnbare beweging van de sterren daar meer circulair is rond de hemelpool in plaats van een vegende beweging over de hemel.
Voorbeeld 2
Stel dat we de hemel willen bekijken om 5:00 uur 's ochtends (Eastern Time) op 16 juli 1969—de ochtend van de lancering van Apollo 11 vanuit het Kennedy Space Center in Florida. We voeren dan uit:
astroterm --latitude 28.573469 --longitude -80.651070 --datetime 1969-7-16T8:00:00
Omdat het vinden van precieze coördinaten lastig kan zijn, kun je ook de dichtstbijzijnde grote stad gebruiken voor een vergelijkbaar resultaat:
astroterm --city Orlando --datetime 1969-7-16T8:00:00 -m
Om sterrenbeelden en kleur toe te voegen, voeg je de opties --constellations --color toe.
Wanneer je de huidige tijd wilt gebruiken, laat je de --datetime optie weg. Voor je huidige locatie moet je nog steeds de --lat en --long opties specificeren, of de dichtstbijzijnde stad opgeven met de --city optie.
Voor meer opties en hulp, voer astroterm -h of astroterm --help uit.
Tips:
- Gebruik een tool zoals LatLong om je breedte- en lengtegraad te vinden.
- Stermagnitudes nemen af naarmate de schijnbare helderheid toeneemt; om dus meer sterren te tonen, moet je de drempelwaarde (threshold) verhogen.
Probleemoplossing
Release kan niet worden gedownload via Curl
Curl volgt om redenen de redirect naar de nieuwste release niet. Gebruik wget om de nieuwste release te downloaden, hardcode de tag in de link bij gebruik van curl, of download direct via de releases-pagina.
Defecte Unicode op Linux
Als Unicode-tekens niet correct worden weergegeven in de terminal, moet je mogelijk de locale van je systeem configureren om Unicode te ondersteunen.
Stel de locale tijdelijk in (voeg dit toe aan ~/.bashrc of equivalent om dit permanent af te dwingen):
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
Installeer en configureer locales (voorbeeld voor Ubuntu/Debian):
sudo apt update
sudo apt install -y locales
sudo dpkg-reconfigure locales
Selecteer tijdens de configuratie en_US.UTF-8 als de standaard locale.
Referenties
Veel dank aan de volgende bronnen, die onmisbaar waren voor de ontwikkeling van dit project:
- Map Projections-A Working Manual door John P. Snyder
- Wikipedia
- Atractor
- Jon Voisey's Blog: Following Kepler
- Celestial Programming: Greg Miller's Astronomy Programming Page
- Practical Astronomy with your Calculator door Peter Duffett-Smith
- NASA Jet Propulsion Laboratory
- Paul Schlyter's "How to compute planetary positions"
- Dan Smith's "Meeus Solar Position Calculations"
- Bryan Weber's "Orbital Mechanics Notes"
- ASCOM
- A Fast Bresenham Type Algorithm For Drawing Ellipses
Gegevensbronnen
- Sterren: Yale Bright Star Catalog
- Sternamen: IAU Star Names
- Sterrenbeeldfiguren: Stellarium (Geconverteerd van Hipparchus naar BSC5 indexen via de HYG Database—zie
convert_constellations.py)
- Steden: GeoNames (Gefilterd en ingekort via
filter_cities.py)
- Planetaire baan-elementen: NASA Jet Propulsion Laboratory
- Planetaire magnitudes: Computing Apparent Planetary Magnitudes for The Astronomical Almanac