提供自訂星曆資料 - AWS Ground Station

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

提供自訂星曆資料

警告

星曆 API 目前處於「預覽」狀態

星曆 API 的訪問僅在需要的基礎上提供。需要上傳自訂星曆資料的客戶應連絡 aws-groundstation@amazon.com。

概觀

星曆 API 允許上傳自訂星曆,以便與衛星搭配使用 AWS Ground Station 。這些短暫會覆寫來自「空間軌道」的預設短暫值 (請參閱:預設星曆資料)。

上傳客戶短暫消息可以提高跟踪質量,在沒有 Space Track 臨時性能的情況下處理早期操作 AWS Ground Station,並考慮操作。

創建一個自定義星曆

您可以使用 API 中的CreateEphemeris動作建立自訂星曆。 AWS Ground Station 此動作將使用請求主體中的資料或指定 S3 儲存貯體中的資料上傳星曆。

重要的是要注意,上傳星曆將星曆設置為並啟動異步工作流程,該工作流程將驗證VALIDATING並從星曆生成潛在的聯繫人。只有一旦星曆已通過此工作流程並成為ENABLED將其用於聯繫人。您應輪DescribeEphemeris詢星曆狀態,或使用 Cloudwatch 事件追蹤臨時狀態變更。

若要疑難排解無效星曆表,請參閱:疑難排解無效星曆表

通過 API 創建一個 TLE 設置星曆

AWS Ground Station boto3 客戶端可用於通過呼叫上傳兩行元素(TLE)設置星曆。 AWS Ground Station CreateEphemeris此星曆將用於取代衛星的預設星曆資料(請參閱預設星曆數據)。

TLE 集是一個 JSON 格式化的對象,將一個或多個 TLE 串在一起以構建一個連續的軌跡。TLE 集合中的 TLE 必須形成一個連續集合,我們可以用它來構造一個軌跡(即 TLE 集合中 TLE 之間的時間沒有間隙)。一個例子 TLE 集如下所示:

# example_tle_set.json [ { "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 客戶端上傳,如下所示:

tle_ephemeris_id = ground_station_boto3_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) } } ] } })

這個調用將返回一個星曆 Id,可用於在 future 引用星曆。例如,我們可以使用上面調用中提供的星曆表 ID 來輪詢星曆的狀態:

client.describe_ephemeris(ephemerisId=tle_ephemeris_id['ephemerisId'])

來自DescribeEphemeris動作的範例回應如下

{ "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路由或使用 Cloudwatch 事件來追蹤已上傳星曆的狀態,因為它必須經過非同步驗證工作流程,才能將其設定為並可用於排程ENABLED和執行聯絡人。

請注意,在上述範例中,TLE 集合中所有 TLE 中的 NORAD ID 必須與衛星伺服器25994在 Space Track 資料庫中指派的 NORAD ID 相符。

從 S3 儲存貯體上傳星曆資料

您也可以透過指向儲存貯體和物件金鑰,直接從 S3 儲存貯體上傳星曆檔案。 AWS Ground Station 將代表您擷取物件。有關靜態資料加密的詳細資訊 AWS Ground Station ,請參閱:AWS Ground Station 的靜態資料加密

以下是從 S3 儲存貯體上傳 OEM 星曆檔案的範例

s3_oem_ephemeris_id = customer_client.create_ephemeris( name="2022-10-26 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": "ephemeris-bucket-for-testing", "key": "test_data.oem", } } })

以下是針對上一個範例程式碼區塊中上傳之 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" } } }