

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 了解星历是如何 AWS Ground Station 使用的
<a name="ephemeris"></a>

 一个[星历](https://en.wikipedia.org/wiki/Ephemeris)，或多个星历，是一种提供天体轨迹的文件或数据结构。从历史上看，该文件仅涉及表格数据，但逐渐演变成为指示航天器轨迹的各种数据文件。

 Ephemeris API 允许将自定义星历上传到卫星上以供卫星使用。 AWS Ground Station [这些星历表覆盖了 Space-Track 中的默认星历表（参见:）。](https://www.space-track.org/) [默认星历数据](default-ephemeris-data.md)我们支持以 Orbit Ephemeris 消息 (OEM)、双线元素 (TLE) 和方位角高程格式接收星历数据。

 AWS Ground Station 使用星历数据根据提供的星历和正确指挥网络中的天线来确定联系人何时可用。 AWS Ground Station [默认情况下，如果您的卫星已分配了 NOR AWS Ground Station AD ID，则无需执行任何操作即可提供星历表。](https://en.wikipedia.org/wiki/Satellite_Catalog_Number)

 上传自定义[星历表可以提高跟踪质量，在没有 Spac](https://www.space-track.org/) e-Track 星历表的情况下处理早期操作，并考虑机动。 AWS Ground Station

 或者， AWS Ground Station 支持方位角仰角格式，该格式允许您直接指定天线指向方向，而无需提供卫星轨道信息。这对于由于卫星轨迹信息不精确或未知而需要精确天线指向的场景很有用。

**Topics**
+ [默认星历数据](default-ephemeris-data.md)
+ [提供自定义星历数据](providing-custom-ephemeris-data.md)
+ [使用自定义星历保留联系人](reserving-contacts-with-custom-ephemeris.md)
+ [了解使用的是哪种星历](which-ephemeris-is-used.md)
+ [获取卫星的当前星历](getting-current-ephemeris.md)
+ [恢复为默认星历数据](reverting-to-default-ephemeris-data.md)

# 默认星历数据
<a name="default-ephemeris-data"></a>

 默认情况下， AWS Ground Station 使用来自 Space [-Track](https://www.space-track.org/) 的公开数据，无需执行任何操作即可 AWS Ground Station 提供这些默认星历表。[这些星历表是与卫星的 NORAD ID 关联的[两行元素集 (TLEs)](https://en.wikipedia.org/wiki/Two-line_element_set)。](https://en.wikipedia.org/wiki/Satellite_Catalog_Number)所有默认星历表的优先级均为。`0`因此，它们将始终被通过星历表 API 上传的任何未过期的自定义星历表所覆盖，其优先级必须始终等于或更高。`1`

 没有 NORAD ID 的卫星必须将自定义星历数据上传到。 AWS Ground Station例如，刚刚发射或故意从[太空轨道](https://www.space-track.org/)目录中省略的卫星将没有 NORAD ID，需要上传自定义星历表。有关提供自定义星历数据的更多信息，请参阅：[提供自定义](providing-custom-ephemeris-data.md)星历数据。

# 提供自定义星历数据
<a name="providing-custom-ephemeris-data"></a>

**重要**  
 星历 API 当前处于预览状态 

 星历 API 的访问权限仅在需要时提供。如果您需要能够上传自定义星历数据，请通过 AWS 支持 。[AWS Support Center Console](https://console.aws.amazon.com/support)我们的团队将与您合作，根据您的特定要求启用此功能。

## 概述
<a name="w2aac28c17b7"></a>

 Ephemeris API 允许将自定义星历上传到卫星上以供卫星使用。 AWS Ground Station [这些星历表覆盖了 Space-Track 中的默认星历表（参见:）。](https://www.space-track.org/) [默认星历数据](default-ephemeris-data.md)我们支持以 Orbit Ephemeris 消息 (OEM)、双线元素 (TLE) 和方位角高程格式接收星历数据。

 AWS Ground Station 将星历视为[个性化](https://aws.amazon.com/service-terms)使用数据。如果您使用此可选功能，AWS 将使用您的星历数据来提供故障排除支持。

 上传自定义[星历表可以提高跟踪质量，在没有 Spac](https://www.space-track.org/) e-Track 星历表的情况下处理操作，并考虑动作。 AWS Ground Station

 要对无效的星历进行故障排除，请参阅：[对无效的星历进行故障排除](troubleshooting-invalid-ephemerides.md)

## 示例：使用客户提供的星历表 AWS Ground Station
<a name="w2aac28c17b9"></a>

 [有关使用客户提供的星历表的更多详细说明，请参阅[使用客户提供的星历表及其 AWS Ground Station关联存储库 aws-samples/](https://aws.amazon.com/blogs/publicsector/using-customer-provided-ephemerides-with-aws-ground-station/)。 AWS Ground Station GitHub aws-groundstation-cpe](https://github.com/aws-samples/aws-groundstation-cpe)

# 提供 TLE 星历数据
<a name="providing-tle-ephemeris-data"></a>

**重要**  
 星历 API 当前处于预览状态 

 星历 API 的访问权限仅在需要时提供。如果您需要能够上传自定义星历数据，请通过 AWS 支持 。[AWS Support Center Console](https://console.aws.amazon.com/support)我们的团队将与您合作，根据您的特定要求启用此功能。

## 概述
<a name="w2aac28c17c11b7"></a>

 双线元素 (TLE) 集是描述卫星轨道的标准化格式。Ephemeris API 允许将 TLE 星历表上传到卫星上以供卫星使用。 AWS Ground Station [这些星历表覆盖了 Space-Track 中的默认星历表（参见:）。](https://www.space-track.org/) [默认星历数据](default-ephemeris-data.md)

 AWS Ground Station 将星历视为[个性化](https://aws.amazon.com/service-terms)使用数据。如果您使用此可选功能，AWS 将使用您的星历数据来提供故障排除支持。

 上传自定义 TLE [星历表可以提高跟踪质量，处理没有 Spac](https://www.space-track.org/) e-Track 星历表的早期操作，并考虑机动。 AWS Ground Station

**注意**  
 在为卫星分配卫星目录编号之前提供自定义星历时，您可以使用 `00000` TLE的卫星目录编号字段，以及 `000` TLE国际标号字段的发射编号部分（例如，`24000A`用于2024年发射的飞行器）。  
 有关格式的更多信息 TLEs，请参阅[双行元素集](https://en.wikipedia.org/wiki/Two-line_element_set)。

## 创建 TLE 星历表
<a name="w2aac28c17c11b9"></a>

 可以使用 API 中的[CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)操作创建 TLE 星历表。 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 创建双行元素 (TLE) 集星历表
<a name="w2aac28c17c11c11"></a>

 和 CLI 可用于通过调用将双行元素 (TLE) 集星历表 AWS Ground Station 上传到。 AWS SDKs [CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)该星历将用于代替卫星的默认星历数据（参见）。[默认星历数据](default-ephemeris-data.md)此示例展示了如何使用适用于 [Python 的AWS SDK (Boto3)](https://docs.aws.amazon.com/pythonsdk) 来执行此操作。

 TLE 集是一个 JSON 格式的对象，它将一个或多个串在 TLEs 一起以构造连续的轨迹。TLE 集合 TLEs 中的必须形成一个连续的集合，我们可以用它来构造轨迹（即 TLE 集合 TLEs 中没有时间间隔）。下面显示了一个 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 集合 TLEs 中的时间范围必须完全匹配才能成为有效的连续轨迹。

 TLE 集可以通过 bot AWS Ground Station o3 客户端上传，如下所示：

```
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来轮询星历的状态：

```
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`和执行联系人。

 请注意，在上面的示例中，TLE 集合 TLEs 中所有的 NORAD ID 必须与`25994`在 SpaceTrack 数据库中为您的卫星分配的 NORAD ID 相匹配[。](https://www.space-track.org/)

## 示例：从 S3 存储桶上传 TLE 星历数据
<a name="w2aac28c17c11c13"></a>

 也可以通过指向 S3 存储桶和对象密钥直接从 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']}")
```

# 提供 OEM 星历数据
<a name="providing-oem-ephemeris-data"></a>

**重要**  
 星历 API 当前处于预览状态 

 星历 API 的访问权限仅在需要时提供。如果您需要能够上传自定义星历数据，请通过 AWS 支持 。[AWS Support Center Console](https://console.aws.amazon.com/support)我们的团队将与您合作，根据您的特定要求启用此功能。

## 概述
<a name="w2aac28c17c13b7"></a>

 轨道星历信息 (OEM) 是一种用于表示航天器轨迹数据的标准化格式。Ephemeris API 允许将 OEM 星历上传到卫星上以 AWS Ground Station 供卫星使用。[这些星历表覆盖了 Space-Track 中的默认星历表（参见:）。](https://www.space-track.org/) [默认星历数据](default-ephemeris-data.md)

 AWS Ground Station 将星历视为[个性化](https://aws.amazon.com/service-terms)使用数据。如果您使用此可选功能， AWS 将使用您的星历数据来提供故障排除支持。

 上传自定义 OEM [星历表可以提高跟踪质量，在没有 Spac](https://www.space-track.org/) e-Track 星历表的情况下处理早期操作，并考虑操作情况。 AWS Ground Station

**注意**  
 在为卫星分配卫星目录编号之前提供自定义星历时，您可以用`satelliteId`于 OEM 的`OBJECT_ID`部分。  
 有关格式的更多信息 OEMs，请参阅[OEM 星历格式](#oem-ephemeris-format)。

## OEM 星历格式
<a name="oem-ephemeris-format"></a>

 AWS Ground Station 根据 [CCSDS 标准处理 OEM 客户提供的星历表，但有一些](https://ccsds.org/Pubs/502x0b3e1.pdf)额外的限制。OEM 文件应采用 KVN 格式。下表概述了 OEM 中的不同字段以及 AWS Ground Station 与 CCSDS 标准的区别。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/ground-station/latest/ug/providing-oem-ephemeris-data.html)

 \$1 如果提供的 OEM 中包含任何 AWS Ground Station 不支持的行，OEM 将无法通过验证。

 与 CCSDS 标准的重要差异是： AWS Ground Station 
+ `CCSDS_OEM_VERS`必须是`2.0`。
+ `REF_FRAME`必须是`EME2000`或` ITRF2000`。
+ `REF_FRAME_EPOCH`不支持 AWS Ground Station。
+ `CENTER_NAME`必须是`Earth`。
+ `TIME_SYSTEM`必须是`UTC`。
+ `INTERPOLATION`并且两者`INTERPOLATION_DEGREE`都是 AWS Ground Station 客户提供的星历所必需的。

## KVN 格式的 OEM 星历示例
<a name="w2aac28c17c13c11"></a>

 以下是 JPSS-1 公共广播公司卫星的 KVN 格式的 OEM 星历的截断示例。

```
CCSDS_OEM_VERS = 2.0

COMMENT Orbit data are consistent with planetary ephemeris DE-430

CREATION_DATE  = 2024-07-22T05:20:59
ORIGINATOR     = Raytheon-JPSS/CGS

META_START
OBJECT_NAME          = J1
OBJECT_ID            = 2017-073A
CENTER_NAME          = Earth
REF_FRAME            = EME2000
TIME_SYSTEM          = UTC
START_TIME           = 2024-07-22T00:00:00.000000
STOP_TIME            = 2024-07-22T00:06:00.000000
INTERPOLATION        = Lagrange
INTERPOLATION_DEGREE = 5
META_STOP

2024-07-22T00:00:00.000000   5.905147360000000e+02  -1.860082793999999e+03  -6.944807075000000e+03  -5.784245796000000e+00   4.347501391999999e+00  -1.657256863000000e+00
2024-07-22T00:01:00.000000   2.425572045154201e+02  -1.595860765983339e+03  -7.030938457373539e+03  -5.810660250794190e+00   4.457103652219009e+00  -1.212889340333023e+00
2024-07-22T00:02:00.000000  -1.063224256538050e+02  -1.325569732497146e+03  -7.090262617183503e+03  -5.814973972202444e+00   4.549739160042560e+00  -7.639633689161465e-01
2024-07-22T00:03:00.000000  -4.547973959231161e+02  -1.050238305712201e+03  -7.122556683227951e+03  -5.797176562437553e+00   4.625064829516728e+00  -3.121687831090774e-01
2024-07-22T00:04:00.000000  -8.015427368657785e+02  -7.709137891269565e+02  -7.127699477194810e+03  -5.757338007808417e+00   4.682800822515077e+00   1.407953645161997e-01
2024-07-22T00:05:00.000000  -1.145240083085062e+03  -4.886583601179489e+02  -7.105671911254255e+03  -5.695608435738609e+00   4.722731329786999e+00   5.932259682105052e-01
2024-07-22T00:06:00.000000  -1.484582479061495e+03  -2.045451985605701e+02  -7.056557069672793e+03  -5.612218005854990e+00   4.744705579872771e+00   1.043421397392599e+00
```

## 创建 OEM 星历表
<a name="w2aac28c17c13c13"></a>

 可以使用 API 中的[CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)操作创建 OEM 星历表。 AWS Ground Station 此操作将使用请求正文或指定 S3 存储桶中的数据上传星历。

 请务必注意，上传星历会将星历设置为 ` VALIDATING` 并启动异步工作流程，该工作流程将验证您的星历并生成可能联络。只有当星历通过此工作流程并成为 `ENABLED` 后，才会将其用于联络。您应该轮[DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html)询星历状态或使用 CloudWatch 事件来跟踪星历的状态变化。

 要对无效的星历进行故障排除，请参阅：[对无效的星历进行故障排除](troubleshooting-invalid-ephemerides.md)

## 示例：从 S3 存储桶上传 OEM 星历数据
<a name="w2aac28c17c13c15"></a>

 也可以通过指向 S3 存储桶和对象密钥直接从 S3 存储桶上传 OEM 星历表文件。 AWS Ground Station 将代表您取回对象。中详细介绍了有关静态数据加密的信息 AWS Ground Station ，请参阅:[静态数据加密 AWS Ground Station](security.encryption-at-rest.md)。

 以下是从 S3 存储桶上传 OEM 星历文件的示例 

```
import boto3
from datetime import datetime, timedelta, timezone

# 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.oem"

# Create sample OEM data in KVN format
oem_data = """CCSDS_OEM_VERS = 2.0

COMMENT Orbit data are consistent with planetary ephemeris DE-430

CREATION_DATE  = 2024-07-22T05:20:59
ORIGINATOR     = Raytheon-JPSS/CGS

META_START
OBJECT_NAME          = J1
OBJECT_ID            = 2017-073A
CENTER_NAME          = Earth
REF_FRAME            = EME2000
TIME_SYSTEM          = UTC
START_TIME           = 2024-07-22T00:00:00.000000
STOP_TIME            = 2024-07-22T00:06:00.000000
INTERPOLATION        = Lagrange
INTERPOLATION_DEGREE = 5
META_STOP

2024-07-22T00:00:00.000000   5.905147360000000e+02  -1.860082793999999e+03  -6.944807075000000e+03  -5.784245796000000e+00   4.347501391999999e+00  -1.657256863000000e+00
2024-07-22T00:01:00.000000   2.425572045154201e+02  -1.595860765983339e+03  -7.030938457373539e+03  -5.810660250794190e+00   4.457103652219009e+00  -1.212889340333023e+00
2024-07-22T00:02:00.000000  -1.063224256538050e+02  -1.325569732497146e+03  -7.090262617183503e+03  -5.814973972202444e+00   4.549739160042560e+00  -7.639633689161465e-01
2024-07-22T00:03:00.000000  -4.547973959231161e+02  -1.050238305712201e+03  -7.122556683227951e+03  -5.797176562437553e+00   4.625064829516728e+00  -3.121687831090774e-01
2024-07-22T00:04:00.000000  -8.015427368657785e+02  -7.709137891269565e+02  -7.127699477194810e+03  -5.757338007808417e+00   4.682800822515077e+00   1.407953645161997e-01
2024-07-22T00:05:00.000000  -1.145240083085062e+03  -4.886583601179489e+02  -7.105671911254255e+03  -5.695608435738609e+00   4.722731329786999e+00   5.932259682105052e-01
2024-07-22T00:06:00.000000  -1.484582479061495e+03  -2.045451985605701e+02  -7.056557069672793e+03  -5.612218005854990e+00   4.744705579872771e+00   1.043421397392599e+00
"""

# Upload sample OEM data to S3
print(f"Uploading OEM data to s3://{bucket_name}/{object_key}")

s3_client.put_object(
    Bucket=bucket_name, Key=object_key, Body=oem_data, ContentType="text/plain"
)

print("OEM data uploaded successfully to S3")

# Create OEM ephemeris from S3
print("Creating OEM ephemeris from S3...")

s3_oem_ephemeris = ground_station_client.create_ephemeris(
    name="2024-07-22 S3 OEM Upload",
    satelliteId="fde41049-14f7-413e-bd7b-EXAMPLE01",
    enabled=True,
    expirationTime=datetime.now(timezone.utc) + timedelta(days=5),
    priority=2,
    ephemeris={"oem": {"s3Object": {"bucket": bucket_name, "key": object_key}}},
)

print(f"Created OEM ephemeris with ID: {s3_oem_ephemeris['ephemerisId']}")
```

 以下是为上一个示例代码块中上传的 OEM 星历调用 [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-EXAMPLE02",
  "priority": 2,
  "status": "VALIDATING",
  "suppliedData": {
    "oem": {
      "sourceS3Object": {
          "bucket": "ephemeris-bucket-for-testing",
          "key": "test_data.oem"
      }
    }
  }
}
```

# 提供方位角高程星历数据
<a name="providing-azimuth-elevation-ephemeris-data"></a>

**重要**  
 方位角高程星历表功能目前处于预览状态，需要明确入门。  
 对于有限数量的预先确定的专业用例，Azimuth 高程星历表功能受到严格的访问控制。与客户提供的标准星历功能相比，访问权限的限制要严格得多。有关已批准的用例和访问请求流程的更多信息，请通过打开 AWS 支持 票证[AWS Support Center Console](https://console.aws.amazon.com/support)。我们的团队将指导您完成专业用例的批准流程。

## 概述
<a name="w2aac28c17c15b5"></a>

 方位角高程星历提供了一种无需提供卫星轨道信息即可直接指定天线指向方向的方法。与其上传描述卫星轨道的星历数据，不如提供带时间标签的方位角和仰角，让天线在整个接触过程中准确指向何处。

 AWS Ground Station 将星历视为[个性化](https://aws.amazon.com/service-terms)使用数据。如果您使用此可选功能，AWS 将使用您的星历数据来提供故障排除支持。

 这种方法对以下场景特别有用：
+ *早期操作支持：*在发射和早期轨道阶段 (LEOP) 期间，无法获得精确的轨道数据，或者轨道参数正在迅速变化。
+ *自定义指向模式：*为天线测试或非标准操作实现特定的指向序列。

**注意**  
 使用方位角高程星历表时，联系人预订请求中可以省略卫星 ARN。如果不省略卫星 ARN，它仍将作为联系人数据的一部分，但方位角高程星历将用于天线指向，而不是执行星历优先分辨率。方位角仰角星历表与特定的地面站相关联，并定义了该位置的天线指向方向。

## 方位角高程星历数据格式
<a name="w2aac28c17c15b7"></a>

 方位角高程星历表数据由带时间标签的方位角和高程值组成，这些值按分段组织。每个分段都包含一系列覆盖特定时间范围的方位角和仰角。

 方位角高程星历数据的关键组成部分是：
+ G@@ *round Station：*将使用此方位角高程星历表的特定地面站。
+ *角度单位：*角度的计量单位（`DEGREE_ANGLE`或`RADIAN`）。
+ *分段：*一个或多个有时间限制的方位角和仰角集合。
+ *带时间标签的角度：*带有相关时间戳的单个方位角和仰角值。

 每个分段都需要：
+ 参考时期（分段的基准时间）
+ 有效的时间范围（分段的开始和结束时间）
+ 至少 5 对带时间标签 azimuth/elevation 的对

 方位角高程限制：
+ 以度为单位的方位角：-180° 到 360°
+ 以弧度为单位的方位角：-π 到 2π
+ 以度为单位的高度：-90° 到 90°
+ 以弧度为单位的高度：-π/2 到 π/2
+ 每个分段内的时间值必须按升序排列
+ 区段不得在时间上重叠

 有关更多信息，请参阅 [CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)API 文档和[TimeAzEl](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_TimeAzEl.html)数据类型。

## 创建方位角高程星历
<a name="w2aac28c17c15b9"></a>

 方位角高程星历使用相同的 [CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)API 操作创建，但使用星历类型。`azEl`与 TLE 和 OEM 星历表的主要区别在于：
+ 你必须指定一个`groundStation`参数
+ 请求中必须省略该`satelliteId`参数
+ 优先级设置不适用（每个方位角高程星历表都特定于地面站）
+ 每个分段必须包含至少 5 个 azimuth/elevation 点才能支持 4 阶拉格朗日插值
+ [CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)API 文档中详细介绍了其他限制和要求

 请务必注意，上传星历会将星历设置为 `VALIDATING` 并启动异步工作流程，该工作流程将验证您的星历并生成可能联络。只有在联系人通过此工作流程且其状态变为之后，星历才会用于联系人。`ENABLED`您应该轮[DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html)询星历状态或使用 CloudWatch 事件来跟踪星历的状态变化。

 要对无效的星历进行故障排除，请参阅：[对无效的星历进行故障排除](troubleshooting-invalid-ephemerides.md)

## 示例：通过 API 创建方位高程星历
<a name="w2aac28c17c15c11"></a>

 以下示例展示了如何使用适用于 Python 的 SDK ( AWS Boto3) 创建方位高程星历：

```
import boto3

# Create AWS Ground Station client
ground_station_client = boto3.client("groundstation")

# Create azimuth elevation ephemeris
azimuth_elevation_ephemeris = ground_station_client.create_ephemeris(
    name="Azimuth Elevation for Ohio Ground Station",
    ephemeris={
        "azEl": {
            "groundStation": "Ohio 1",
            "data": {
                "azElData": {
                    "angleUnit": "DEGREE_ANGLE",
                    "azElSegmentList": [
                        {
                            "referenceEpoch": "2024-03-15T10:00:00Z",
                            "validTimeRange": {
                                "startTime": "2024-03-15T10:00:00Z",
                                "endTime": "2024-03-15T10:15:00Z",
                            },
                            "azElList": [
                                {"dt": 0.0, "az": 45.0, "el": 10.0},
                                {"dt": 180.0, "az": 50.0, "el": 15.0},
                                {"dt": 360.0, "az": 55.0, "el": 20.0},
                                {"dt": 540.0, "az": 60.0, "el": 25.0},
                                {"dt": 720.0, "az": 65.0, "el": 30.0},
                                {"dt": 900.0, "az": 70.0, "el": 35.0},
                            ],
                        }
                    ],
                }
            },
        }
    },
)

print(f"Created ephemeris with ID: {azimuth_elevation_ephemeris['ephemerisId']}")
```

 在本示例中：
+ 方位角高程数据与 “俄亥俄一号” 地面站相关联
+ 角度以度为单位指定
+ 该片段为时15分钟
+ 这些`dt`值是与参考时代相比的原子秒偏移量
+ 提供六 azimuth/elevation 对（最少 5 对）

## 示例：从 S3 上传方位角高程数据
<a name="w2aac28c17c15c13"></a>

 对于较大的数据集，您可以从 S3 存储桶上传方位角高程数据：

```
import boto3
import json

# Create AWS clients
s3_client = boto3.client("s3")
ground_station_client = boto3.client("groundstation")

# Define S3 bucket and key
bucket_name = "azimuth-elevation-bucket"
object_key = "singapore-azimuth-elevation.json"

# Create sample azimuth elevation data
azimuth_elevation_data = {
    "angleUnit": "DEGREE_ANGLE",
    "azElSegmentList": [
        {
            "referenceEpoch": "2024-03-15T10:00:00Z",
            "validTimeRange": {
                "startTime": "2024-03-15T10:00:00Z",
                "endTime": "2024-03-15T10:15:00Z",
            },
            "azElList": [
                {"dt": 0.0, "az": 45.0, "el": 10.0},
                {"dt": 180.0, "az": 50.0, "el": 15.0},
                {"dt": 360.0, "az": 55.0, "el": 20.0},
                {"dt": 540.0, "az": 60.0, "el": 25.0},
                {"dt": 720.0, "az": 65.0, "el": 30.0},
                {"dt": 900.0, "az": 70.0, "el": 35.0},
            ],
        },
        {
            "referenceEpoch": "2024-03-15T10:15:00Z",
            "validTimeRange": {
                "startTime": "2024-03-15T10:15:00Z",
                "endTime": "2024-03-15T10:30:00Z",
            },
            "azElList": [
                {"dt": 0.0, "az": 70.0, "el": 35.0},
                {"dt": 180.0, "az": 75.0, "el": 40.0},
                {"dt": 360.0, "az": 80.0, "el": 45.0},
                {"dt": 540.0, "az": 85.0, "el": 50.0},
                {"dt": 720.0, "az": 90.0, "el": 55.0},
                {"dt": 900.0, "az": 95.0, "el": 50.0},
            ],
        },
    ],
}

# Upload sample data to S3
print(f"Uploading azimuth elevation data to s3://{bucket_name}/{object_key}")

s3_client.put_object(
    Bucket=bucket_name,
    Key=object_key,
    Body=json.dumps(azimuth_elevation_data, indent=2),
    ContentType="application/json",
)
print("Sample data uploaded successfully to S3")

# Create azimuth elevation ephemeris from S3
print("Creating azimuth elevation ephemeris from S3...")

s3_azimuth_elevation_ephemeris = ground_station_client.create_ephemeris(
    name="Large Azimuth Elevation Dataset",
    ephemeris={
        "azEl": {
            "groundStation": "Singapore 1",
            "data": {"s3Object": {"bucket": bucket_name, "key": object_key}},
        }
    },
)

print(f"Created ephemeris with ID: {s3_azimuth_elevation_ephemeris['ephemerisId']}")
```

 S3 对象应包含一个 JSON 结构，其方位角高程数据的格式与直接上传示例中所示的格式相同。

## 使用方位角仰角星历保留联系人
<a name="w2aac28c17c15c15"></a>

 使用方位角仰角星历表保留联系人时，流程与 TLE 和 OEM 星历表不同：

1. 使用创建方位角高程星历 [CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)

1. 等待星历达到状态 `ENABLED`

1. 使用追踪覆盖功能[ReserveContact](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ReserveContact.html)预订联系人

 使用方位角仰角星历表预约联系人的示例：

```
import boto3
from datetime import datetime
import time

# Create AWS Ground Station client
ground_station_client = boto3.client("groundstation")

# First, create an azimuth elevation ephemeris
print("Creating azimuth elevation ephemeris...")

create_ephemeris_response = ground_station_client.create_ephemeris(
    name="Azimuth Elevation for Contact Reservation",
    ephemeris={
        "azEl": {
            "groundStation": "Ohio 1",
            "data": {
                "azElData": {
                    "angleUnit": "DEGREE_ANGLE",
                    "azElSegmentList": [
                        {
                            "referenceEpoch": "2024-03-15T10:00:00Z",
                            "validTimeRange": {
                                "startTime": "2024-03-15T10:00:00Z",
                                "endTime": "2024-03-15T10:15:00Z",
                            },
                            "azElList": [
                                {"dt": 0.0, "az": 45.0, "el": 10.0},
                                {"dt": 180.0, "az": 50.0, "el": 15.0},
                                {"dt": 360.0, "az": 55.0, "el": 20.0},
                                {"dt": 540.0, "az": 60.0, "el": 25.0},
                                {"dt": 720.0, "az": 65.0, "el": 30.0},
                                {"dt": 900.0, "az": 70.0, "el": 35.0},
                            ],
                        }
                    ],
                }
            },
        }
    },
)

ephemeris_id = create_ephemeris_response["ephemerisId"]
print(f"Created ephemeris with ID: {ephemeris_id}")

# Wait for ephemeris to become ENABLED
print("Waiting for ephemeris to become ENABLED...")

while True:
    status = ground_station_client.describe_ephemeris(ephemerisId=ephemeris_id)[
        "status"
    ]
    if status == "ENABLED":
        print("Ephemeris is ENABLED")
        break
    elif status in ["INVALID", "ERROR"]:
        raise RuntimeError(f"Ephemeris failed: {status}")
    time.sleep(5)

# Reserve contact with azimuth elevation ephemeris
print("Reserving contact...")

contact = ground_station_client.reserve_contact(
    # Note: satelliteArn is omitted when using azimuth elevation ephemeris
    missionProfileArn="arn:aws:groundstation:us-east-2:111122223333:mission-profile/example-mission-profile",
    groundStation="Ohio 1",
    startTime=datetime(2024, 3, 15, 10, 0, 0),
    endTime=datetime(2024, 3, 15, 10, 15, 0),
    trackingOverrides={"programTrackSettings": {"azEl": {"ephemerisId": ephemeris_id}}},
)

print(f"Reserved contact with ID: {contact['contactId']}")
```

**注意**  
 保留与方位角仰角星历表的接触时，可以省略该`satelliteArn`参数。在接触过程中，天线将遵循指定的方位角和仰角。

## 列出可用的联系人
<a name="w2aac28c17c15c17"></a>

 使用方位角高程星历表时，API 需要特定的参数：[ListContacts](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListContacts.html)
+ 可以从请求中省略该`satelliteArn`参数
+ 必须提供带有方位角高程星历表 ID 的`ephemeris`参数，以指定要使用哪个星历表
+ 当提供的方位角和仰角高于所请求的地[面站的场地掩码](https://docs.aws.amazon.com/ground-station/latest/ug/locations.site-masks.html)时，可用的接触窗口会显示出来
+ 您仍然必须提供`groundStation`和 `missionProfileArn`

 创建方位角高程星历表并用它列出可用联系人的示例：

```
import boto3
from datetime import datetime, timezone
import time

# Create AWS Ground Station client
ground_station_client = boto3.client("groundstation")

# Step 1: Create azimuth elevation ephemeris
print("Creating azimuth elevation ephemeris...")
ephemeris_response = ground_station_client.create_ephemeris(
    name="Stockholm AzEl Ephemeris",
    ephemeris={
        "azEl": {
            "groundStation": "Stockholm 1",
            "data": {
                "azElData": {
                    "angleUnit": "DEGREE_ANGLE",
                    "azElSegmentList": [
                        {
                            "referenceEpoch": "2024-04-01T12:00:00Z",
                            "validTimeRange": {
                                "startTime": "2024-04-01T12:00:00Z",
                                "endTime": "2024-04-01T12:30:00Z",
                            },
                            "azElList": [
                                {"dt": 0.0, "az": 30.0, "el": 15.0},
                                {"dt": 360.0, "az": 45.0, "el": 30.0},
                                {"dt": 720.0, "az": 60.0, "el": 45.0},
                                {"dt": 1080.0, "az": 75.0, "el": 35.0},
                                {"dt": 1440.0, "az": 90.0, "el": 20.0},
                                {"dt": 1800.0, "az": 105.0, "el": 10.0},
                            ],
                        }
                    ],
                }
            },
        }
    },
)

ephemeris_id = ephemeris_response["ephemerisId"]
print(f"Created ephemeris: {ephemeris_id}")

# Step 2: Wait for ephemeris to become ENABLED
print("Waiting for ephemeris to become ENABLED...")
while True:
    describe_response = ground_station_client.describe_ephemeris(
        ephemerisId=ephemeris_id
    )
    status = describe_response["status"]

    if status == "ENABLED":
        print("Ephemeris is ENABLED")
        break
    elif status in ["INVALID", "ERROR"]:
        # Check for validation errors
        if "invalidReason" in describe_response:
            print(f"Ephemeris validation failed: {describe_response['invalidReason']}")
        raise RuntimeError(f"Ephemeris failed with status: {status}")

    print(f"Current status: {status}, waiting...")
    time.sleep(5)

# Step 3: List available contacts using the azimuth elevation ephemeris
print("Listing available contacts with azimuth elevation ephemeris...")

# Convert epoch timestamps to datetime objects
start_time = datetime.fromtimestamp(1760710513, tz=timezone.utc)
end_time = datetime.fromtimestamp(1760883313, tz=timezone.utc)

contacts_response = ground_station_client.list_contacts(
    startTime=start_time,
    endTime=end_time,
    groundStation="Stockholm 1",
    statusList=["AVAILABLE"],
    ephemeris={"azEl": {"id": ephemeris_id}},
    # satelliteArn is optional
    satelliteArn="arn:aws:groundstation::111122223333:satellite/a88611b0-f755-404e-b60d-57d8aEXAMPLE",
    missionProfileArn="arn:aws:groundstation:eu-north-1:111122223333:mission-profile/966b72f6-6d82-4e7e-b072-f8240EXAMPLE",
)

# Process the results
if contacts_response["contactList"]:
    print(f"Found {len(contacts_response['contactList'])} available contacts:")
    for contact in contacts_response["contactList"]:
        print(f"  - Contact from {contact['startTime']} to {contact['endTime']}")
        print(
            f"    Max elevation: {contact.get('maximumElevation', {}).get('value', 'N/A')}°"
        )
else:
    print("No available contacts found for the specified azimuth elevation ephemeris")
```

**注意**  
 列出联系人时，必须提供带有方位角高程 ID 的`ephemeris`参数，以指定应使用哪种方位角高程星历表来确定联系人窗口。`satelliteArn`如果包含，它将与接触数据相关联，但是方位角仰角星历将用于天线指向，而不是执行星历优先分辨率。

# 使用自定义星历保留联系人
<a name="reserving-contacts-with-custom-ephemeris"></a>

## 概述
<a name="w2aac28c19b3"></a>

 使用自定义星历（TLE、OEM 或方位角仰角）时，您可以使用 API 保留联系人。[ReserveContact](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ReserveContact.html)本节介绍两种用于预留联系人的常见工作流程以及确保成功安排联系人的重要注意事项。

 AWS Ground Station 天线是多个客户共享的资源。这意味着，即使在您列出联系人时出现可用的联系人窗口，其他客户也可能会在您之前预留该窗口。因此，至关重要的是要验证您的联系人在预订后是否到达该`SCHEDULED`州，并对接触状态的变化进行适当的监控。

**重要**  
 对于方位角高程星历，可以从`ReserveContact`请求中省略该`satelliteArn`参数，并且您必须提供星历表 ID。`trackingOverrides`对于 TLE 和 OEM 星历表，您仍然需要提供. `satelliteArn` 

## 联系人预订工作流程
<a name="w2aac28c19b5"></a>

 使用自定义星历预留联系人的主要工作流程有两个：

1. *List-then-reserve 工作流程：*首先列出可用的联系人窗口 [ListContacts](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListContacts.html)，然后选择并保留特定的窗口。当您想在做出选择之前查看所有可用的机会时，这种方法非常有用。

1. *直接预订工作流程：*直接在特定时间段内保留联系人，无需先列出可用的联系人。当您已经知道所需的联系时间或正在使用预先确定的时间表时，这种方法非常有用。

 两种工作流程均有效，具体选择取决于您的操作要求。以下各节提供了每种方法的示例。

## 工作流程 1：列出可用的联系人然后预订
<a name="w2aac28c19b7"></a>

 此工作流程首先查询可用的联系人窗口，然后保留特定的窗口。当你想在做出选择之前查看所有可用的机会时，这很有用。

### 示例：使用方位角高程星历表列出并保留
<a name="w2aac28c19b7b5"></a>

```
import boto3
from datetime import datetime, timezone
import time

# Create AWS Ground Station client
ground_station_client = boto3.client("groundstation")

# Create azimuth elevation ephemeris
print("Creating azimuth elevation ephemeris...")
ephemeris_response = ground_station_client.create_ephemeris(
    name="AzEl Ephemeris for Contact",
    ephemeris={
        "azEl": {
            "groundStation": "Ohio 1",
            "data": {
                "azElData": {
                    "angleUnit": "DEGREE_ANGLE",
                    "azElSegmentList": [
                        {
                            "referenceEpoch": "2024-03-15T10:00:00Z",
                            "validTimeRange": {
                                "startTime": "2024-03-15T10:00:00Z",
                                "endTime": "2024-03-15T10:15:00Z",
                            },
                            "azElList": [
                                {"dt": 0.0, "az": 45.0, "el": 10.0},
                                {"dt": 180.0, "az": 50.0, "el": 15.0},
                                {"dt": 360.0, "az": 55.0, "el": 20.0},
                                {"dt": 540.0, "az": 60.0, "el": 25.0},
                                {"dt": 720.0, "az": 65.0, "el": 30.0},
                                {"dt": 900.0, "az": 70.0, "el": 35.0},
                            ],
                        }
                    ],
                }
            },
        }
    },
)

ephemeris_id = ephemeris_response["ephemerisId"]
print(f"Created ephemeris: {ephemeris_id}")

# Wait for ephemeris to become ENABLED
while True:
    status = ground_station_client.describe_ephemeris(ephemerisId=ephemeris_id)[
        "status"
    ]
    if status == "ENABLED":
        print("Ephemeris is ENABLED")
        break
    elif status in ["INVALID", "ERROR"]:
        raise RuntimeError(f"Ephemeris failed: {status}")
    time.sleep(5)

# List available contacts
print("Listing available contacts...")
contacts = ground_station_client.list_contacts(
    # Note: satelliteArn is omitted for azimuth elevation ephemeris
    groundStation="Ohio 1",
    missionProfileArn="arn:aws:groundstation:us-east-2:111122223333:mission-profile/example-profile",
    startTime=datetime(2024, 3, 15, 10, 0, 0, tzinfo=timezone.utc),
    endTime=datetime(2024, 3, 15, 10, 15, 0, tzinfo=timezone.utc),
    statusList=["AVAILABLE"],
    ephemeris={"azEl": {"id": ephemeris_id}},
)

if contacts["contactList"]:
    # Reserve the first available contact
    contact = contacts["contactList"][0]
    print(f"Reserving contact from {contact['startTime']} to {contact['endTime']}...")

    reservation = ground_station_client.reserve_contact(
        # Note: satelliteArn is omitted when using azimuth elevation ephemeris
        missionProfileArn="arn:aws:groundstation:us-east-2:111122223333:mission-profile/example-profile",
        groundStation="Ohio 1",
        startTime=contact["startTime"],
        endTime=contact["endTime"],
        trackingOverrides={
            "programTrackSettings": {"azEl": {"ephemerisId": ephemeris_id}}
        },
    )

    print(f"Reserved contact: {reservation['contactId']}")
else:
    print("No available contacts found")
```

### 示例：使用 TLE 星历表列出并预订
<a name="w2aac28c19b7b7"></a>

```
import boto3
from datetime import datetime, timedelta, timezone
import time

# Create AWS Ground Station client
ground_station_client = boto3.client("groundstation")

satellite_id = "12345678-1234-1234-1234-123456789012"
satellite_arn = f"arn:aws:groundstation::111122223333:satellite/{satellite_id}"

# Create TLE ephemeris
print("Creating TLE ephemeris...")
ephemeris_response = ground_station_client.create_ephemeris(
    name="TLE Ephemeris for Contact",
    satelliteId=satellite_id,
    enabled=True,
    expirationTime=datetime.now(timezone.utc) + timedelta(days=7),
    priority=1,  # Higher priority than default ephemeris
    ephemeris={
        "tle": {
            "tleData": [
                {
                    "tleLine1": "1 25994U 99068A   24075.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 = ephemeris_response["ephemerisId"]
print(f"Created ephemeris: {ephemeris_id}")

# Wait for ephemeris to become ENABLED
while True:
    status = ground_station_client.describe_ephemeris(ephemerisId=ephemeris_id)[
        "status"
    ]
    if status == "ENABLED":
        print("Ephemeris is ENABLED")
        break
    elif status in ["INVALID", "ERROR"]:
        raise RuntimeError(f"Ephemeris failed: {status}")
    time.sleep(5)

# List available contacts
print("Listing available contacts...")
start_time = datetime.now(timezone.utc) + timedelta(hours=1)
end_time = start_time + timedelta(days=1)

contacts = ground_station_client.list_contacts(
    satelliteArn=satellite_arn,  # Required for TLE/OEM ephemeris
    groundStation="Hawaii 1",
    missionProfileArn="arn:aws:groundstation:us-west-2:111122223333:mission-profile/example-profile",
    startTime=start_time,
    endTime=end_time,
    statusList=["AVAILABLE"],
)

if contacts["contactList"]:
    # Reserve the first available contact
    contact = contacts["contactList"][0]
    print(f"Reserving contact from {contact['startTime']} to {contact['endTime']}...")

    reservation = ground_station_client.reserve_contact(
        satelliteArn=satellite_arn,  # Required for TLE/OEM ephemeris
        missionProfileArn="arn:aws:groundstation:us-west-2:111122223333:mission-profile/example-profile",
        groundStation="Hawaii 1",
        startTime=contact["startTime"],
        endTime=contact["endTime"],
        # Note: trackingOverrides is optional for TLE/OEM
        # The system will use the highest priority ephemeris automatically
    )

    print(f"Reserved contact: {reservation['contactId']}")
else:
    print("No available contacts found")
```

## 工作流程 2：直接联系预约
<a name="w2aac28c19b9"></a>

 此工作流程直接保留联系人，无需先列出可用窗口。当您已经知道所需的联系时间或正在实施自动安排时，这种方法非常有用。

### 示例：使用方位角高程星历表直接预留
<a name="w2aac28c19b9b5"></a>

```
import boto3
from datetime import datetime, timezone
import time

# Create AWS Ground Station client
ground_station_client = boto3.client("groundstation")

# Define contact window
contact_start = datetime(2024, 3, 20, 14, 0, 0, tzinfo=timezone.utc)
contact_end = datetime(2024, 3, 20, 14, 15, 0, tzinfo=timezone.utc)

# Create azimuth elevation ephemeris for the specific contact time
print("Creating azimuth elevation ephemeris...")
ephemeris_response = ground_station_client.create_ephemeris(
    name="Direct Contact AzEl Ephemeris",
    ephemeris={
        "azEl": {
            "groundStation": "Ohio 1",
            "data": {
                "azElData": {
                    "angleUnit": "DEGREE_ANGLE",
                    "azElSegmentList": [
                        {
                            "referenceEpoch": contact_start.isoformat(),
                            "validTimeRange": {
                                "startTime": contact_start.isoformat(),
                                "endTime": contact_end.isoformat(),
                            },
                            "azElList": [
                                {"dt": 0.0, "az": 45.0, "el": 10.0},
                                {"dt": 180.0, "az": 50.0, "el": 15.0},
                                {"dt": 360.0, "az": 55.0, "el": 20.0},
                                {"dt": 540.0, "az": 60.0, "el": 25.0},
                                {"dt": 720.0, "az": 65.0, "el": 30.0},
                                {"dt": 900.0, "az": 70.0, "el": 35.0},
                            ],
                        }
                    ],
                }
            },
        }
    },
)

ephemeris_id = ephemeris_response["ephemerisId"]
print(f"Created ephemeris: {ephemeris_id}")

# Wait for ephemeris to become ENABLED
while True:
    status = ground_station_client.describe_ephemeris(ephemerisId=ephemeris_id)[
        "status"
    ]
    if status == "ENABLED":
        print("Ephemeris is ENABLED")
        break
    elif status in ["INVALID", "ERROR"]:
        raise RuntimeError(f"Ephemeris failed: {status}")
    time.sleep(5)

# Directly reserve the contact
print(f"Reserving contact from {contact_start} to {contact_end}...")

reservation = ground_station_client.reserve_contact(
    # Note: satelliteArn is omitted for azimuth elevation
    missionProfileArn="arn:aws:groundstation:us-east-2:111122223333:mission-profile/example-profile",
    groundStation="Ohio 1",
    startTime=contact_start,
    endTime=contact_end,
    trackingOverrides={"programTrackSettings": {"azEl": {"ephemerisId": ephemeris_id}}},
)

print(f"Reserved contact: {reservation['contactId']}")
```

### 示例：使用 TLE 星历表直接预订
<a name="w2aac28c19b9b7"></a>

```
import boto3
from datetime import datetime, timedelta, timezone
import time

# Create AWS Ground Station client
ground_station_client = boto3.client("groundstation")

satellite_id = "12345678-1234-1234-1234-123456789012"
satellite_arn = f"arn:aws:groundstation::111122223333:satellite/{satellite_id}"

# Define contact window (based on predicted pass)
contact_start = datetime(2024, 3, 21, 10, 30, 0, tzinfo=timezone.utc)
contact_end = datetime(2024, 3, 21, 10, 42, 0, tzinfo=timezone.utc)

# Create TLE ephemeris
print("Creating TLE ephemeris...")
ephemeris_response = ground_station_client.create_ephemeris(
    name="Direct Contact TLE Ephemeris",
    satelliteId=satellite_id,
    enabled=True,
    expirationTime=contact_end + timedelta(days=1),
    priority=1,
    ephemeris={
        "tle": {
            "tleData": [
                {
                    "tleLine1": "1 25994U 99068A   24080.50000000  .00000075  00000-0  26688-4 0  9999",
                    "tleLine2": "2 25994  98.2007  35.6589 0001234  89.2782  18.9934 14.57114995112000",
                    "validTimeRange": {
                        "startTime": (contact_start - timedelta(hours=1)).isoformat(),
                        "endTime": (contact_end + timedelta(hours=1)).isoformat(),
                    },
                }
            ]
        }
    },
)

ephemeris_id = ephemeris_response["ephemerisId"]
print(f"Created ephemeris: {ephemeris_id}")

# Wait for ephemeris to become ENABLED
while True:
    status = ground_station_client.describe_ephemeris(ephemerisId=ephemeris_id)[
        "status"
    ]
    if status == "ENABLED":
        print("Ephemeris is ENABLED")
        break
    elif status in ["INVALID", "ERROR"]:
        raise RuntimeError(f"Ephemeris failed: {status}")
    time.sleep(5)

# Directly reserve the contact
print(f"Reserving contact from {contact_start} to {contact_end}...")

reservation = ground_station_client.reserve_contact(
    satelliteArn=satellite_arn,  # Required for TLE ephemeris
    missionProfileArn="arn:aws:groundstation:us-west-2:111122223333:mission-profile/example-profile",
    groundStation="Hawaii 1",
    startTime=contact_start,
    endTime=contact_end,
    # Note: trackingOverrides is optional for TLE
    # The system will use the highest priority ephemeris automatically
)

print(f"Reserved contact: {reservation['contactId']}")
```

## 监控联系人状态的变化
<a name="w2aac28c19c11"></a>

 预约联系人后，重要的是要监控其状态，以确保其成功过渡到任何问题`SCHEDULED`并收到通知。 AWS Ground Station EventBridge 针对所有联系状态变更向 Amazon 发送事件。

 联系人状态遵循以下生命周期：
+ `SCHEDULING`-正在处理联系人以进行日程安排
+ `SCHEDULED`-已成功安排联系人并将执行
+ `FAILED_TO_SCHEDULE`-无法安排联系人（终端状态）

 有关联系人状态和生命周期的更多信息，请参阅[了解联系人生命周期](contacts.lifecycle.md)。

### 使用实现接触状态监控 EventBridge
<a name="w2aac28c19c11c11"></a>

 要实时监控联系人状态的变化，您可以设置一 EventBridge 条 Amazon 规则，该规则在 Ground Station 联系人更改状态时触发 Lambda 函数。这种方法比轮询联系人状态更有效且更具可扩展性。

#### 实现步骤
<a name="w2aac28c19c11c11b5"></a>

1. 创建 Lambda 函数来处理联系人状态变更事件

1. 创建与 Ground Station 联络状态变更事件相匹配的 EventBridge 规则

1. 添加 Lambda 函数作为规则的目标

#### Lambda 函数处理程序示例
<a name="w2aac28c19c11c11b7"></a>

 有关处理联系人状态变更事件的 Lambda 函数的完整示例，请参阅模板中的`GroundStationCloudWatchEventHandlerLambda``AquaSnppJpssTerraDigIF.yml` CloudFormation 资源。此模板可在 AWS Ground Station 客户入门 Amazon S3 存储桶中找到。有关访问此模板的说明，请参阅 dataflow 端点示例[把它放在一起](examples.pbs-data-dataflow-endpoint.md#examples.pbs-dataflow-endpoint.putting-it-together)部分。

#### EventBridge 规则配置
<a name="w2aac28c19c11c11b9"></a>

 该 EventBridge 规则应使用以下事件模式来匹配所有 Ground Station 联系状态的变化：

```
{
  "source": ["aws.groundstation"],
  "detail-type": ["Ground Station Contact State Change"]
}
```

 要仅筛选特定状态（例如故障），可以添加详细信息筛选器：

```
{
  "source": ["aws.groundstation"],
  "detail-type": ["Ground Station Contact State Change"],
  "detail": {
    "contactStatus": [
      "FAILED_TO_SCHEDULE",
      "FAILED",
      "AWS_FAILED",
      "AWS_CANCELLED"
    ]
  }
}
```

 有关使用 Lambda 目标创建 EventBridge 规则的详细说明，请参阅 Amazon EventBridge 用户指南中的[创建对事件做出反应的规则](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html)。

### 设置自动化 EventBridge 规则
<a name="w2aac28c19c11c13"></a>

 您可以创建 EventBridge 规则以自动响应联系人状态的变化。例如：
+ 联系人无法安排时发送通知
+ 当联系人进入时触发 Lambda 函数以准备资源 `PREPASS`
+ 记录联系完成情况以供审计

 有关设置 AWS Ground Station 事件 EventBridge 规则的详细信息，请参阅[利用事件 AWS Ground Station 实现自动化](monitoring.automating-events.md)。

## 最佳实践和注意事项
<a name="w2aac28c19c13"></a>

### 处理日程安排冲突
<a name="w2aac28c19c13b3"></a>

 AWS Ground Station 由于天线是共享资源，因此在中显示的联系窗口`ListContacts`可能会被其他客户预留，然后您才能预订。要处理这个问题：

1. 预订后请务必查看联系状态

1. 使用备用时间窗口实现重试逻辑

1. 如有可能，请考虑提前预约联系人

1. 使用 EventBridge 事件监控`FAILED_TO_SCHEDULE`状态

### 星历验证时机
<a name="w2aac28c19c13b5"></a>

 请记住，星历必须处于`ENABLED`状态，然后才能使用它来保留联系人。验证过程通常需要几秒钟到几分钟，具体取决于星历的类型和大小。在尝试保留联系人之前，请务必验证星历状态。

### 联系时机注意事项
<a name="w2aac28c19c13b7"></a>

 使用自定义星历时：
+ 确保您的星历涵盖整个接触时间
+ [对于方位角仰角星历，请验证角度是否在整个接触过程中使天线保持在场地掩模上方](https://docs.aws.amazon.com/ground-station/latest/ug/locations.site-masks.html)
+ 在安排 future 联系人时，请考虑星历的到期时间

### 按星历类型划分的 API 差异
<a name="w2aac28c19c13b9"></a>

 根据星历类型，`ReserveContact`API 的行为会有所不同：


| 星历类型 | 需要卫星收入 | 需要追踪覆盖 | 
| --- | --- | --- | 
| TLE | 是 | 否（可选） | 
| OEM | 是 | 否（可选） | 
| 方位角高程 | 否（可选） | 是 | 

# 了解使用的是哪种星历
<a name="which-ephemeris-is-used"></a>

 星历具有*优先级*、*到期时间*和*启用*标记。它们共同决定了在联系期间使用哪个星历进行跟踪。

## TLE 和 OEM 星历表
<a name="w2aac28c21b5"></a>

 对于 OEM 和 TLE 星历表，每颗卫星只能有一个星历处于活动状态。将要使用的星历是已启用的具有最高优先级的星历，其到期时间在未来。优先级值越大表示优先级越高。返回的可用联系时间[ListContacts](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListContacts.html)基于此星历。如果多个 `ENABLED` 的星历具有相同的优先级，则将使用最近创建或更新的星历。

**注意**  
 AWS Ground Station [对每颗卫星`ENABLED`客户提供的星历表数量有服务配额（参见：Service Quotas）。](https://docs.aws.amazon.com/general/latest/gr/gs.html)要在达到此限额后上传星历数据，请删除（使用 [DeleteEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DeleteEphemeris.html)）或禁用（使用 [UpdateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_UpdateEphemeris.html)）优先级最低/最早创建的客户提供的星历。

 [如果尚未创建星历表，或者没有星历表具有`ENABLED`状态，则 AWS Ground Station 将使用卫星的默认星历表（来自 Space-Track）（如果有）。](https://www.space-track.org/)此默认星历的优先级为 0。

## 方位角仰角星历表
<a name="w2aac28c21b7"></a>

 Azimuth 仰角星历表的工作原理与 OEM 和 TLE 星历表不同。每个方位角高程星历都与特定的地面站相关联，没有优先级。当您使用方位角高程星历表保留联系时，您可以通过参数明确指定要使用的方位角高程星历。`trackingOverrides`

 方位角仰角星历表的主要区别：
+ 没有优先级系统-您可以为每位联系人明确选择星历
+ 特定于地面站-每个星历都与特定的地面站相关联
+ 没有自动回退功能-如果指定的星历不可用，则联系将失败

**注意**  
 Azimuth 仰角星历表无法与 OEM 和 TLE 星历表竞争。它们是在预订联系人时明确选择的，并且仅在指定了追踪覆盖时才使用。

## 新星历表对先前安排的接触的影响
<a name="w2aac28c21b9"></a>

 使用 [DescribeContact API](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeContact.html) 通过返回活动可见时间来查看新星历对先前安排的联系人的影响。

 对于 OEM 和 TLE 星历表，在上传新星历之前安排的联系人将保留最初安排的联系时间，而天线跟踪将使用有效的星历表。如果基于活动星历的航天器位置与先前的星历有很大不同，则由于航天器在场地掩码外运行，这可能会导致卫星与天线的接触时间缩短。 transmit/receive 因此，我们建议您在上传与之前的星历表大不相同的新星历后，取消并重新安排未来的联系时间。

 使用 [DescribeContact API](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeContact.html)，您可以通过比较您的预定接触`startTime`和`endTime`返回的接触次数，来确定由于航天器在 transmit/receive 场地掩码之外运行`visibilityStartTime`而`visibilityEndTime`无法使用的部分。如果您选择取消并重新安排将来的联系人，则联系时间范围在可见时间范围之外的时间不得超过 30 秒。如果取消联系的时间太近，则取消的联系可能会产生费用。有关取消联系的更多信息，请参阅：G [round Station FAQs](https://aws.amazon.com/ground-station/faqs/)。

 对于方位角高程星历，预定的联系人将使用保留联系人时选择的特定星历。如果您需要更新已安排的联系人的方位角高程数据，则可以取消联系并使用新的星历重新安排接触。

# 获取卫星的当前星历
<a name="getting-current-ephemeris"></a>

 可以通过调用或操作来检索 AWS Ground Station 特定卫星当前使用的星历表。[GetSatellite[ListSatellites](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListSatellites.html)](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_GetSatellite.html)这两种方法都将返回当前使用的星历的元数据。上传到默认星历表的自定义星历表和默认星历表的星历表元数据有所不同。 AWS Ground Station 

**注意**  
 方位角高程星历表与卫星无关，因此不由或返回。[GetSatellite[ListSatellites](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListSatellites.html)](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_GetSatellite.html)要检索有关方位角高程星历表的信息，请使用带有特定星历表 ID [DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html)的 API，或者使用[ListEphemerides](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListEphemerides.html)查看您账户的所有可用星历表。

 默认星历将仅包含 `source` 和 `epoch` 字段。`epoch`这是从 Sp [ace-Track 中提取的[双线元素集](https://en.wikipedia.org/wiki/Two-line_element_set)[的时代](https://en.wikipedia.org/wiki/Epoch_(astronomy))，它目前正用于计算卫星](https://www.space-track.org/)的轨迹。

 自定义星历的 `CUSTOMER_PROVIDED` 为 `source` 值，且在 `ephemerisId` 字段中包含唯一标识符。此唯一标识符可用于通过 [DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html) 操作查询星历。如果在上传时 AWS Ground Station 通过操作为星历分配了名称，则会返回一个可选字`name`段。[CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)

 值得注意的是，星历表是通过动态更新的， AWS Ground Station 因此返回的数据只是调用 API 时使用的星历的快照。

## 使用默认星历的卫星示例返回 [GetSatellite](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_GetSatellite.html)
<a name="w2aac28c23c13"></a>

```
{
    "satelliteId": "e1cfe0c7-67f9-4d98-bad2-EXAMPLE",
    "satelliteArn": "arn:aws:groundstation::111122223333:satellite/e1cfe0c7-67f9-4d98-bad2-EXAMPLE",
    "noradSatelliteID": 25994,
    "groundStations": [
        "Ohio 1",
        "Oregon 1"
    ],
    "currentEphemeris": {
        "source": "SPACE_TRACK",
        "epoch": 1528245583.619
    }
}
```

## 使用自定义星历的卫星示例 [GetSatellite](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_GetSatellite.html)
<a name="w2aac28c23c15"></a>

```
{
      "satelliteId": "e1cfe0c7-67f9-4d98-bad2-EXAMPLE",
      "satelliteArn": "arn:aws:groundstation::111122223333:satellite/e1cfe0c7-67f9-4d98-bad2-EXAMPLE",
      "noradSatelliteID": 25994,
      "groundStations": [
            "Ohio 1",
            "Oregon 1"
      ],
      "currentEphemeris": {
          "source": "CUSTOMER_PROVIDED",
          "ephemerisId": "e1cfe0c7-67f9-4d98-bad2-EXAMPLE",
          "name": "My Ephemeris"
      }
  }
```

## 列出方位角仰角星历表
<a name="w2aac28c23c17"></a>

 由于方位角高程星历表与卫星无关，因此您需要使用不同的星历 APIs 来发现和检索有关它们的信息：

1. 用于列[ListEphemerides](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListEphemerides.html)出您账户中的所有星历，包括方位角高程星历。您可以按状态和星历类型进行筛选。

1. [DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html)与特定的星历表 ID 一起使用可获取有关方位角高程星历的详细信息。

1. [DescribeContact](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeContact.html)与特定的联系人 ID 配合使用，可获取有关用于联系人的星历的详细信息。

 包含方位角高程星历的[ListEphemerides](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListEphemerides.html)响应示例：

```
{
    "ephemerides": [
        {
            "ephemerisId": "abc12345-6789-def0-1234-5678EXAMPLE",
            "ephemerisType": "AZ_EL",
            "name": "Azimuth Elevation for Ohio Ground Station",
            "status": "ENABLED",
            "creationTime": 1620254718.765
        },
        {
            "ephemerisId": "def45678-9012-abc3-4567-8901EXAMPLE",
            "ephemerisType": "TLE",
            "name": "TLE for Satellite 12345",
            "status": "ENABLED",
            "creationTime": 1620254700.123
        }
    ]
}
```

**注意**  
 在[ListEphemerides](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListEphemerides.html)响应中，方位角高程星历表将使用`groundStation`场而不是字`satelliteId`段，因此易于识别。

# 恢复为默认星历数据
<a name="reverting-to-default-ephemeris-data"></a>

 当你上传自定义星历数据时，它将覆盖该特定卫星使用的默认星历表。 AWS Ground Station AWS Ground Station 在没有当前启用、未过期的客户提供的星历表可供使用之前，不会再次使用默认的星历表。 AWS Ground Station 也不会列出超过当前客户提供的星历到期时间的联系人，即使在该到期时间之后有默认的星历表可用。

**注意**  
 方位角高程星历表没有默认值，也不会覆盖卫星星历表。他们是在使用`trackingOverrides`参数预约联系人时明确选择的。如果您不想再使用方位角高程星历，只需在不指定跟踪覆盖的情况下保留联系人即可，系统将改用活跃的卫星星历表。

## 恢复 TLE 和 OEM 星历表
<a name="w2aac28c25b7"></a>

 要恢复到卫星的默认 [Spac](https://www.space-track.org/) e-Track 星历表，你需要执行以下操作之一：
+  删除（使用 [DeleteEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DeleteEphemeris.html)）或禁用（使用 [UpdateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_UpdateEphemeris.html)）所有客户提供的已启用星历。您可以使用 [ListEphemerides](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListEphemerides.html) 列出客户提供的卫星的星历。
+  等待客户提供的所有现有星历到期。

 您可以通过调用 [GetSatellite](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_GetSatellite.html) 并验证卫星当前星历的 `source` 是否为 `SPACE_TRACK` 来确认是否正在使用默认星历。有关默认[默认星历数据](default-ephemeris-data.md)星历表的更多信息，请参阅。

## 管理方位角高程星历表
<a name="w2aac28c25b9"></a>

 由于为每次接触都明确选择了方位角高程星历表，并且与卫星无关，因此没有 “恢复” 为默认值的概念。相反，您可以按如下方式管理方位角高程星历：
+  *要停止使用方位角高程星历：只需保留新的联系人即*可，无需指定和指定。`trackingOverrides` `satelliteArn`联系人将改为使用指定卫星的活动星历。
+  *要移除未使用的方位角高程星历表：用于删除不再[DeleteEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DeleteEphemeris.html)*需要的方位角高程星历。请注意，您无法删除已安排的联系人当前正在使用的星历。

 要列出您账户中的所有方位角高程星历，请使用。[ListEphemerides](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListEphemerides.html)方位角高程星历表可以通过`ephemerisType`场来识别，也可以通过响应中存在`groundStation`场而不是字段来识别。`satelliteId`