View a markdown version of this page

Proporcione datos de efemérides de TLE - AWS Ground Station

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Proporcione datos de efemérides de TLE

importante

La API de efemérides se encuentra actualmente en estado de previsualización.

El acceso a la API de Efemérides solo se proporciona en función de las necesidades. Si necesita poder cargar datos de efemérides personalizados, abra un AWS Support ticket a través del. AWS Support Center Console Nuestro equipo trabajará con usted para habilitar esta capacidad para sus requisitos específicos.

Descripción general de

Two-line Los conjuntos de elementos (TLE) son un formato estandarizado para describir las órbitas de los satélites. La API Ephemeris permite cargar las efemérides de TLE para usarlas con un satélite. AWS Ground Station Estas efemérides anulan las efemérides predeterminadas de (consulte:). Space-Track Datos de efemérides predeterminados

AWS Ground Station trata las efemérides como datos de uso individualizados. https://aws.amazon.com/service-terms Si utiliza esta función opcional, AWS utilizará sus datos de efemérides para ofrecer asistencia para la solución de problemas.

La carga de efemérides de TLE personalizadas puede mejorar la calidad del seguimiento, gestionar las operaciones iniciales en las que no haya Space-Track efemérides disponibles y tener en cuenta las maniobras. AWS Ground Station Sin embargo, la precisión del TLE está limitada por el modelo de propagación y se degrada con el paso del tiempo con el paso del tiempo. Para datos de efemérides de mayor fidelidad durante períodos de tiempo más prolongados, considere la posibilidad de utilizar el formato OEM (consulte). Proporcione datos de efemérides OEM

nota

Al proporcionar efemérides personalizadas antes de asignar un número de catálogo de satélites a su satélite, puede utilizarlas 00000 para el campo numérico de catálogo de satélites del TLE y 000 para la parte del número de lanzamiento del campo de designación internacional del TLE (por ejemplo, 24000A para un vehículo lanzado en 2024).

Para obtener más información sobre el formato de los TLE, consulte Two-line el conjunto de elementos.

Alpha-5 números de catálogo de satélites en TLE

Two-Line Los conjuntos de elementos (TLE) utilizan un formato de ancho fijo en el que el campo numérico del catálogo de satélites (columnas 3 a 7 de las líneas 1 y 2) está limitado a 5 dígitos y admite un valor máximo de 99 999. Para representar los números de catálogo de satélites que superan este límite, la Fuerza Espacial de los Estados Unidos desarrolló el esquema de codificación. Alpha-5 Alpha-5 reemplaza el primer dígito del campo numérico del catálogo de satélites por un carácter alfabético (de la A a la Z, excluyendo I y O para evitar confusiones con los dígitos 1 y 0). Esto amplía el rango de números de catálogo de satélites representables de 100 000 a 339 999 en el formato TLE de ancho fijo existente.

Alpha-5 es simplemente una codificación de visualización para el formato de texto TLE. El número numérico subyacente del catálogo de satélites no cambia. El noradSatelliteID campo de la AWS Ground Station API sigue siendo un número entero: las respuestas de la API, como ListSatellites y, GetSatellite siguen devolviendo el número numérico del catálogo de satélites, no el formulario Alpha-5 codificado. Alpha-5 la codificación solo es relevante dentro de las propias líneas de texto del TLE.

AWS Ground Station admite efemérides de TLE que contienen números de satélite Alpha-5 codificados. Al cargar un TLE mediante la CreateEphemeris acción, analiza AWS Ground Station correctamente los números de satélite Alpha-5 codificados y los resuelve internamente para obtener los números enteros correspondientes del catálogo de satélites. Los satélites con números de catálogo de satélites comprendidos Alpha-5 entre 100 000 y 339.999 son totalmente compatibles.

A continuación se muestra un ejemplo de conjunto de TLE para un satélite con el número de catálogo de satélites 100.000. La Alpha-5 codificación representa esto como A0000 en las columnas 3 a 7 de cada línea 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 } } ]

Para obtener más información sobre el esquema de Alpha-5 codificación, consulte la Space-Track Alpha-5 documentación.

Creación de una efeméride TLE

Se puede crear una efeméride de TLE mediante la CreateEphemeris acción de la API. AWS Ground Station Esta acción cargará una efeméride utilizando los datos del cuerpo de la solicitud o de un bucket de S3 específico.

Es importante tener en cuenta que al cargar una efeméride ésta se establece en VALIDATING e inicia un flujo de trabajo asíncrono que validará y generará contactos potenciales a partir de la efeméride. Solo se podrá utilizar para contactos cuando la efeméride haya superado este flujo de trabajo y esté ENABLED. Debes sondear el estado de las efemérides o usar CloudWatch eventos DescribeEphemeris para realizar un seguimiento de los cambios de estado de las efemérides.

Para solucionar problemas relacionados con una efeméride no válida, consulte: Solucionar problemas de efemérides no válidas

Ejemplo: cree un conjunto de efemérides de elementos de dos líneas (TLE) mediante una API

Los AWS SDK y la CLI se pueden usar para cargar un elemento de dos líneas (TLE) establecido para las efemérides mediante la llamada. AWS Ground Station CreateEphemeris Esta efeméride se utilizará en lugar de los datos de efemérides predeterminados para un satélite (consulte). Datos de efemérides predeterminados En este ejemplo se muestra cómo hacerlo con el AWS SDK para Python (Boto3).

Un conjunto de TLE es un objeto con formato JSON que une una o más TLE para construir una trayectoria continua. Los TLE en el conjunto TLE deben formar un conjunto continuo que podamos utilizar para construir una trayectoria (es decir, sin espacios en el tiempo entre TLE en un conjunto TLE). A continuación se muestra un ejemplo de conjunto TLE:

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

Los intervalos de tiempo de los TLE de un conjunto de TLE deben coincidir exactamente para ser una trayectoria continua válida.

Se puede cargar un conjunto de TLE a través del cliente AWS Ground Station boto3 de la siguiente manera:

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

Esta llamada devolverá un EphemerisID que se puede usar para hacer referencia a las efemérides en el futuro. Por ejemplo, podemos usar el EphemerisID proporcionado en la llamada anterior para sondear el estado de las efemérides:

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

A continuación se muestra un ejemplo de respuesta de la acción 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}}]" } } }

Se recomienda sondear la DescribeEphemeris ruta o usar CloudWatch eventos para rastrear el estado de las efemérides cargadas, ya que deben pasar por un flujo de trabajo de validación asincrónico antes de configurarse y poder usarse para programar y ejecutar contactos. ENABLED

Tenga en cuenta que el ID del NORAD de todos los TLE del conjunto TLE, en los ejemplos anteriores, debe coincidir con el ID del NORAD que se le ha asignado a su satélite 25994 en la base de datos. Space-Track

Ejemplo: cargar datos de efemérides de TLE desde un bucket S3

También es posible cargar un archivo de efemérides de TLE directamente desde un bucket de S3 apuntando al bucket y a la clave del objeto. AWS Ground Station recuperará el objeto en tu nombre. La información sobre el cifrado de los datos en reposo AWS Ground Station se detalla en:Cifrado de datos en reposo para AWS Ground Station.

A continuación se muestra un ejemplo de cómo cargar un archivo de efemérides TLE desde un bucket de 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']}")