Stellen Sie TLE-Ephemeridendaten bereit - AWS Ground Station

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Stellen Sie TLE-Ephemeridendaten bereit

Wichtig

Die Ephemeriden-API befindet sich derzeit im Vorschaustatus

Der Zugriff auf die Ephemeris-API wird nur bei Bedarf gewährt.

Übersicht

Two-Line Element (TLE) -Sets sind ein standardisiertes Format zur Beschreibung von Satellitenbahnen. Die Ephemeris-API ermöglicht das Hochladen von TLE-Ephemeriden zur Verwendung mit einem Satelliten. AWS Ground Station Diese Ephemeriden überschreiben die Standard-Ephemeriden von Space-Track (siehe:). Standard-Ephemeridendaten

AWS Ground Station behandelt Ephemeriden als individualisierte Nutzungsdaten. Wenn Sie diese optionale Funktion verwenden, verwendet AWS Ihre Ephemeridendaten, um Unterstützung bei der Fehlerbehebung bereitzustellen.

Das Hochladen benutzerdefinierter TLE-Ephemeriden kann die Qualität der Ortung verbessern, frühe Operationen abwickeln, für die keine Space-Track-Ephemeriden verfügbar sind, und Manöver berücksichtigen. AWS Ground Station

Anmerkung

Wenn Sie benutzerdefinierte Ephemeriden angeben, bevor Ihrem Satelliten eine Satellitenkatalognummer zugewiesen wird, können Sie dies für das Feld 00000 für die Satellitenkatalognummer des TLE und für den Teil mit der Startnummer des internationalen Kennzeichnungsfeldes des TLE verwenden (z. B. 000 für ein Fahrzeug, das 2024 auf den Markt gebracht wurde). 24000A

Weitere Informationen zum Format von finden Sie unter Zweizeiliger TLEs Elementsatz.

Eine TLE-Ephemeride erstellen

Eine TLE-Ephemeride kann mithilfe der CreateEphemerisAktion in der API erstellt werden. AWS Ground Station Diese Aktion lädt eine Ephemeride hoch, wobei Daten entweder im Anforderungstext oder aus einem bestimmten S3-Bucket verwendet werden.

Es ist wichtig zu beachten, dass durch das Hochladen einer Ephemeride die Ephemeride in einen asynchronen Workflow umgewandelt VALIDATING und gestartet wird, der potenzielle Kontakte anhand Ihrer Ephemeride validiert und generiert. Erst wenn eine Ephemeride diesen Workflow bestanden hat und geworden ist, wird sie für Kontakte verwendet. ENABLED Sie sollten den Status der Ephemeriden DescribeEphemerisabfragen oder CloudWatch Ereignisse verwenden, um die Statusänderungen der Ephemeriden nachzuverfolgen.

Informationen zur Fehlerbehebung bei einer ungültigen Ephemeride finden Sie unter: Fehlerbehebung bei ungültigen Ephemeriden

Beispiel: Erstellen Sie eine Ephemeride mit zweizeiligen Elementen (TLE) über die API

Die CLI und kann verwendet werden AWS SDKs, um AWS Ground Station über den Aufruf ein Two-Line-Element (TLE) -Set-Ephemeriden CreateEphemerishochzuladen. Diese Ephemeride wird anstelle der standardmäßigen Ephemeridendaten für einen Satelliten verwendet (siehe). Standard-Ephemeridendaten Dieses Beispiel zeigt, wie das mit dem AWS SDK for Python (Boto3) gemacht wird.

Ein TLE-Set ist ein Objekt im JSON-Format, das eines oder mehrere Objekte TLEs aneinanderreiht, um eine kontinuierliche Trajektorie zu erstellen. Das TLEs im TLE-Set enthaltene Objekt muss einen kontinuierlichen Satz bilden, den wir verwenden können, um eine Trajektorie zu konstruieren (d. h. keine zeitlichen Lücken dazwischen TLEs in einem TLE-Set). Ein Beispiel für ein TLE-Set ist unten dargestellt:

