2026-04-03 21:10:55 +02:00
2026-04-03 21:10:55 +02:00
2026-04-03 21:10:55 +02:00
2026-04-03 21:10:55 +02:00
2026-04-02 23:11:25 +02:00

🚀 NASA Near Earth Objects (NEO) PowerShell Script

Dieses PowerShell-Script ruft Daten der NASA Near Earth Object (NEO) API ab, verarbeitet die Ergebnisse und zeigt relevante Informationen zu Asteroiden an.


📌 Features

  • 🔐 API-Key aus .env Datei laden

  • 🌍 Abruf von Asteroiden-Daten über die NASA API

  • 📊 Anzeige von:

    • Name des Asteroiden
    • Gefährlichkeit (Hazardous)
    • Entfernung zur Erde (Miss Distance)
  • ⚠️ Farbliche Hervorhebung:

    • Rot = potenziell gefährlich
    • Grün = nicht gefährlich
  • 📉 Anzeige des API Rate Limits


📁 Voraussetzungen

  • PowerShell 5.1 oder höher (empfohlen: PowerShell 7+)
  • Internetverbindung
  • NASA API Key

👉 API Key hier erstellen: https://api.nasa.gov/


⚙️ Setup

1. .env Datei erstellen

Erstelle im gleichen Verzeichnis eine .env Datei:

API_KEY=dein_api_key_hier

2. Script ausführen

.\dein-script.ps1

🧠 Funktionsweise

🔐 Laden der Umgebungsvariablen

Das Script liest die .env Datei und setzt die enthaltenen Variablen in die aktuelle PowerShell-Session:

[System.Environment]::SetEnvironmentVariable($name, $value)

🌍 API Request

Abruf der NEO-Daten über die NASA API:

Invoke-RestMethod -Uri "<API-URL>" -ResponseHeadersVariable headers
  • JSON wird automatisch in PowerShell-Objekte konvertiert
  • Response-Header werden separat gespeichert

📊 Rate Limit Anzeige

Folgende Header werden ausgewertet:

  • X-RateLimit-Limit
  • X-RateLimit-Remaining

Ausgabe:

-------------
Rate Limit: 1000
Remaining : 742
-------------

☄️ Verarbeitung der Asteroiden-Daten

Die API liefert Daten gruppiert nach Datum:

"near_earth_objects": {
  "2026-01-01": [ ... ]
}

Das Script iteriert dynamisch über alle Datumswerte:

$response.near_earth_objects.PSObject.Properties

🎨 Konsolen-Ausgabe

Für jeden Asteroiden werden folgende Informationen angezeigt:

  • Name
  • Gefährlich (True/False)
  • Entfernung zur Erde (km)

Farbliche Darstellung:

  • 🔴 Rot → gefährlich
  • 🟢 Grün → ungefährlich

🖥️ Beispielausgabe

Datum: 2026-01-01
-------------------
| Name: (2000 KX43) --- Hazardous: False
| Miss-Distance(in KM): 7458392
---------------------
| Name: (422686) --- Hazardous: True
| Miss-Distance(in KM): 3849201
---------------------

⚠️ Fehlerbehandlung

Das Script nutzt try/catch, um API-Fehler abzufangen:

catch {
    Write-Host "Fehler: $($_.Exception.Message)"
}

💡 Hinweise & Best Practices

  • 🔒 .env Datei nicht in Git committen (.gitignore)
  • 🔁 API Rate Limits beachten
  • 📅 Datum kann angepasst werden:
$startDate = "2026-01-01"
$endDate   = "2026-01-07"

🚀 Erweiterungsmöglichkeiten

  • Export als CSV oder JSON
  • Automatische Pagination (links.next)
  • Filter nach Entfernung oder Größe
  • Logging statt Write-Host
  • Umwandlung in PowerShell Modul

🏁 Fazit

Dieses Script bietet einen einfachen Einstieg in:

  • Arbeiten mit REST APIs in PowerShell
  • JSON-Verarbeitung
  • Nutzung von Umgebungsvariablen
  • Konsolenbasierte Datenvisualisierung

Happy scripting! 🚀

Description
No description provided
Readme 121 KiB
Languages
PowerShell 100%