View a markdown version of this page

提供 OEM 星历数据 - AWS Ground Station

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

提供 OEM 星历数据

重要

星历 API 当前处于预览状态

星历 API 的访问权限仅在需要时提供。如果您需要能够上传自定义星历数据,请通过以下方式开 AWS 支持 票。AWS Support Center Console我们的团队将与您合作,为您的特定要求启用此功能。

概述

轨道星历信息 (OEM) 是一种用于表示航天器轨迹数据的标准化格式。星历表 API 允许将 OEM 星历表上传到 AWS Ground Station 以用于卫星。这些星历表会覆盖来自(参见:)的默认星历。 Space-Track 默认星历数据

AWS Ground Station 将星历视为个性化使用数据。如果您使用此可选功能, AWS 将使用您的星历数据来提供故障排除支持。

上传自定义 OEM 星历表可以提高跟踪质量,在没有星历Space-Track表的情况下处理早期操作,并 AWS Ground Station考虑操作情况。

注意

在为卫星分配卫星目录号之前提供自定义星历表时,您可以使用 OEM satelliteId 的OBJECT_ID部分。

有关 OEM 格式的更多信息,请参阅OEM 星历格式。

OEM 星历格式

AWS Ground Station 根据 CCSDS 标准处理 OEM 客户提供的星历,但有一些额外的限制。OEM 文件应采用 KVN 格式。下表概述了 OEM 中的不同字段以及 AWS Ground Station 与 CCSDS 标准的区别。

Section 字段 需要 CCSDS AWS Ground Station 必填的 注意
标题 CCSDS_OEM_VERS 支持 是 所需值:2.0
COMMENT 否 否
分类 否 否
创建日期 支持 是
创始人 支持 是
MESSAGE_ID 否 否
元数据 META_START 支持 是
COMMENT 否 否
对象名称 支持 是
OBJECT_ID 支持 是
中心名称 支持 是 所需值:地球
REF_FRAME 支持 是 可接受的值:EME2000、ITRF2000
REF_FRAME_EPOCH 否 不支持* 不需要,因为接受的 ref_Frames 具有隐式纪元
时间系统 支持 是 必填值:UTC
START_TIME 支持 是
可用开始时间 否 否
可用停止时间 否 否
STOP_TIME 支持 是
插值 否 是 必需,这样 AWS Ground Station 才能为触点生成准确的指向角度。
插值_度 否 是 必需,这样 AWS Ground Station 才能为触点生成准确的指向角度。如果可能,将使用指定的度数,但如果分段中没有足够的数据,则将使用较低的度数。
META_STOP 支持 是
数据 X 支持 是 代表于 km
Y 支持 是 代表于 km
Z 支持 是 代表于 km
X_DOT 支持 是 代表于 km/s
Y_DOT 支持 是 代表于 km/s
Z_DOT 支持 是 代表于 km/s
X_DDOT 否 否 代表于 km/s^2
Y_DDOT 否 否 代表于 km/s^2
Z_DDOT 否 否 代表于 km/s^2
协方差矩阵 协方差_开始 否 否
EPOCH 否 否
COV_REF_FRAME 否 否
协方差_停止 否 否

* 如果提供的 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 客户提供的星历表所必需的。

  • AWS Ground Station 与 CCSDS 5.2.4.7 不同,它允许不包含足够星历数据记录的 OEM 数据块在指定位置进行插值。INTERPOLATION_DEGREE在这种情况下, AWS Ground Station 将尽可能使用小于或等于指定值的最大插值度。INTERPOLATION_DEGREE

KVN 格式的 OEM 星历表示例

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

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 星历表

可以使用 API 中的CreateEphemeris操作创建 OEM 星历。 AWS Ground Station 此操作将使用请求正文或指定 S3 存储桶中的数据上传星历。

请务必注意,上传星历会将星历设置为 VALIDATING 并启动异步工作流程,该工作流程将验证您的星历并生成可能联络。只有当星历通过此工作流程并成为 ENABLED 后,才会将其用于联络。你应该轮DescribeEphemeris询星历状态或使用 CloudWatch 事件来跟踪星历的状态变化。

要对无效的星历表进行故障排除,请参阅:对无效的星历进行故障排除

示例:从 S3 存储桶上传 OEM 星历数据

也可以通过指向存储桶和对象密钥直接从 S3 存储桶上传 OEM 星历文件。 AWS Ground Station 将代表你检索对象。有关静态数据加密的信息详 AWS Ground Station 见:静态数据加密 AWS Ground Station。

以下是从 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 操作返回的数据示例。

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