

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Fornisci dati sulle effemeridi personalizzati
<a name="providing-custom-ephemeris-data"></a>

**Importante**  
 L'API ephemeris è attualmente in uno stato di anteprima 

 L'accesso all'API Ephemeris viene fornito solo in base alle necessità. Se hai bisogno della possibilità di caricare dati sulle effemeridi personalizzati, apri un ticket tramite. Supporto AWS [AWS Support Center Console](https://console.aws.amazon.com/support) Il nostro team collaborerà con voi per abilitare questa funzionalità in base alle vostre esigenze specifiche. 

## Panoramica di
<a name="w2aac28c17b7"></a>

 L'API Ephemeris consente di caricare effemeridi personalizzate da utilizzare con un satellite. AWS Ground Station [Queste effemeridi sostituiscono le effemeridi predefinite di Space-Track (vedi:).](https://www.space-track.org/) [Dati predefiniti sulle effemeridi](default-ephemeris-data.md) Supportiamo la ricezione di dati sulle effemeridi nei formati Orbit Ephemeris Message (OEM), Two Line Element (TLE) e elevazione azimutale. 

 AWS Ground Station [tratta le effemeridi come dati](https://aws.amazon.com/service-terms) di utilizzo personalizzati. Se utilizzi questa funzionalità opzionale, AWS utilizzerà i tuoi dati sulle effemeridi per fornire supporto per la risoluzione dei problemi. 

 Il caricamento di effemeridi personalizzate può migliorare la qualità del tracciamento, gestire operazioni in cui non sono disponibili effemeridi [Space-Track](https://www.space-track.org/) e tenere conto delle manovre. AWS Ground Station

 Per risolvere un problema con un'effemeride non valida, consulta: [Risoluzione dei problemi relativi alle effemeridi non valide](troubleshooting-invalid-ephemerides.md) 

## Esempio: utilizzo di effemeridi fornite dal cliente con AWS Ground Station
<a name="w2aac28c17b9"></a>

 [https://aws.amazon.com/blogs/publicsector/using-customer-provided-ephemerides-with-aws-ground-station/](https://aws.amazon.com/blogs/publicsector/using-customer-provided-ephemerides-with-aws-ground-station/) 

# Fornisci dati sulle effemeridi TLE
<a name="providing-tle-ephemeris-data"></a>

**Importante**  
 L'API delle effemeridi è attualmente in uno stato di anteprima 

 L'accesso all'API Ephemeris viene fornito solo in base alle necessità. Se hai bisogno della possibilità di caricare dati sulle effemeridi personalizzati, apri un ticket tramite. Supporto AWS [AWS Support Center Console](https://console.aws.amazon.com/support) Il nostro team collaborerà con voi per abilitare questa funzionalità in base alle vostre esigenze specifiche. 

## Panoramica di
<a name="w2aac28c17c11b7"></a>

 I set di elementi a due linee (TLE) sono un formato standardizzato per descrivere le orbite dei satelliti. L'API Ephemeris consente di caricare effemeridi TLE per utilizzarle con un satellite. AWS Ground Station [Queste effemeridi sostituiscono le effemeridi predefinite di Space-Track (vedi:).](https://www.space-track.org/) [Dati predefiniti sulle effemeridi](default-ephemeris-data.md) 

 AWS Ground Station tratta le [effemeridi come dati](https://aws.amazon.com/service-terms) di utilizzo personalizzati. Se utilizzi questa funzionalità opzionale, AWS utilizzerà i tuoi dati sulle effemeridi per fornire supporto per la risoluzione dei problemi. 

 Il caricamento di effemeridi TLE personalizzate può migliorare la qualità del tracciamento, gestire le operazioni iniziali laddove non sono disponibili effemeridi [Space-Track](https://www.space-track.org/) e tenere conto delle manovre. AWS Ground Station

**Nota**  
 Quando si forniscono effemeridi personalizzate prima che venga assegnato un numero di catalogo satellitare al satellite, è possibile utilizzarlo `00000` per il campo del numero di catalogo satellitare del TLE e `000` per la parte relativa al numero di lancio del campo di designazione internazionale del TLE (ad esempio `24000A` per un veicolo lanciato nel 2024).   
 [Per ulteriori informazioni sul formato di, vedere Set di TLEs elementi a due righe.](https://en.wikipedia.org/wiki/Two-line_element_set) 

## Creazione di effemeridi TLE
<a name="w2aac28c17c11b9"></a>

 È possibile creare un'effemeride TLE utilizzando l'azione nell'API. [CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html) AWS Ground Station Questa azione caricherà un'effemeride utilizzando i dati nel corpo della richiesta o da un bucket S3 specificato. 

 È importante notare che il caricamento di un'effemeride imposta le effemeridi e avvia un flusso di lavoro asincrono che convaliderà `VALIDATING` e genererà potenziali contatti a partire dalle effemeridi. Solo dopo che un'effemeride avrà superato questo flusso di lavoro e sarà diventata tale, verrà utilizzata per i contatti. `ENABLED` È necessario eseguire un sondaggio [DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html)per verificare lo stato delle effemeridi o utilizzare CloudWatch gli eventi per tenere traccia delle modifiche allo stato delle effemeridi. 

 Per risolvere un problema di effemeridi non valido, consulta: [Risoluzione dei problemi relativi alle effemeridi non valide](troubleshooting-invalid-ephemerides.md) 

## Esempio: crea un set di effemeridi a due righe (TLE) tramite API
<a name="w2aac28c17c11c11"></a>

 È possibile utilizzare la AWS SDKs CLI e per caricare un set di effemeridi a due elementi di riga (TLE) tramite la chiamata. AWS Ground Station [CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html) Queste effemeridi verranno utilizzate al posto dei dati sulle effemeridi predefiniti per un satellite (vedi). [Dati predefiniti sulle effemeridi](default-ephemeris-data.md) Questo esempio mostra come eseguire questa operazione utilizzando l'[AWS SDK for Python (](https://docs.aws.amazon.com/pythonsdk)Boto3). 

 Un set TLE è un oggetto in formato JSON che mette insieme uno o più TLEs oggetti per costruire una traiettoria continua. Il TLEs set TLE deve formare un insieme continuo che possiamo usare per costruire una traiettoria (cioè nessun intervallo di tempo tra un set TLE e l'altro). TLEs Di seguito è riportato un esempio di set 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
        }
    }
]
```

**Nota**  
 Gli intervalli di tempo di un set TLE devono corrispondere esattamente per essere una traiettoria valida e continua. TLEs 

 Un set TLE può essere caricato tramite il client AWS Ground Station boto3 nel modo seguente: 

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

 Questa chiamata restituirà un ephemerisID che può essere utilizzato per fare riferimento alle effemeridi in futuro. Ad esempio, possiamo utilizzare l'ephemerisID fornito dalla chiamata precedente per verificare lo stato delle effemeridi: 

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

 Di seguito viene fornito un esempio di risposta derivante dall'azione [DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html) 

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

 Si consiglia di eseguire il polling del [DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html)percorso o utilizzare CloudWatch gli eventi per tenere traccia dello stato delle effemeridi caricate, poiché deve passare attraverso un flusso di lavoro di convalida asincrono prima che venga impostato e diventi utilizzabile per la pianificazione `ENABLED` e l'esecuzione dei contatti. 

 [Notate che l'ID NORAD in tutto il set TLE, TLEs negli esempi precedenti, deve corrispondere all'ID NORAD assegnato al vostro satellite `25994` nel database Space-Track.](https://www.space-track.org/) 

## Esempio: caricamento di dati sulle effemeridi TLE da un bucket S3
<a name="w2aac28c17c11c13"></a>

 È anche possibile caricare un file di effemeridi TLE direttamente da un bucket S3 puntando al bucket e alla chiave dell'oggetto. AWS Ground Station recupererà l'oggetto per tuo conto. Le informazioni sulla crittografia dei dati archiviati AWS Ground Station sono dettagliate in:[Crittografia dei dati a riposo per AWS Ground Station](security.encryption-at-rest.md). 

 Di seguito è riportato un esempio di caricamento di un file di effemeridi TLE da un bucket 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']}")
```

# Fornisci dati sulle effemeridi OEM
<a name="providing-oem-ephemeris-data"></a>

**Importante**  
 L'API ephemeris è attualmente in uno stato di anteprima 

 L'accesso all'API Ephemeris viene fornito solo in base alle necessità. Se hai bisogno della possibilità di caricare dati sulle effemeridi personalizzati, apri un ticket tramite. Supporto AWS [AWS Support Center Console](https://console.aws.amazon.com/support) Il nostro team collaborerà con voi per abilitare questa funzionalità in base alle vostre esigenze specifiche. 

## Panoramica di
<a name="w2aac28c17c13b7"></a>

 Orbit Ephemeris Message (OEM) è un formato standardizzato per la rappresentazione dei dati di traiettoria dei veicoli spaziali. L'API Ephemeris consente di caricare effemeridi OEM per utilizzarle con un satellite. AWS Ground Station [Queste effemeridi sostituiscono le effemeridi predefinite di Space-Track (vedi:).](https://www.space-track.org/) [Dati predefiniti sulle effemeridi](default-ephemeris-data.md) 

 AWS Ground Station tratta le [effemeridi come dati](https://aws.amazon.com/service-terms) di utilizzo personalizzati. Se utilizzi questa funzionalità opzionale, AWS utilizzerà i tuoi dati sulle effemeridi per fornire supporto per la risoluzione dei problemi. 

 Il caricamento di effemeridi OEM personalizzate può migliorare la qualità del tracciamento, gestire le operazioni iniziali laddove non sono disponibili effemeridi [Space-Track](https://www.space-track.org/) e tenere conto delle manovre. AWS Ground Station

**Nota**  
 Quando si forniscono effemeridi personalizzate prima che venga assegnato un numero di catalogo satellitare al satellite, è possibile utilizzarle per la parte dell'OEM. `satelliteId` `OBJECT_ID`   
 Per ulteriori informazioni sul formato di, vedere. OEMs [Formato delle effemeridi OEM](#oem-ephemeris-format) 

## Formato delle effemeridi OEM
<a name="oem-ephemeris-format"></a>

 AWS Ground Station [elabora le effemeridi fornite dal cliente OEM secondo lo standard CCSDS con alcune restrizioni aggiuntive.](https://ccsds.org/Pubs/502x0b3e1.pdf) I file OEM devono essere in formato KVN. La tabella seguente illustra i diversi campi di un OEM e le AWS Ground Station differenze rispetto allo standard CCSDS. 

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

 \$1 Se nell'OEM fornito AWS Ground Station sono incluse righe non supportate da, l'OEM non procederà alla convalida. 

 Le deviazioni importanti dallo standard CCSDS per sono: AWS Ground Station 
+ `CCSDS_OEM_VERS`deve esserlo. `2.0`
+ `REF_FRAME`deve essere uno dei due `EME2000`` ITRF2000`.
+ `REF_FRAME_EPOCH`non è supportato da AWS Ground Station.
+ `CENTER_NAME`deve esserlo`Earth`.
+ `TIME_SYSTEM`deve esserlo`UTC`.
+ `INTERPOLATION`e `INTERPOLATION_DEGREE` sono entrambi obbligatori per le effemeridi fornite dal AWS Ground Station cliente.

## Esempio di effemeridi OEM in formato KVN
<a name="w2aac28c17c13c11"></a>

 Di seguito è riportato un esempio troncato di effemeridi OEM in formato KVN per l'emittente satellitare pubblica 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
```

## Creazione di un'effemeride OEM
<a name="w2aac28c17c13c13"></a>

 È possibile creare un'effemeride OEM utilizzando l'azione nell'API. [CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html) AWS Ground Station Questa azione caricherà un'effemeride utilizzando i dati nel corpo della richiesta o da un bucket S3 specificato. 

 È importante notare che il caricamento di un'effemeride imposta le effemeridi e avvia un flusso di lavoro asincrono che convaliderà ` VALIDATING` e genererà potenziali contatti a partire dalle effemeridi. Solo dopo che un'effemeride avrà superato questo flusso di lavoro e sarà diventata tale, verrà utilizzata per i contatti. `ENABLED` È necessario eseguire un sondaggio [DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html)per verificare lo stato delle effemeridi o utilizzare CloudWatch gli eventi per tenere traccia delle modifiche allo stato delle effemeridi. 

 Per risolvere un problema di effemeridi non valido, consulta: [Risoluzione dei problemi relativi alle effemeridi non valide](troubleshooting-invalid-ephemerides.md) 

## Esempio: caricamento di dati sulle effemeridi OEM da un bucket S3
<a name="w2aac28c17c13c15"></a>

 È anche possibile caricare un file di effemeridi OEM direttamente da un bucket S3 puntando al bucket e alla chiave dell'oggetto. AWS Ground Station recupererà l'oggetto per tuo conto. Le informazioni sulla crittografia dei dati archiviati AWS Ground Station sono dettagliate in:[Crittografia dei dati a riposo per AWS Ground Station](security.encryption-at-rest.md). 

 Di seguito è riportato un esempio di caricamento di un file di effemeridi OEM da un bucket 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']}")
```

 Di seguito è riportato un esempio di dati restituiti dall'[DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html)azione richiesta per le effemeridi OEM caricate nel precedente blocco di codice di esempio. 

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

# Fornisci dati sulle effemeridi di elevazione dell'azimut
<a name="providing-azimuth-elevation-ephemeris-data"></a>

**Importante**  
 La funzionalità delle effemeridi di elevazione azimutale è attualmente in uno stato di anteprima e richiede un onboarding esplicito.   
 La funzionalità delle effemeridi di elevazione di Azimuth è sottoposta a un rigoroso controllo degli accessi per un numero limitato di casi d'uso predeterminati e specializzati. L'accesso è notevolmente più restrittivo rispetto alle funzionalità di effemeridi standard fornite dal cliente. Per ulteriori informazioni sui casi d'uso approvati e sulla procedura di richiesta di accesso, apri un ticket tramite il. Supporto AWS [AWS Support Center Console](https://console.aws.amazon.com/support) Il nostro team ti guiderà attraverso il processo di approvazione per casi d'uso specializzati. 

## Panoramica di
<a name="w2aac28c17c15b5"></a>

 Le effemeridi di elevazione azimutale forniscono un modo per specificare direttamente le direzioni di puntamento dell'antenna senza fornire informazioni orbitali satellitari. Invece di caricare dati sulle effemeridi che descrivono l'orbita di un satellite, è possibile fornire angoli di azimut e di elevazione con marcatura temporale che indicano all'antenna esattamente dove puntare durante il contatto. 

 AWS Ground Station [tratta le effemeridi come dati](https://aws.amazon.com/service-terms) di utilizzo personalizzati. Se utilizzi questa funzionalità opzionale, AWS utilizzerà i tuoi dati sulle effemeridi per fornire supporto per la risoluzione dei problemi. 

 Questo approccio è particolarmente utile per i seguenti scenari: 
+ *Supporto operativo precoce:* durante la fase di lancio e la fase iniziale di orbita (LEOP) quando non sono disponibili dati orbitali precisi o i parametri orbitali cambiano rapidamente.
+ *Schemi di puntamento personalizzati:* implementazione di sequenze di puntamento specifiche per testare le antenne o operazioni non standard.

**Nota**  
 Quando si utilizzano effemeridi di elevazione azimutale, l'ARN satellitare può essere omesso dalla richiesta di prenotazione del contatto. Se l'ARN satellitare non viene omesso, verrà comunque incluso come parte dei dati di contatto, ma le effemeridi di elevazione azimutale verranno utilizzate per il puntamento dell'antenna anziché per eseguire la risoluzione prioritaria delle effemeridi. Le effemeridi di elevazione azimutale sono associate a una stazione terrestre specifica e definiscono le direzioni di puntamento dell'antenna per quella posizione. 

## Formato dei dati sulle effemeridi di elevazione azimutale
<a name="w2aac28c17c15b7"></a>

 I dati sulle effemeridi di elevazione azimutale sono costituiti da valori di azimut ed elevazione con marcatura temporale organizzati in segmenti. Ogni segmento contiene una serie di angoli di azimut e di elevazione che coprono un intervallo di tempo specifico. 

 I componenti chiave dei dati sulle effemeridi di elevazione dell'azimut sono: 
+ *Ground Station:* La stazione terrestre specifica in cui verranno utilizzate queste effemeridi di elevazione azimutale.
+ *Unità angolare: L'unità* di misura degli angoli (o). `DEGREE_ANGLE` `RADIAN`
+ *Segmenti:* una o più raccolte di angoli di azimut e di elevazione limitate nel tempo.
+ *Angoli con marcatura temporale: valori* individuali di azimut ed elevazione con timestamp associati.

 Ogni segmento richiede: 
+ Un'epoca di riferimento (l'ora base del segmento)
+ Un intervallo di tempo valido (ora di inizio e fine del segmento)
+ Almeno 5 coppie con data e ora azimuth/elevation 

 Vincoli di elevazione azimutale: 
+ Azimut in gradi: da -180° a 360°
+ Azimut in radianti: da -π a 2π
+ Elevazione in gradi: da -90° a 90°
+ Elevazione in radianti: da -π /2 a π /2
+ I valori temporali devono essere in ordine crescente all'interno di ogni segmento
+ I segmenti non devono sovrapporsi nel tempo

 Per ulteriori informazioni, consulta la documentazione dell'[CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)API e il tipo di [TimeAzEl](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_TimeAzEl.html)dati. 

## Creazione di effemeridi di elevazione azimutale
<a name="w2aac28c17c15b9"></a>

 Le effemeridi di elevazione azimutale vengono create utilizzando la stessa azione API, ma con il tipo di effemeridi. [CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)`azEl` Le differenze principali rispetto alle effemeridi TLE e OEM sono: 
+ È necessario specificare un parametro `groundStation`
+ Il `satelliteId` parametro deve essere omesso dalla richiesta
+ Le impostazioni di priorità non si applicano (ogni effemeride di elevazione azimutale è specifica di una stazione terrestre)
+ Ogni segmento deve contenere almeno 5 azimuth/elevation punti per supportare l'interpolazione di Lagrange di 4° ordine
+ I limiti e i requisiti aggiuntivi sono descritti in dettaglio nella documentazione dell'API [CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)

 È importante notare che il caricamento di un'effemeride imposta le effemeridi `VALIDATING` e avvia un flusso di lavoro asincrono che convaliderà e genererà potenziali contatti a partire dalle effemeridi. Un'effemeride verrà utilizzata per i contatti solo dopo che avrà superato questo flusso di lavoro e il suo stato sarà diventato. `ENABLED` È necessario eseguire un sondaggio [DescribeEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_DescribeEphemeris.html)per verificare lo stato delle effemeridi o utilizzare CloudWatch gli eventi per tenere traccia delle modifiche allo stato delle effemeridi. 

 Per risolvere un problema di effemeridi non valido, consulta: [Risoluzione dei problemi relativi alle effemeridi non valide](troubleshooting-invalid-ephemerides.md) 

## Esempio: creazione di effemeridi di elevazione dell'azimut tramite API
<a name="w2aac28c17c15c11"></a>

 L'esempio seguente mostra come creare effemeridi di elevazione azimutale utilizzando l' AWS SDK for 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']}")
```

 In questo esempio: 
+ I dati di elevazione azimutale sono associati alla stazione terrestre «Ohio 1"
+ Gli angoli sono specificati in gradi
+ Il segmento copre un periodo di 15 minuti
+ I `dt` valori sono secondi atomici scostati dall'epoca di riferimento
+ Vengono fornite sei azimuth/elevation coppie (il minimo è 5)

## Esempio: carica i dati di elevazione azimutale da S3
<a name="w2aac28c17c15c13"></a>

 Per set di dati più grandi, puoi caricare i dati di elevazione azimutale da un bucket 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'oggetto S3 deve contenere una struttura JSON con i dati di elevazione azimutale nello stesso formato mostrato nell'esempio di caricamento diretto. 

## Prenotazione dei contatti con effemeridi di elevazione azimutale
<a name="w2aac28c17c15c15"></a>

 Quando si utilizza un'effemeride di elevazione azimutale per riservare un contatto, il processo è diverso da quello delle effemeridi TLE e OEM: 

1. Crea le effemeridi di elevazione dell'azimut usando [CreateEphemeris](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_CreateEphemeris.html)

1. Attendi che le effemeridi raggiungano lo stato `ENABLED`

1. Prenota il contatto utilizzando le opzioni di [ReserveContact](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ReserveContact.html)tracciamento

 Esempio di prenotazione di un contatto con effemeridi di elevazione dell'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']}")
```

**Nota**  
 Il `satelliteArn` parametro può essere omesso quando si riserva un contatto con le effemeridi di elevazione dell'azimut. L'antenna seguirà gli angoli di azimut e di elevazione specificati durante il contatto. 

## Elenco dei contatti disponibili
<a name="w2aac28c17c15c17"></a>

 Quando si utilizzano le effemeridi di elevazione azimutale, l'[ListContacts](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListContacts.html)API richiede parametri specifici: 
+ Il `satelliteArn` parametro può essere omesso dalla richiesta
+ È necessario fornire un `ephemeris` parametro con l'ID delle effemeridi di elevazione dell'azimut per specificare quali effemeridi utilizzare
+ [Le finestre di contatto disponibili mostrano quando gli angoli di azimut e di elevazione forniti si trovano al di sopra della maschera del sito della stazione terrestre richiesta](https://docs.aws.amazon.com/ground-station/latest/ug/locations.site-masks.html)
+ Devi comunque fornire e `groundStation` `missionProfileArn`

 Esempio di creazione di effemeridi di elevazione azimutale e di elenco dei contatti disponibili con essa: 

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

**Nota**  
 Il `ephemeris` parametro con l'ID di elevazione azimutale deve essere fornito quando si elencano i contatti per specificare quali effemeridi di elevazione azimutale devono essere utilizzate per determinare le finestre di contatto. Se `satelliteArn` è incluso, verrà associato ai dati di contatto, ma le effemeridi di elevazione azimutale verranno utilizzate per il puntamento dell'antenna anziché per eseguire la risoluzione prioritaria delle effemeridi. 