

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Geben Sie Azimut-Elevations-Ephemeridendaten an
<a name="providing-azimuth-elevation-ephemeris-data"></a>

**Wichtig**  
 Die Funktion „Azimut-Elevation-Ephemeride“ befindet sich derzeit im Vorschaustatus und erfordert eine explizite Einführung.   
 Die Azimut-Elevation-Ephemeridenfunktion unterliegt einer strengen Zugriffskontrolle für eine begrenzte Anzahl von vorab festgelegten, speziellen Anwendungsfällen. Der Zugriff ist deutlich restriktiver als bei standardmäßigen, vom Kunden bereitgestellten Ephemeridenfunktionen. Für weitere Informationen über zugelassene Anwendungsfälle und den Prozess der Zugriffsanforderung öffnen Sie bitte ein AWS Support Ticket über die. [AWS Support Center Console](https://console.aws.amazon.com/support) Unser Team führt Sie durch den Genehmigungsprozess für spezielle Anwendungsfälle. 

## -Übersicht
<a name="w2aac28c17c15b5"></a>

 Die Azimut-Elevations-Ephemeride bietet die Möglichkeit, die Richtung der Antennenausrichtung direkt zu spezifizieren, ohne Informationen über die Umlaufbahn des Satelliten bereitzustellen. Anstatt Ephemeridendaten hochzuladen, die die Umlaufbahn eines Satelliten beschreiben, geben Sie Azimut- und Elevationswinkel mit Zeitmarkierungen an, die der Antenne genau sagen, wohin sie während eines Kontakts zeigen soll. 

 AWS Ground Station [behandelt Ephemeriden als individualisierte Nutzungsdaten.](https://aws.amazon.com/service-terms) Wenn Sie diese optionale Funktion verwenden, verwendet AWS Ihre Ephemeridendaten, um Unterstützung bei der Fehlerbehebung bereitzustellen. 

 Dieser Ansatz ist besonders nützlich für die folgenden Szenarien: 
+ *Unterstützung in der Anfangsphase des Betriebs:* Während der Start- und Early-Orbit-Phase (LEOP), wenn keine genauen Orbitaldaten verfügbar sind oder sich die Bahnparameter schnell ändern.
+ *Benutzerdefinierte Zeigemuster:* Implementierung spezifischer Zeigesequenzen für Antennentests oder für nicht standardmäßige Operationen.

**Anmerkung**  
 Bei Verwendung der Azimut-Elevations-Ephemeride kann der Satelliten-ARN in der Kontaktreservierungsanfrage weggelassen werden. Wenn das Satelliten-ARN nicht weggelassen wird, wird es trotzdem als Teil der Kontaktdaten aufgenommen, aber die Azimuthöhen-Ephemeride wird für die Antennenausrichtung verwendet, anstatt die Ephemeriden-Prioritätsauflösung durchzuführen. Die Azimuthöhen-Ephemeride ist einer bestimmten Bodenstation zugeordnet und definiert die Richtungsrichtungen der Antenne für diesen Standort. 

## Datenformat der Azimut-Elevations-Ephemeride
<a name="w2aac28c17c15b7"></a>

 Ephemeridendaten zur Azimut-Höhe bestehen aus Azimut- und Höhenwerten mit Zeitangabe, die in Segmenten angeordnet sind. Jedes Segment enthält eine Reihe von Azimut- und Höhenwinkeln, die einen bestimmten Zeitraum abdecken. 

 Die wichtigsten Komponenten der Azimut-Elevations-Ephemeridendaten sind: 
+ *Ground Station:* Die spezifische Bodenstation, an der diese Azimuthöhen-Ephemeride verwendet wird.
+ *Winkeleinheit:* Die Maßeinheit für Winkel (oder). `DEGREE_ANGLE` `RADIAN`
+ *Segmente:* Eine oder mehrere zeitlich begrenzte Sammlungen von Azimut- und Elevationswinkeln.
+ *Winkel mit Zeitangabe:* Einzelne Azimut- und Höhenwerte mit zugehörigen Zeitstempeln.

 Für jedes Segment ist Folgendes erforderlich: 
+ Eine Referenzepoche (die Basiszeit für das Segment)
+ Ein gültiger Zeitraum (Start- und Endzeit für das Segment)
+ Mindestens 5 Paare mit Zeitangaben azimuth/elevation 

 Einschränkungen der Azimut-Elevation: 
+ Azimut in Grad: -180° bis 360°
+ Azimut im Bogenmaß: -π bis 2π
+ Höhe in Grad: -90° bis 90°
+ Höhe im Bogenmaß: -π /2 bis π /2
+ Die Zeitwerte müssen innerhalb jedes Segments in aufsteigender Reihenfolge angegeben werden
+ Segmente dürfen sich zeitlich nicht überlappen

 Weitere Informationen finden Sie in der [CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)API-Dokumentation und zum [TimeAzEl](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_TimeAzEl.html)Datentyp. 

## Eine Azimut-Elevations-Ephemeride erstellen
<a name="w2aac28c17c15b9"></a>

 Die Azimut-Elevation-Ephemeride wird mit derselben [CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)API-Aktion erstellt, jedoch mit dem Ephemeridentyp. `azEl` Die wichtigsten Unterschiede zu TLE- und OEM-Ephemeriden sind: 
+ Sie müssen einen Parameter angeben `groundStation`
+ Der `satelliteId` Parameter muss in der Anfrage weggelassen werden
+ Die Prioritätseinstellungen gelten nicht (jede Azimut-Elevations-Ephemeride ist spezifisch für eine Bodenstation)
+ Jedes Segment muss mindestens 5 azimuth/elevation Punkte enthalten, um die Lagrange-Interpolation 4. Ordnung zu unterstützen
+ Zusätzliche Beschränkungen und Anforderungen sind in der API-Dokumentation detailliert beschrieben [CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)

 Es ist wichtig zu beachten, dass durch das Hochladen einer Ephemeride die Ephemeride in einen asynchronen Workflow umgewandelt `VALIDATING` und gestartet wird, der potenzielle Kontakte anhand Ihrer Ephemeride validiert und generiert. Eine Ephemeride wird erst dann für Kontakte verwendet, wenn sie diesen Workflow bestanden hat und ihr Status lautet. `ENABLED` Sie sollten den Ephemeridenstatus [DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html)abfragen oder CloudWatch Ereignisse verwenden, um die Statusänderungen der Ephemeriden nachzuverfolgen. 

 Informationen zur Fehlerbehebung bei einer ungültigen Ephemeride finden Sie unter: [Fehlerbehebung bei ungültigen Ephemeriden](troubleshooting-invalid-ephemerides.md) 

## Beispiel: Eine Azimut-Elevations-Ephemeride per API erstellen
<a name="w2aac28c17c15c11"></a>

 Das folgende Beispiel zeigt, wie Sie mit dem AWS SDK for Python (Boto3) eine Azimut-Elevations-Ephemeride erstellen: 

```
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']}")
```

 In diesem Beispiel: 
+ Die Azimut-Höhendaten sind der Bodenstation „Ohio 1" zugeordnet
+ Winkel werden in Grad angegeben
+ Das Segment deckt einen Zeitraum von 15 Minuten ab
+ Die `dt` Werte sind Atomsekunden, die von der Referenzepoche abweichen
+ Es stehen sechs azimuth/elevation Paare zur Verfügung (mindestens 5)

## Beispiel: Laden Sie Azimut-Höhendaten von S3 hoch
<a name="w2aac28c17c15c13"></a>

 Für größere Datensätze können Sie Azimut-Höhendaten aus einem S3-Bucket hochladen: 

```
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']}")
```

 Das S3-Objekt sollte eine JSON-Struktur mit den Azimut-Höhendaten im gleichen Format enthalten, wie im direkten Upload-Beispiel gezeigt. 

## Kontakte mit Azimut-Elevations-Ephemeriden reservieren
<a name="w2aac28c17c15c15"></a>

 Bei der Verwendung einer Azimut-Elevations-Ephemeride zur Reservierung eines Kontakts unterscheidet sich das Verfahren von TLE- und OEM-Ephemeriden: 

1. Erstellen Sie die Azimut-Elevations-Ephemeride mit [CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)

1. Warten Sie, bis die Ephemeride den Status erreicht hat `ENABLED`

1. Reservieren Sie den Kontakt mithilfe von [ReserveContact](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ReserveContact.html)Tracking-Overrides

 Beispiel für die Reservierung eines Kontakts mit einer Azimut-Elevations-Ephemeride: 

```
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']}")
```

**Anmerkung**  
 Der `satelliteArn` Parameter kann weggelassen werden, wenn ein Kontakt mit einer Azimut-Elevations-Ephemeride reserviert wird. Die Antenne folgt während des Kontakts den angegebenen Azimut- und Elevationswinkeln. 

## Verfügbare Kontakte auflisten
<a name="w2aac28c17c15c17"></a>

 Bei der Verwendung von Azimut-Elevation-Ephemeriden benötigt die [ListContacts](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListContacts.html)API bestimmte Parameter: 
+ Der `satelliteArn` Parameter kann in der Anfrage weggelassen werden
+ Sie müssen einen `ephemeris` Parameter mit der Azimut-Elevation-Ephemeriden-ID angeben, um anzugeben, welche Ephemeride verwendet werden soll
+ [Verfügbare Kontaktfenster zeigen an, wann der angegebene Azimut- und Elevationswinkel über der Standortmaske der angeforderten Bodenstation liegt](https://docs.aws.amazon.com/ground-station/latest/ug/locations.site-masks.html)
+ Sie müssen immer noch angeben und `groundStation` `missionProfileArn`

 Beispiel für die Erstellung einer Azimut-Elevations-Ephemeride und die damit verbundene Auflistung verfügbarer Kontakte: 

```
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")
```

**Anmerkung**  
 Der `ephemeris` Parameter mit der Azimut-Elevation-ID muss beim Auflisten von Kontakten angegeben werden, um anzugeben, welche Azimut-Elevation-Ephemeride für die Bestimmung von Kontaktfenstern verwendet werden soll. Wenn das angegeben `satelliteArn` ist, wird es mit den Kontaktdaten verknüpft, aber die Azimut-Elevations-Ephemeride wird für die Antennenausrichtung verwendet, anstatt die Ephemeriden-Prioritätsauflösung durchzuführen. 