diff --git a/NASA-API.ps1 b/NASA-API.ps1 index 65ad074..13a8f35 100644 --- a/NASA-API.ps1 +++ b/NASA-API.ps1 @@ -29,10 +29,6 @@ catch { } - - -#$response | ConvertTo-Json -Depth 10 | Out-File ".\NeoFeed.json" - $limit = 0 $response.near_earth_objects.PSObject.Properties | ForEach-Object { diff --git a/readme.md b/readme.md index e69de29..f35471d 100644 --- a/readme.md +++ b/readme.md @@ -0,0 +1,192 @@ +# 🚀 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 + +```powershell +.\dein-script.ps1 +``` + +--- + +## 🧠 Funktionsweise + +### 🔐 Laden der Umgebungsvariablen + +Das Script liest die `.env` Datei und setzt die enthaltenen Variablen in die aktuelle PowerShell-Session: + +```powershell +[System.Environment]::SetEnvironmentVariable($name, $value) +``` + +--- + +### 🌍 API Request + +Abruf der NEO-Daten über die NASA API: + +```powershell +Invoke-RestMethod -Uri "" -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: + +```json +"near_earth_objects": { + "2026-01-01": [ ... ] +} +``` + +Das Script iteriert dynamisch über alle Datumswerte: + +```powershell +$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: + +```powershell +catch { + Write-Host "Fehler: $($_.Exception.Message)" +} +``` + +--- + +## 💡 Hinweise & Best Practices + +* 🔒 `.env` Datei nicht in Git committen (`.gitignore`) +* 🔁 API Rate Limits beachten +* 📅 Datum kann angepasst werden: + +```powershell +$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! 🚀