View a markdown version of this page

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. Si vous souhaitez pouvoir télécharger des données d'éphémérides personnalisées, veuillez ouvrir un AWS Support ticket via le. AWS Support Center Console Notre équipe travaillera avec vous pour activer cette fonctionnalité en fonction de vos besoins spécifiques.

Présentation de

Two-line les ensembles d'éléments (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 (voir :). Space-TrackDonné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 Space-Tracképhéméride n'est disponible et prendre en compte les manœuvres.AWS Ground Station Cependant, la précision du TLE est limitée par le modèle de propagation et se dégrade avec le temps en fonction de l'époque. Pour des données d'éphémérides plus fidèles sur des périodes plus longues, pensez à utiliser le format OEM (voir). Fournir des données d'éphémérides OEM

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 des TLE, consultez la section Ensemble d'Two-line éléments.

Alpha-5 numéros de catalogue des satellites dans les TLE

Two-Line Les ensembles d'éléments (TLE) utilisent un format à largeur fixe dans lequel le champ du numéro de catalogue satellite (colonnes 3 à 7 des lignes 1 et 2) est limité à 5 chiffres, supportant une valeur maximale de 99 999. Pour représenter les numéros de catalogue des satellites au-delà de cette limite, la Force spatiale des États-Unis d'Amérique a développé Alpha-5le schéma de codage. Alpha-5 remplace le premier chiffre du champ du numéro de catalogue satellite par un caractère alphabétique (A—Z, sauf I et O pour éviter toute confusion avec les chiffres 1 et 0). Cela étend la gamme des numéros de catalogue satellite représentables de 100 000 à 339 999 dans le format TLE à largeur fixe existant.

Alpha-5 est purement un codage d'affichage pour le format de texte TLE. Le numéro de catalogue numérique du satellite sous-jacent ne change pas. Le noradSatelliteID champ de l'AWS Ground Station API reste un entier : les réponses de l'API renvoient par exemple ListSatellites et GetSatellite continuent de renvoyer le numéro de catalogue satellite numérique, et non le formulaire Alpha-5 codé. Alpha-5 le codage n'est pertinent que dans les lignes de texte TLE elles-mêmes.

AWS Ground Station prend en charge les éphémérides TLE contenant des numéros de satellite Alpha-5 codés. Lorsque vous téléchargez un TLE par le biais de l'CreateEphemerisaction, il analyse AWS Ground Station correctement les numéros de satellite Alpha-5 codés et les convertit en numéros de catalogue de satellites entiers correspondants en interne. Les satellites dont le numéro de catalogue se situe dans la Alpha-5 plage (100 000 à 339 999) sont entièrement pris en charge.

Voici un exemple de réglage TLE pour un satellite portant le numéro de catalogue 100 000. Le Alpha-5 codage représente cela comme A0000 dans les colonnes 3 à 7 de chaque ligne TLE :

[ { "tleLine1": "1 A0000U 26001A 26120.50000000 .00000072 00000-0 24500-4 0 9991", "tleLine2": "2 A0000 97.4500 85.2300 0012345 45.6789 314.5678 15.20000000 10013", "validTimeRange": { "startTime": 1777680000, "endTime": 1778284800 } } ]

Pour plus d'informations sur le schéma de Alpha-5 codage, consultez la Space-Track Alpha-5documentation.

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

Les AWS SDK et la CLI peuvent être utilisés pour télécharger un ensemble d'éphémérides d'éléments à deux lignes (TLE)AWS Ground Station via l'appel. CreateEphemeris 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 associe un ou plusieurs TLE pour construire une trajectoire continue. Les TLE de l'ensemble TLE doivent former un ensemble continu que nous pouvons utiliser pour construire une trajectoire (c'est-à-dire aucun intervalle de temps entre les TLE d'un ensemble TLE). Un exemple d'ensemble TLE est illustré 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 des TLE d'un ensemble de TLE doivent correspondre exactement pour constituer 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 de tous les TLE de l'ensemble TLE, 25994 dans les exemples ci-dessus, doit correspondre à l'identifiant NORAD attribué à votre satellite dans la Space-Trackbase de données.

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