[ { "tleLine1": "1 25994U 99068A 20318.54719794 .00000075 00000-0 26688-4 0 9997", "tleLine2": "2 25994 98.2007 30.6589 0001234 89.2782 18.9934 14.57114995111906", "validTimeRange": { "startTime": 12345, "endTime": 12346 } }, { "tleLine1": "1 25994U 99068A 20318.54719794 .00000075 00000-0 26688-4 0 9997", "tleLine2": "2 25994 98.2007 30.6589 0001234 89.2782 18.9934 14.57114995111906", "validTimeRange": { "startTime": 12346, "endTime": 12347 } } ]
Anmerkung

Die Zeitbereiche TLEs in einem TLE-Set müssen exakt übereinstimmen, damit es sich um eine gültige, kontinuierliche Trajektorie handelt.

Ein TLE-Set kann wie folgt über den AWS Ground Station boto3-Client hochgeladen werden:

import boto3 from datetime import datetime, timedelta, timezone # Create AWS Ground Station client ground_station_client = boto3.client("groundstation") # Create TLE ephemeris tle_ephemeris = ground_station_client.create_ephemeris( name="Example Ephemeris", satelliteId="2e925701-9485-4644-b031-EXAMPLE01", enabled=True, expirationTime=datetime.now(timezone.utc) + timedelta(days=3), priority=2, ephemeris={ "tle": { "tleData": [ { "tleLine1": "1 25994U 99068A 20318.54719794 .00000075 00000-0 26688-4 0 9997", "tleLine2": "2 25994 98.2007 30.6589 0001234 89.2782 18.9934 14.57114995111906", "validTimeRange": { "startTime": datetime.now(timezone.utc), "endTime": datetime.now(timezone.utc) + timedelta(days=7), }, } ] } }, ) print(f"Created TLE ephemeris with ID: {tle_ephemeris['ephemerisId']}")

Dieser Aufruf gibt eine EphemerisId zurück, mit der in future auf die Ephemeride verwiesen werden kann. Zum Beispiel können wir die bereitgestellte EphemerisID aus dem obigen Aufruf verwenden, um den Status der Ephemeride abzufragen:

import boto3 from datetime import datetime, timedelta, timezone import time # Create AWS Ground Station client ground_station_client = boto3.client("groundstation") # First, create a TLE ephemeris print("Creating TLE ephemeris...") tle_ephemeris = ground_station_client.create_ephemeris( name="Example TLE Ephemeris for Description", satelliteId="2e925701-9485-4644-b031-EXAMPLE01", enabled=True, expirationTime=datetime.now(timezone.utc) + timedelta(days=3), priority=2, ephemeris={ "tle": { "tleData": [ { "tleLine1": "1 25994U 99068A 20318.54719794 .00000075 00000-0 26688-4 0 9997", "tleLine2": "2 25994 98.2007 30.6589 0001234 89.2782 18.9934 14.57114995111906", "validTimeRange": { "startTime": datetime.now(timezone.utc), "endTime": datetime.now(timezone.utc) + timedelta(days=7), }, } ] } }, ) ephemeris_id = tle_ephemeris["ephemerisId"] print(f"Created TLE ephemeris with ID: {ephemeris_id}") # Describe the ephemeris immediately to check initial status print("Describing ephemeris...") response = ground_station_client.describe_ephemeris(ephemerisId=ephemeris_id) print(f"Ephemeris ID: {response['ephemerisId']}") print(f"Name: {response['name']}") print(f"Status: {response['status']}")

Im Folgenden finden Sie ein Beispiel für eine Antwort aus der Aktion DescribeEphemeris

