Fournir des données d'éphémérides TLE - AWS Ground Station

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Fournir des données d'éphémérides TLE

Important

L'API ephemeris est actuellement en version préliminaire

L'accès à l'API Ephemeris n'est fourni qu'en cas de besoin.

Aperçu

Les ensembles d'éléments à deux lignes (TLE) constituent un format normalisé pour décrire les orbites des satellites. L'API Ephemeris permet de télécharger des éphémérides TLE pour les utiliser avec un satellite AWS Ground Station . Ces éphémérides remplacent les éphémérides par défaut de Space-Track (voir :). Données d'éphémérides par défaut

AWS Ground Station traite les éphémérides comme des données d'utilisation individualisées. Si vous utilisez cette fonctionnalité facultative, AWS utilisera vos données d'éphéméride pour fournir une assistance en matière de dépannage.

Le téléchargement d'éphémérides TLE personnalisées peut améliorer la qualité du suivi, gérer les premières opérations lorsqu'aucune éphéméride Space-Track n'est disponible et prendre en compte les manœuvres. AWS Ground Station

Note

Lorsque vous fournissez des éphémérides personnalisées avant qu'un numéro de catalogue satellite ne soit attribué à votre satellite, vous pouvez l'utiliser 00000 pour le champ du numéro de catalogue satellite du TLE et 000 pour la partie du numéro de lancement du champ de désignation international du TLE (par exemple 24000A pour un véhicule lancé en 2024).

Pour plus d'informations sur le format de TLEs, consultez la section Ensemble d'éléments sur deux lignes.

Création d'une éphéméride TLE

Une éphéméride TLE peut être créée à l'aide de l'CreateEphemerisaction de l' AWS Ground Station API. Cette action téléchargera une éphéméride en utilisant les données contenues dans le corps de la demande ou provenant d'un compartiment S3 spécifié.

Il est important de noter que le téléchargement d'une éphéméride définit l'éphéméride et lance un flux de travail asynchrone qui validera VALIDATING et générera des contacts potentiels à partir de votre éphéméride. Ce n'est qu'une fois qu'une éphéméride aura passé ce flux de travail et ENABLED sera devenue qu'elle sera utilisée pour les contacts. Vous devez effectuer un sondage DescribeEphemerispour connaître le statut des éphémérides ou utiliser des CloudWatch événements pour suivre les changements de statut des éphémérides.

Pour résoudre le problème d'une éphéméride non valide, consultez : Résoudre les problèmes liés aux éphémérides non valides

Exemple : créer un ensemble d'éphémérides d'un élément à deux lignes (TLE) via une API

La AWS SDKs CLI et peut être utilisée pour télécharger un ensemble d'éphémérides d'un élément à deux lignes (TLE) AWS Ground Station via l'CreateEphemerisappel. Cette éphéméride sera utilisée à la place des données d'éphéméride par défaut pour un satellite (voir). Données d'éphémérides par défaut Cet exemple montre comment procéder à l'aide du AWS SDK pour Python (Boto3).

Un ensemble TLE est un objet au format JSON qui enchaîne un ou plusieurs TLEs objets pour construire une trajectoire continue. L' TLEs ensemble TLE doit former un ensemble continu que nous pouvons utiliser pour construire une trajectoire (c'est-à-dire aucun intervalle de temps entre TLEs les deux ensembles TLE). Un exemple d'ensemble TLE est présenté ci-dessous :

[ { "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 } } ]
Note

Les plages de temps TLEs d'un ensemble TLE doivent correspondre exactement pour obtenir une trajectoire continue valide.

Un ensemble TLE peut être téléchargé via le client AWS Ground Station boto3 comme suit :

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']}")

Cet appel renverra un EphemerisID qui pourra être utilisé pour référencer l'éphéméride à l'avenir. Par exemple, nous pouvons utiliser l'EphemerisID fourni lors de l'appel ci-dessus pour demander le statut de l'éphéméride :

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']}")

Un exemple de réponse à l'DescribeEphemerisaction est fourni ci-dessous

{ "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}}]" } } }

Il est recommandé d'interroger l'DescribeEphemerisitinéraire ou d'utiliser CloudWatch des événements pour suivre l'état des éphémérides téléchargées, car elles doivent passer par un flux de travail de validation asynchrone avant d'être définies et de devenir utilisables pour la planification ENABLED et l'exécution de contacts.

Notez que l'identifiant NORAD dans l'ensemble TLE, TLEs dans les exemples ci-dessus, doit correspondre 25994 à l'identifiant NORAD attribué à votre satellite dans la base de données Space-Track.

Exemple : téléchargement de données d'éphémérides TLE depuis un compartiment S3

Il est également possible de télécharger un fichier d'éphémérides TLE directement depuis un compartiment S3 en pointant sur le compartiment et la clé d'objet. AWS Ground Station récupérera l'objet en votre nom. Les informations sur le cryptage des données au repos AWS Ground Station sont détaillées dans :Chiffrement des données au repos pour AWS Ground Station.

Vous trouverez ci-dessous un exemple de téléchargement d'un fichier d'éphémérides TLE à partir d'un compartiment S3

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']}")