View a markdown version of this page

Forneça dados de efemérides do TLE - AWS Ground Station

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Forneça dados de efemérides do TLE

Importante

A API Ephemeris está atualmente em um estado de visualização

O acesso à API Ephemeris é fornecido somente conforme a necessidade. Se você precisar fazer upload de dados de efemérides personalizados, abra um AWS Support ticket por meio do. AWS Support Center Console Nossa equipe trabalhará com você para habilitar esse recurso para suas necessidades específicas.

Visão geral do

Two-line conjuntos de elementos (TLE) são um formato padronizado para descrever órbitas de satélites. A API Ephemeris permite que as efemérides do TLE sejam enviadas para AWS Ground Station uso com um satélite. Essas efemérides substituem as efemérides padrão de (consulte:). Space-TrackDados de efemérides padrão

AWS Ground Station trata as efemérides como dados de uso individualizados. Se você usar esse recurso opcional, a AWS usará seus dados de efemérides para fornecer suporte à solução de problemas.

O upload de efemérides TLE personalizadas pode melhorar a qualidade do rastreamento, lidar com operações iniciais em que não há Space-Trackefemérides disponíveis e contabilizar as manobras.AWS Ground Station No entanto, a precisão do TLE é limitada pelo modelo de propagação e se degrada com o tempo fora da época. Para dados de efemérides de maior fidelidade em períodos de tempo mais longos, considere usar o formato OEM (consulte). Forneça dados de efemérides do OEM

nota

Ao fornecer efemérides personalizadas antes que um número de catálogo de satélite seja atribuído ao seu satélite, você pode usar 00000 para o campo de número de catálogo de satélite do TLE e 000 para a parte do número de lançamento do campo designador internacional do TLE (por exemplo, 24000A para um veículo lançado em 2024).

Para obter mais informações sobre o formato dos TLEs, consulte conjunto de Two-line elementos.

Alpha-5 números de catálogo de satélites em TLEs

Two-Line Os conjuntos de elementos (TLEs) usam um formato de largura fixa no qual o campo do número do catálogo do satélite (colunas 3—7 das linhas 1 e 2) é limitado a 5 dígitos, suportando um valor máximo de 99.999. Para representar os números do catálogo de satélites além desse limite, a Força Espacial dos Estados Unidos da América desenvolveu Alpha-5o esquema de codificação. Alpha-5 substitui o primeiro dígito do campo do número do catálogo do satélite por um caractere alfabético (A—Z, excluindo I e O para evitar confusão com os dígitos 1 e 0). Isso amplia a faixa de números de catálogo de satélites representáveis de 100.000 para 339.999 dentro do formato TLE de largura fixa existente.

Alpha-5 é puramente uma codificação de exibição para o formato de texto TLE. O número do catálogo numérico de satélites subjacente não muda. O noradSatelliteID campo na AWS Ground Station API permanece um número inteiro — as respostas da API, como ListSatellites e GetSatellite continuam retornando o número numérico do catálogo de satélites, não o formulário Alpha-5 codificado. Alpha-5 a codificação só é relevante nas próprias linhas de texto do TLE.

AWS Ground Station suporta efemérides TLE que contêm números de satélite Alpha-5 codificados. Quando você carrega um TLE por meio da CreateEphemerisação, analisa AWS Ground Station corretamente os números de satélite Alpha-5 codificados e os resolve internamente para os números inteiros correspondentes do catálogo de satélites. Os satélites com números de catálogo de satélites na Alpha-5 faixa (100.000 a 339.999) são totalmente suportados.

A seguir está um exemplo de TLE definido para um satélite com número de catálogo de satélites 100.000. A Alpha-5 codificação representa isso como A0000 nas colunas 3—7 de cada linha 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 obter mais informações sobre o esquema Alpha-5 de codificação, consulte a Space-Track Alpha-5documentação.

Criando uma efeméride de TLE

Uma efeméride de TLE pode ser criada usando a CreateEphemerisação na API.AWS Ground Station Essa ação fará o upload de uma efeméride usando dados no corpo da solicitação ou de um bucket do S3 especificado.

É importante observar que o upload de uma efeméride define as efemérides como VALIDATING e inicia um fluxo de trabalho assíncrono que validará e gerará contatos potenciais a partir de suas efemérides. Somente quando uma efeméride passar por esse fluxo de trabalho e se tornar ENABLED, ela será usada para contatos. Você deve pesquisar o status das efemérides ou usar CloudWatch eventos DescribeEphemerispara rastrear as mudanças de status das efemérides.

Para solucionar uma efeméride inválida, consulte: Solucionar problemas de efemérides inválidas

Exemplo: criar efemérides de um conjunto de elementos de duas linhas (TLE) por meio da API

Os AWS SDKs e a CLI podem ser usados para carregar efemérides de um conjunto de elementos de duas linhas (TLE) por meio AWS Ground Station da chamada. CreateEphemeris Essas efemérides serão usadas no lugar dos dados de efemérides padrão de um satélite (consulte). Dados de efemérides padrão Este exemplo mostra como fazer isso usando o AWS SDK para Python (Boto3).

Um conjunto de TLE é um objeto formatado em JSON que agrupa um ou mais TLEs para construir uma trajetória contínua. Os TLEs no conjunto de TLE devem formar um conjunto contínuo que possamos usar para construir uma trajetória (ou seja, sem lacunas no tempo entre os TLEs em um conjunto de TLE). Um conjunto de TLE de exemplo é mostrado abaixo:

[ { "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

Os intervalos de tempo dos TLEs em um conjunto de TLE devem corresponder exatamente para serem uma trajetória válida e contínua.

Um conjunto TLE pode ser carregado por meio do cliente AWS Ground Station boto3 da seguinte forma:

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

Essa chamada retornará um EphemerisID que pode ser usado para referenciar as efemérides no futuro. Por exemplo, podemos usar o EphemerisId fornecido na chamada acima para pesquisar o status da efemé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']}")

Um exemplo de resposta da ação DescribeEphemeris é fornecido abaixo

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

É recomendável pesquisar a DescribeEphemerisrota ou usar CloudWatch eventos para rastrear o status das efemérides carregadas, pois elas devem passar por um fluxo de trabalho de validação assíncrona antes de serem configuradas ENABLED e se tornarem utilizáveis para agendar e executar contatos.

Observe que o ID NORAD em todos os TLEs do conjunto TLE, 25994 nos exemplos acima, deve corresponder ao ID NORAD atribuído ao seu satélite no banco de dados. Space-Track

Exemplo: carregamento de dados de efemérides do TLE de um bucket do S3

Também é possível fazer upload de um arquivo de efemérides TLE diretamente de um bucket do S3 apontando para o bucket e a chave do objeto.AWS Ground Station recuperará o objeto em seu nome. As informações sobre a criptografia de dados em repouso AWS Ground Station estão detalhadas em:Criptografia de dados em repouso para AWS Ground Station.

Abaixo está um exemplo de upload de um arquivo de efemérides TLE de um bucket 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']}")