

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# TLE 에페메리스 데이터 제공
<a name="providing-tle-ephemeris-data"></a>

**중요**  
 에페메리스 API는 현재 프리뷰 상태입니다 

 에페메리스 API에 대한 액세스는 필요에 따라 제공됩니다. 사용자 지정 에페메리스 데이터를 업로드하는 기능이 필요한 경우를 통해 AWS Support 티켓을 개설하세요[AWS Support Center Console](https://console.aws.amazon.com/support). 당사 팀은 고객과 협력하여 특정 요구 사항에 맞게이 기능을 활성화합니다.

## 개요
<a name="w2aac28c17c11b7"></a>

 2줄 요소(TLE) 세트는 위성 궤도를 설명하기 위한 표준화된 형식입니다. Ephemeris API를 사용하면 위성과 함께 사용하기 위해 TLE 에페메리스를 AWS Ground Station 에 업로드할 수 있습니다. 이러한 에페메리스는 [스페이스 트랙](https://www.space-track.org/)의 기본 에페메리스를 재정의합니다( 참조[기본 에페메리스 데이터](default-ephemeris-data.md)).

 AWS Ground Station 는 에페메리스를 [개별화된 사용 데이터](https://aws.amazon.com/service-terms)로 처리합니다. 이 선택적 기능을 사용하는 경우 AWS는 에페메리스 데이터를 사용하여 문제 해결 지원을 제공합니다.

 사용자 지정 TLE 에페메리스를 업로드하면 추적 품질을 개선하고, [스페이스 트랙](https://www.space-track.org/) 에페메리스를 사용할 수 없는 초기 작업을 처리하고 AWS Ground Station, 조작을 고려할 수 있습니다.

**참고**  
 위성 카탈로그 번호가 할당되기 전에 사용자 지정 에페메리스를 제공하는 경우 TLE의 `00000` 위성 카탈로그 번호 필드와 TLE의 국제 지정자 필드의 `000` 시작 번호 부분에 `24000A`를 사용할 수 있습니다(예: 2024년에 출시된 차량).  
 TLEs. [https://en.wikipedia.org/wiki/Two-line_element_set](https://en.wikipedia.org/wiki/Two-line_element_set) 

## TLE 에페메리스 생성
<a name="w2aac28c17c11b9"></a>

 TLE 에페메리스는 API의 [CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html) 작업을 사용하여 생성할 수 있습니다 AWS Ground Station . 이 작업은 요청 본문 또는 지정된 S3 버킷의 데이터를 사용하여 에페메리스를 업로드합니다.

 한 가지 주의할 점은 에피메리스를 업로드하면 에피메리스가 `VALIDATING`로 설정되고 비동기 워크플로가 시작되어 에피메리스를 검증하고 이로부터 잠재적 접촉을 생성하는 비동기 워크플로가 시작된다는 점입니다. 임시 저장소가 이 워크플로를 통과한 후 `ENABLED`가 된 후에만 접촉에 사용됩니다. 에페메리스 상태에 대해 [DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html)를 폴링하거나 CloudWatch 이벤트를 사용하여 에페메리스의 상태 변경을 추적해야 합니다.

 잘못된 에페메리스 문제를 해결하려면 다음을 참조하세요. [잘못된 에페메리스 문제 해결](troubleshooting-invalid-ephemerides.md) 

## 예: API를 통해 2줄 요소(TLE) 세트 에페메리스 생성
<a name="w2aac28c17c11c11"></a>

 AWS SDKs 및 CLI를 사용하여 [CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html) 호출을 AWS Ground Station 통해 에페메리스를 로 설정한 두 줄 요소(TLE)를 업로드할 수 있습니다. 이 에페메리스는 위성의 기본 에페메리스 데이터 대신 사용됩니다( 참조[기본 에페메리스 데이터](default-ephemeris-data.md)). 이 예제에서는 [AWS SDK for Python(Boto3)](https://docs.aws.amazon.com/pythonsdk)을 사용하여이 작업을 수행하는 방법을 보여줍니다.

 TLE 세트는 하나 이상의 TLE를 함께 묶어 연속 궤적을 구성하는 JSON 형식의 객체입니다. TLE 세트의 TLE는 궤적을 구성하는 데 사용할 수 있는 연속 세트를 형성해야 합니다(즉, TLE 세트의 TLE 간 시간 간격이 없음). 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
        }
    }
]
```

**참고**  
 TLE 세트의 TLE 시간 범위가 정확히 일치해야 유효하고 연속적인 궤적을 유지할 수 있습니다.

 TLE 세트는 다음과 같이 AWS Ground Station boto3 클라이언트를 통해 업로드할 수 있습니다.

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

 이 호출은 향후 ephemerisId를 반환합니다. 예를 들어 위의 호출에서 제공된 ephemerisId를 사용하여 ephemeris 상태를 폴링할 수 있습니다.

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

 [DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html) 작업의 응답 예제는 다음과 같습니다.

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

 [DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html) 경로를 폴링하거나 CloudWatch 이벤트를 사용하여 업로드된 에페메리스의 상태를 추적하는 것이 좋습니다. 업로드된 에페메리스는 로 설정`ENABLED`되고 고객 응대를 예약하고 실행하는 데 사용할 수 있게 되기 전에 비동기 검증 워크플로를 거쳐야 하기 때문입니다.

 위의 예제`25994`에서 TLEs 세트의 모든 TLE에 있는 NORAD ID는 위성이 [Space-Track](https://www.space-track.org/) 데이터베이스에 할당된 NORAD ID와 일치해야 합니다.

## 예: S3 버킷에서 TLE 에페메리스 데이터 업로드
<a name="w2aac28c17c11c13"></a>

 버킷 및 객체 키를 가리켜 S3 버킷에서 직접 TLE 에페메리스 파일을 업로드할 수도 있습니다. AWS Ground Station 는 사용자를 대신하여 객체를 검색합니다. 의 저장 데이터 암호화에 대한 자세한 내용은 단원을 AWS Ground Station 참조하십시오[에 대한 저장 데이터 암호화 AWS Ground Station](security.encryption-at-rest.md).

 다음은 S3 버킷에서 TLE 에페메리스 파일을 업로드하는 예입니다.

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