翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
TLE エフェメリスデータを提供する
重要
エフェメリス API は現在プレビュー状態です。
エフェメリス API へのアクセスは、必要な場合にのみ提供されます。カスタムエフェメリスデータをアップロードする必要がある場合は、<aws-groundstation@amazon.com> にお問い合わせください。
概要:
2 行要素 (TLE) セットは、衛星軌道を記述するための標準化された形式です。Ephemeris API では、衛星で使用できる AWS Ground Station ように TLE エフェメリスを にアップロードできます。これらのエフェメリスは、Space-Track
AWS Ground Station はエフェメリスを個別の使用状況データ
カスタム TLE エフェメリスをアップロードすると、追跡の品質が向上し、Space-Track
注記
衛星に衛星カタログ番号が割り当てられる前にカスタムエフェメリスを提供する場合、TLE の00000衛星カタログ番号フィールドと TLE の国際指定子フィールドの000起動番号部分 (2024 年に起動された車両など) 24000Aに を使用できます。
TLEs」を参照してください。 https://en.wikipedia.org/wiki/Two-line_element_set
TLE エフェメリスの作成
TLE エフェメリスは、 API の CreateEphemeris アクション AWS Ground Station を使用して作成できます。このアクションによって、リクエスト本文または指定された S3 バケットのデータを使用してエフェメリスがアップロードされます。
エフェメリスがアップロードされると、エフェメリスが VALIDATING に設定されて非同期ワークフローが開始されることに注意してください。このワークフローでは、エフェメリスを検証し、そのエフェメリスを基に潜在的なコンタクトを生成します。エフェメリスは、このワークフローを実施して ENABLED になって初めて、コンタクトに使用されます。DescribeEphemeris をポーリングしてエフェメリスステータスを確認するか、CloudWatch イベントを使用してエフェメリスのステータスの変化を追跡する必要があります。
無効なエフェメリスのトラブルシューティングについては、以下を参照してください。 無効なエフェメリスのトラブルシューティング
例: API を使用して 2 行要素 (TLE) セットエフェメリスを作成する
AWS SDKs と CLI を使用して、CreateEphemeris 呼び出し AWS Ground Station を介して 2 行要素 (TLE) セットのエフェメリスを にアップロードできます。このエフェメリスは、衛星のデフォルトのエフェメリスデータの代わりに使用されます (「」を参照デフォルトのエフェメリスデータ)。この例では、AWS SDK for Python (Boto3) を使用してこれを行う方法を示します。
TLE セットは JSON 形式のオブジェクトで、1 つ以上の TLE をつなぎ合わせて連続した軌道を構築します。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 セットは、次のように boto3 AWS Ground Station クライアントを介してアップロードできます。
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 アクションからのレスポンスの例を以下に示します。
{ "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され、問い合わせのスケジュールと実行に使用できるようになる前に非同期検証ワークフローを通過する必要があるためです。
上記の例では、TLEs セット内のすべての TLE の NORAD ID 25994 は、衛星が Space-Track
例: S3 バケットから TLE エフェメリスデータをアップロードする
バケットとオブジェクトキーを指すことで、S3 バケットから直接 TLE エフェメリスファイルをアップロードすることもできます。 AWS Ground Station はユーザーに代わってオブジェクトを取得します。で保管中のデータの暗号化の詳細については AWS Ground Station 、「」を参照してくださいの保管時のデータ暗号化 AWS Ground Station。
以下は、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']}")