

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

# 提供 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"
      }
    }
  }
}
```