{ "creationTime": 1620254718.765, "enabled": true, "name": "Example Ephemeris", "ephemerisId": "fde41049-14f7-413e-bd7b-EXAMPLE01", "priority": 2, "status": "VALIDATING", "suppliedData": { "tle": { "ephemerisData": "[{\"tleLine1\": \"1 25994U 99068A 20318.54719794 .00000075 00000-0 26688-4 0 9997\",\"tleLine2\": \"2 25994 98.2007 30.6589 0001234 89.2782 18.9934 14.57114995111906\",\"validTimeRange\": {\"startTime\": 1620254712000,\"endTime\": 1620859512000}}]" } } }

Es wird empfohlen, die DescribeEphemerisRoute abzufragen oder CloudWatch Ereignisse zu verwenden, um den Status der hochgeladenen Ephemeriden zu verfolgen, da sie einen asynchronen Validierungsworkflow durchlaufen muss, bevor sie auf gesetzt wird ENABLED und für die Planung und Ausführung von Kontakten verwendet werden kann.

Beachten Sie, dass die gesamte NORAD-ID im TLE-Set TLEs in den obigen Beispielen mit der NORAD-ID übereinstimmen muss, die Ihrem Satelliten 25994 in der Space-Track-Datenbank zugewiesen wurde.

Beispiel: Hochladen von TLE-Ephemeridendaten aus einem S3-Bucket

Es ist auch möglich, eine TLE-Ephemeriden-Datei direkt aus einem S3-Bucket hochzuladen, indem Sie auf den Bucket und den Objektschlüssel zeigen. AWS Ground Station ruft das Objekt in Ihrem Namen ab. Informationen zur Verschlüsselung ruhender Daten in AWS Ground Station finden Sie in:Datenverschlüsselung im Ruhezustand für AWS Ground Station.

Im Folgenden finden Sie ein Beispiel für das Hochladen einer TLE-Ephemeriden-Datei aus einem S3-Bucket

import boto3 from datetime import datetime, timedelta, timezone import json # Create AWS clients s3_client = boto3.client("s3") ground_station_client = boto3.client("groundstation") # Define S3 bucket and key bucket_name = "ephemeris-bucket" object_key = "test_data.tle" # Create sample TLE set data # Note: For actual satellites, use real TLE data from sources like Space-Track tle_set_data = [ { "tleLine1": "1 25994U 99068A 20318.54719794 .00000075 00000-0 26688-4 0 9997", "tleLine2": "2 25994 98.2007 30.6589 0001234 89.2782 18.9934 14.57114995111906", "validTimeRange": { "startTime": datetime.now(timezone.utc), "endTime": datetime.now(timezone.utc) + timedelta(days=3), }, }, { "tleLine1": "1 25994U 99068A 20321.54719794 .00000075 00000-0 26688-4 0 9998", "tleLine2": "2 25994 98.2007 33.6589 0001234 89.2782 18.9934 14.57114995112342", "validTimeRange": { "startTime": datetime.now(timezone.utc) + timedelta(days=3), "endTime": datetime.now(timezone.utc) + timedelta(days=7), }, }, ] # Convert to JSON string for upload tle_json = json.dumps(tle_set_data, indent=2) # Upload sample TLE data to S3 print(f"Uploading TLE set data to s3://{bucket_name}/{object_key}") s3_client.put_object( Bucket=bucket_name, Key=object_key, Body=tle_json, ContentType="application/json" ) print("TLE set data uploaded successfully to S3") print(f"Uploaded {len(tle_set_data)} TLE entries covering 7 days") # Create TLE ephemeris from S3 print("Creating TLE ephemeris from S3...") s3_tle_ephemeris = ground_station_client.create_ephemeris( name="2022-11-05 S3 TLE Upload", satelliteId="fde41049-14f7-413e-bd7b-EXAMPLE01", enabled=True, expirationTime=datetime.now(timezone.utc) + timedelta(days=5), priority=2, ephemeris={"tle": {"s3Object": {"bucket": bucket_name, "key": object_key}}}, ) print(f"Created TLE ephemeris with ID: {s3_tle_ephemeris['ephemerisId']}")