

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Fournir des données d'éphémérides personnalisées
<a name="providing-custom-ephemeris-data"></a>

**Important**  
 L'API ephemeris est actuellement en version préliminaire 

 L'accès à l'API Ephemeris n'est fourni qu'en cas de besoin. Si vous souhaitez pouvoir télécharger des données d'éphémérides personnalisées, veuillez ouvrir un AWS Support ticket via le. [AWS Support Center Console](https://console.aws.amazon.com/support) Notre équipe travaillera avec vous pour activer cette fonctionnalité en fonction de vos besoins spécifiques. 

## Présentation de
<a name="w2aac28c17b7"></a>

 L'API Ephemeris permet de télécharger des éphémérides personnalisées pour une utilisation avec un satellite AWS Ground Station . [Ces éphémérides remplacent les éphémérides par défaut de Space-Track (voir :).](https://www.space-track.org/) [Données d'éphémérides par défaut](default-ephemeris-data.md) Nous prenons en charge la réception de données éphémérides aux formats Orbit Ephemeris Message (OEM), élément à deux lignes (TLE) et élévation azimutale. 

 AWS Ground Station traite les éphémérides comme des données d'utilisation [individualisées](https://aws.amazon.com/service-terms). Si vous utilisez cette fonctionnalité facultative, AWS utilisera vos données d'éphéméride pour fournir une assistance en matière de dépannage. 

 Le téléchargement d'éphémérides personnalisées peut améliorer la qualité du suivi, gérer les opérations pour lesquelles aucune éphéméride [Space-Track](https://www.space-track.org/) n'est disponible et prendre en compte les manœuvres. AWS Ground Station

 Pour résoudre le problème d'une éphéméride non valide, consultez : [Résoudre les problèmes liés aux éphémérides non valides](troubleshooting-invalid-ephemerides.md) 

