🌌 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