## Exemple : utilisation d'éphémérides fournies par le client avec AWS Ground Station
<a name="w2aac28c17b9"></a>

 [Pour des instructions plus détaillées sur l'utilisation des éphémérides fournies par le client avec AWS Ground Station, voir [Utilisation des éphémérides fournies par le client avec et son référentiel associé aws-samples/](https://aws.amazon.com/blogs/publicsector/using-customer-provided-ephemerides-with-aws-ground-station/). AWS Ground Station GitHub aws-groundstation-cpe](https://github.com/aws-samples/aws-groundstation-cpe) 

# Fournir des données d'éphémérides TLE
<a name="providing-tle-ephemeris-data"></a>

**Important**  
 L'API ephemeris est actuellement en version préliminaire 

 L'accès à l'API Ephemeris n'est fourni qu'en cas de besoin. Si vous souhaitez pouvoir télécharger des données d'éphémérides personnalisées, veuillez ouvrir un AWS Support ticket via le. [AWS Support Center Console](https://console.aws.amazon.com/support) Notre équipe travaillera avec vous pour activer cette fonctionnalité en fonction de vos besoins spécifiques. 

## Présentation de
<a name="w2aac28c17c11b7"></a>

 Les ensembles d'éléments à deux lignes (TLE) constituent un format normalisé pour décrire les orbites des satellites. L'API Ephemeris permet de télécharger des éphémérides TLE pour les utiliser avec un satellite AWS Ground Station . [Ces éphémérides remplacent les éphémérides par défaut de Space-Track (voir :).](https://www.space-track.org/) [Données d'éphémérides par défaut](default-ephemeris-data.md) 

 AWS Ground Station traite les éphémérides comme des données d'utilisation [individualisées](https://aws.amazon.com/service-terms). Si vous utilisez cette fonctionnalité facultative, AWS utilisera vos données d'éphéméride pour fournir une assistance en matière de dépannage. 

 Le téléchargement d'éphémérides TLE personnalisées peut améliorer la qualité du suivi, gérer les premières opérations lorsqu'aucune éphéméride [Space-Track](https://www.space-track.org/) n'est disponible et prendre en compte les manœuvres. AWS Ground Station

**Note**  
 Lorsque vous fournissez des éphémérides personnalisées avant qu'un numéro de catalogue satellite ne soit attribué à votre satellite, vous pouvez l'utiliser `00000` pour le champ du numéro de catalogue satellite du TLE et `000` pour la partie du numéro de lancement du champ de désignation international du TLE (par exemple `24000A` pour un véhicule lancé en 2024).   
 Pour plus d'informations sur le format de TLEs, voir [Ensemble d'éléments sur deux lignes](https://en.wikipedia.org/wiki/Two-line_element_set). 

## Création d'une éphéméride TLE
<a name="w2aac28c17c11b9"></a>

 Une éphéméride TLE peut être créée à l'aide de l'[CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)action de l' AWS Ground Station API. Cette action téléchargera une éphéméride en utilisant les données contenues dans le corps de la demande ou provenant d'un compartiment S3 spécifié. 

 Il est important de noter que le téléchargement d'une éphéméride définit l'éphéméride et lance un flux de travail asynchrone qui validera `VALIDATING` et générera des contacts potentiels à partir de votre éphéméride. Ce n'est qu'une fois qu'une éphéméride aura passé ce flux de travail et `ENABLED` sera devenue qu'elle sera utilisée pour les contacts. Vous devez effectuer un sondage [DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html)pour connaître le statut des éphémérides ou utiliser des CloudWatch événements pour suivre les changements de statut des éphémérides. 

 Pour résoudre le problème d'une éphéméride non valide, consultez : [Résoudre les problèmes liés aux éphémérides non valides](troubleshooting-invalid-ephemerides.md) 

## Exemple : créer un ensemble d'éphémérides d'un élément à deux lignes (TLE) via une API
<a name="w2aac28c17c11c11"></a>

 La AWS SDKs CLI et peut être utilisée pour télécharger un ensemble d'éphémérides d'un élément à deux lignes (TLE) AWS Ground Station via l'[CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)appel. Cette éphéméride sera utilisée à la place des données d'éphéméride par défaut pour un satellite (voir). [Données d'éphémérides par défaut](default-ephemeris-data.md) Cet exemple montre comment procéder à l'aide du [AWS SDK pour Python (Boto3](https://docs.aws.amazon.com/pythonsdk)). 

 Un ensemble TLE est un objet au format JSON qui enchaîne un ou plusieurs TLEs objets pour construire une trajectoire continue. L' TLEs ensemble TLE doit former un ensemble continu que nous pouvons utiliser pour construire une trajectoire (c'est-à-dire aucun intervalle de temps entre TLEs les deux ensembles TLE). Un exemple d'ensemble TLE est présenté ci-dessous : 

```
[
    {
        "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
        }
    }
]
```

**Note**  
 Les plages de temps TLEs d'un ensemble TLE doivent correspondre exactement pour obtenir une trajectoire continue valide. 

 Un ensemble TLE peut être téléchargé via le client AWS Ground Station boto3 comme suit : 

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

 Cet appel renverra un EphemerisID qui pourra être utilisé pour référencer l'éphéméride à l'avenir. Par exemple, nous pouvons utiliser l'EphemerisID fourni lors de l'appel ci-dessus pour demander le statut de l'éphéméride : 

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

 Un exemple de réponse à l'[DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html)action est fourni ci-dessous 

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

 Il est recommandé d'interroger l'[DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html)itinéraire ou d'utiliser CloudWatch des événements pour suivre l'état des éphémérides téléchargées, car elles doivent passer par un flux de travail de validation asynchrone avant d'être définies et de devenir utilisables pour la planification `ENABLED` et l'exécution de contacts. 

 Notez que l'identifiant NORAD dans l'ensemble TLE, TLEs dans les exemples ci-dessus, doit correspondre `25994` à l'identifiant NORAD attribué à votre satellite dans la base de données [Space-Track](https://www.space-track.org/). 

## Exemple : téléchargement de données d'éphémérides TLE depuis un compartiment S3
<a name="w2aac28c17c11c13"></a>

 Il est également possible de télécharger un fichier d'éphémérides TLE directement depuis un compartiment S3 en pointant sur le compartiment et la clé d'objet. AWS Ground Station récupérera l'objet en votre nom. Les informations sur le cryptage des données au repos AWS Ground Station sont détaillées dans :[Chiffrement des données au repos pour AWS Ground Station](security.encryption-at-rest.md). 

 Vous trouverez ci-dessous un exemple de téléchargement d'un fichier d'éphémérides TLE à partir d'un compartiment S3 

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

# Fournir des données d'éphémérides OEM
<a name="providing-oem-ephemeris-data"></a>

**Important**  
 L'API ephemeris est actuellement en version préliminaire 

 L'accès à l'API Ephemeris n'est fourni qu'en cas de besoin. Si vous souhaitez pouvoir télécharger des données d'éphémérides personnalisées, veuillez ouvrir un AWS Support ticket via le. [AWS Support Center Console](https://console.aws.amazon.com/support) Notre équipe travaillera avec vous pour activer cette fonctionnalité en fonction de vos besoins spécifiques. 

## Présentation de
<a name="w2aac28c17c13b7"></a>

 Le message OEM (Orbit Ephemeris Message) est un format normalisé pour représenter les données de trajectoire des engins spatiaux. L'API Ephemeris permet de télécharger des éphémérides OEM pour les utiliser avec un satellite AWS Ground Station . [Ces éphémérides remplacent les éphémérides par défaut de Space-Track (voir :).](https://www.space-track.org/) [Données d'éphémérides par défaut](default-ephemeris-data.md) 

 AWS Ground Station traite les éphémérides comme des données d'utilisation [individualisées](https://aws.amazon.com/service-terms). Si vous utilisez cette fonctionnalité facultative, AWS nous utiliserons les données de vos éphémérides pour fournir une assistance en matière de dépannage. 

 Le téléchargement d'éphémérides OEM personnalisées peut améliorer la qualité du suivi, gérer les premières opérations lorsqu'aucune éphéméride [Space-Track](https://www.space-track.org/) n'est disponible et prendre en compte les manœuvres. AWS Ground Station

**Note**  
 Lorsque vous fournissez des éphémérides personnalisées avant qu'un numéro de catalogue satellite ne soit attribué à votre satellite, vous pouvez l'utiliser `satelliteId` pour la `OBJECT_ID` partie de l'OEM.   
 Pour plus d'informations sur le format de OEMs, consultez[Format d'éphéméride OEM](#oem-ephemeris-format). 

## Format d'éphéméride OEM
<a name="oem-ephemeris-format"></a>

 AWS Ground Station traite les éphémérides fournies par le client OEM conformément à la [norme CCSDS](https://ccsds.org/Pubs/502x0b3e1.pdf) avec quelques restrictions supplémentaires. Les fichiers OEM doivent être au format KVN. Le tableau suivant décrit les différents champs d'un OEM et explique en quoi il AWS Ground Station diffère de la norme CCSDS. 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/ground-station/latest/ug/providing-oem-ephemeris-data.html)

 \$1 Si des lignes non prises en charge par AWS Ground Station sont incluses dans l'OEM fourni, celui-ci échouera à la validation. 

 Les écarts importants par rapport à la norme CCSDS sont les AWS Ground Station suivants : 
+ `CCSDS_OEM_VERS`est tenu de l'être`2.0`.
+ `REF_FRAME`doit être l'un `EME2000` ou l'autre` ITRF2000`.
+ `REF_FRAME_EPOCH`n'est pas pris en charge par AWS Ground Station.
+ `CENTER_NAME`est tenu de l'être`Earth`.
+ `TIME_SYSTEM`est tenu de l'être`UTC`.
+ `INTERPOLATION`et `INTERPOLATION_DEGREE` sont tous deux requis pour les AWS Ground Station éphémérides fournies par le client.

## Exemple d'éphéméride OEM au format KVN
<a name="w2aac28c17c13c11"></a>

 Voici un exemple tronqué d'éphéméride OEM au format KVN pour le satellite de diffusion public 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
```

## Création d'une éphéméride OEM
<a name="w2aac28c17c13c13"></a>

 Une éphéméride OEM peut être créée à l'aide de l'[CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)action de l' AWS Ground Station API. Cette action téléchargera une éphéméride en utilisant les données contenues dans le corps de la demande ou provenant d'un compartiment S3 spécifié. 

 Il est important de noter que le téléchargement d'une éphéméride définit l'éphéméride et lance un flux de travail asynchrone qui validera ` VALIDATING` et générera des contacts potentiels à partir de votre éphéméride. Ce n'est qu'une fois qu'une éphéméride aura passé ce flux de travail et `ENABLED` sera devenue qu'elle sera utilisée pour les contacts. Vous devez effectuer un sondage [DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html)pour connaître le statut des éphémérides ou utiliser des CloudWatch événements pour suivre les changements de statut des éphémérides. 

 Pour résoudre le problème d'une éphéméride non valide, consultez : [Résoudre les problèmes liés aux éphémérides non valides](troubleshooting-invalid-ephemerides.md) 

## Exemple : téléchargement de données d'éphémérides OEM depuis un compartiment S3
<a name="w2aac28c17c13c15"></a>

 Il est également possible de télécharger un fichier d'éphéméride OEM directement depuis un compartiment S3 en pointant sur le compartiment et la clé d'objet. AWS Ground Station récupérera l'objet en votre nom. Les informations sur le cryptage des données au repos AWS Ground Station sont détaillées dans :[Chiffrement des données au repos pour AWS Ground Station](security.encryption-at-rest.md). 

 Vous trouverez ci-dessous un exemple de téléchargement d'un fichier d'éphémérides OEM à partir d'un compartiment S3 

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

 Vous trouverez ci-dessous un exemple de données renvoyées par l'[DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html)action appelée pour les éphémérides OEM téléchargées dans le bloc d'exemple de code précédent. 

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

# Fournir des données sur les éphémérides d'altitude azimutale
<a name="providing-azimuth-elevation-ephemeris-data"></a>

**Important**  
 La fonction d'éphéméride d'altitude azimutale est actuellement en état d'aperçu et nécessite une intégration explicite.   
 La fonctionnalité des éphémérides d'élévation d'azimut est soumise à un contrôle d'accès strict pour un nombre limité de cas d'utilisation spécialisés prédéterminés. L'accès est nettement plus restrictif que pour les fonctionnalités d'éphémérides standard fournies par le client. Pour plus d'informations sur les cas d'utilisation approuvés et le processus de demande d'accès, veuillez ouvrir un AWS Support ticket via le [AWS Support Center Console](https://console.aws.amazon.com/support). Notre équipe vous guidera tout au long du processus d'approbation pour les cas d'utilisation spécialisés. 

## Présentation de
<a name="w2aac28c17c15b5"></a>

 Les éphémérides d'élévation d'azimut permettent de spécifier directement les directions de pointage des antennes sans fournir d'informations orbitales pour les satellites. Au lieu de télécharger des données éphémérides décrivant l'orbite d'un satellite, vous fournissez des angles d'azimut et d'élévation horodatés qui indiquent à l'antenne exactement où pointer tout au long d'un contact. 

 AWS Ground Station traite les éphémérides comme des données d'utilisation [individualisées](https://aws.amazon.com/service-terms). Si vous utilisez cette fonctionnalité facultative, AWS utilisera vos données d'éphéméride pour fournir une assistance en matière de dépannage. 

 Cette approche est particulièrement utile pour les scénarios suivants : 
+ *Assistance aux premières opérations :* pendant la phase de lancement et d'orbite précoce (LEOP) lorsque des données orbitales précises ne sont pas disponibles ou que les paramètres orbitaux changent rapidement.
+ *Modèles de pointage personnalisés :* mise en œuvre de séquences de pointage spécifiques pour les tests d'antennes ou les opérations non standard.

**Note**  
 Lorsque vous utilisez des éphémérides d'altitude azimutale, l'ARN du satellite peut être omis de la demande de réservation de contact. Si l'ARN du satellite n'est pas omis, il sera toujours inclus dans les données de contact, mais les éphémérides d'élévation d'azimut seront utilisées pour le pointage de l'antenne plutôt que pour effectuer une résolution prioritaire des éphémérides. L'éphéméride d'élévation azimutale est associée à une station au sol spécifique et définit les directions de pointage de l'antenne pour cet emplacement. 

## Format de données des éphémérides d'altitude azimutale
<a name="w2aac28c17c15b7"></a>

 Les données d'éphémérides d'altitude azimutale se composent de valeurs d'azimut et d'altitude étiquetées dans le temps et organisées en segments. Chaque segment contient une série d'angles d'azimut et d'élévation qui couvrent une plage de temps spécifique. 

 Les principaux éléments des données d'éphémérides d'altitude azimutale sont les suivants : 
+ *Station au sol : station* au sol spécifique où cette éphéméride d'altitude azimutale sera utilisée.
+ *Unité d'angle :* unité de mesure des angles (`DEGREE_ANGLE`ou`RADIAN`).
+ *Segments :* une ou plusieurs collections limitées dans le temps d'angles d'azimut et d'élévation.
+ *Angles horodatés :* valeurs d'azimut et d'altitude individuelles avec horodatage associé.

 Chaque segment nécessite : 
+ Une époque de référence (heure de base pour le segment)
+ Une plage horaire valide (heures de début et de fin du segment)
+ Au moins 5 paires horodatées azimuth/elevation 

 Contraintes d'élévation de l'azimut : 
+ Azimut en degrés : -180° à 360°
+ Azimut en radians : -π à 2π
+ Altitude en degrés : -90° à 90°
+ Altitude en radians : -π/2 à π/2
+ Les valeurs temporelles doivent être classées par ordre croissant dans chaque segment
+ Les segments ne doivent pas se chevaucher dans le temps

 Pour plus d'informations, consultez la documentation de l'[CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)API et le type de [TimeAzEl](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_TimeAzEl.html)données. 

## Création d'éphémérides d'élévation d'azimut
<a name="w2aac28c17c15b9"></a>

 Les éphémérides d'élévation azimutale sont créées à l'aide de la même action d'[CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)API, mais avec le type d'éphéméride. `azEl` Les principales différences par rapport aux éphémérides TLE et OEM sont les suivantes : 
+ Vous devez spécifier un `groundStation` paramètre
+ Le `satelliteId` paramètre doit être omis de la demande
+ Les paramètres de priorité ne s'appliquent pas (chaque éphéméride d'azimut est spécifique à une station au sol)
+ Chaque segment doit contenir au moins 5 azimuth/elevation points pour permettre une interpolation de Lagrange de 4e ordre
+ Les limites et exigences supplémentaires sont détaillées dans la documentation de [CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)l'API

 Il est important de noter que le téléchargement d'une éphéméride définit l'éphéméride et lance un flux de travail asynchrone qui validera `VALIDATING` et générera des contacts potentiels à partir de votre éphéméride. Une éphéméride ne sera utilisée pour les contacts qu'une fois qu'elle aura passé ce flux de travail et que son statut sera passé. `ENABLED` Vous devez effectuer un sondage [DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html)pour connaître le statut des éphémérides ou utiliser des CloudWatch événements pour suivre les changements de statut des éphémérides. 

 Pour résoudre le problème d'une éphéméride non valide, consultez : [Résoudre les problèmes liés aux éphémérides non valides](troubleshooting-invalid-ephemerides.md) 

## Exemple : créer des éphémérides d'altitude azimutale via l'API
<a name="w2aac28c17c15c11"></a>

 L'exemple suivant montre comment créer une éphéméride d'altitude azimutale à l'aide du AWS SDK pour Python (Boto3) : 

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

 Dans cet exemple : 
+ Les données d'altitude azimutale sont associées à la station au sol « Ohio 1 »
+ Les angles sont spécifiés en degrés
+ Le segment couvre une période de 15 minutes
+ Les `dt` valeurs sont décalées en secondes atomiques par rapport à l'époque de référence
+ Six azimuth/elevation paires sont fournies (le minimum est de 5)

## Exemple : télécharger des données d'altitude azimutale depuis S3
<a name="w2aac28c17c15c13"></a>

 Pour les ensembles de données plus volumineux, vous pouvez télécharger les données d'altitude azimutale à partir d'un compartiment S3 : 

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

 L'objet S3 doit contenir une structure JSON avec les données d'altitude azimutale dans le même format que celui indiqué dans l'exemple de téléchargement direct. 

## Réservation de contacts avec des éphémérides d'élévation d'azimut
<a name="w2aac28c17c15c15"></a>

 Lorsque vous utilisez une éphéméride d'élévation d'azimut pour réserver un contact, le processus est différent de celui des éphémérides TLE et OEM : 

1. Créez l'éphéméride d'élévation azimutale à l'aide de [CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)

1. Attendez que l'éphéméride atteigne le statut `ENABLED`

1. Réservez le contact en utilisant [ReserveContact](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ReserveContact.html)le suivi des dérogations

 Exemple de réservation d'un contact avec des éphémérides d'élévation d'azimut : 

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

**Note**  
 Le `satelliteArn` paramètre peut être omis lors de la réservation d'un contact avec des éphémérides d'élévation d'azimut. L'antenne suivra les angles d'azimut et d'élévation spécifiés pendant le contact. 

## Liste des contacts disponibles
<a name="w2aac28c17c15c17"></a>

 Lorsque vous utilisez des éphémérides d'élévation d'azimut, l'API nécessite des [ListContacts](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListContacts.html)paramètres spécifiques : 
+ Le `satelliteArn` paramètre peut être omis de la demande
+ Vous devez fournir un `ephemeris` paramètre avec l'ID d'éphéméride d'élévation d'azimut pour spécifier les éphémérides à utiliser.
+ Les fenêtres de contact disponibles indiquent lorsque les angles d'azimut et d'élévation fournis sont au-dessus du [masque de site de la station](https://docs.aws.amazon.com/ground-station/latest/ug/locations.site-masks.html) au sol demandée.
+ Vous devez toujours fournir `groundStation` et `missionProfileArn`

 Exemple de création d'une éphéméride d'altitude azimutale et de liste des contacts disponibles à l'aide de cette éphéméride : 

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

**Note**  
 Le `ephemeris` paramètre avec l'ID d'altitude d'azimut doit être fourni lors de la liste des contacts afin de spécifier les éphémérides d'élévation d'azimut à utiliser pour déterminer les fenêtres de contact. S'il `satelliteArn` est inclus, il sera associé aux données de contact, mais les éphémérides d'élévation azimutale seront utilisées pour le pointage de l'antenne plutôt que pour effectuer une résolution prioritaire des éphémérides. 