

# AWS Ground Station Locations
<a name="aws-ground-station-antenna-locations"></a>

 AWS Ground Station provides a global network of ground stations in close proximity to our global network of AWS infrastructure regions. You can configure your use of these locations from any supported AWS Region. This includes the AWS Region in which data is delivered. 

 ![\[Map showing shared locations with antenna and data delivery regions marked.\]](http://docs.aws.amazon.com/ground-station/latest/ug/images/antenna-locations.png) 

## Finding the AWS region for a ground station location
<a name="aws-ground-station-antenna-locations.antenna-regions"></a>

 The AWS Ground Station global network includes ground station locations that are not physically located in the [AWS Region ](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) to which they are connected. The list of ground stations that you have access to can be retrieved via the AWS SDK [ ListGroundStation ](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListGroundStations.html) response. The full list of ground station locations is presented below, with more coming soon. Please refer to the onboarding guide to add or modify site approvals for your satellites. 


****  

| Ground Station Name | Ground Station Location | AWS Region Name | AWS Region Code | Notes | 
| --- | --- | --- | --- | --- | 
| Alaska 1 | Alaska, USA | US West (Oregon) | us-west-2 | Not physically located in an AWS region | 
| Bahrain 1 | Bahrain | Middle East (Bahrain) | me-south-1 |  | 
| Cape Town 1 | Cape Town, South Africa | Africa (Cape Town) | af-south-1 |  | 
| Dubbo 1 | Dubbo, Australia | Asia Pacific (Sydney) | ap-southeast-2 | Not physically located in an AWS region | 
| Hawaii 1 | Hawaii, USA | US West (Oregon) | us-west-2 | Not physically located in an AWS region | 
| Ireland 1 | Ireland | Europe (Ireland) | eu-west-1 |  | 
| Ohio 1 | Ohio, USA | US East (Ohio) | us-east-2 |  | 
| Oregon 1 | Oregon, USA | US West (Oregon) | us-west-2 |  | 
| Punta Arenas 1 | Punta Arenas, Chile | South America (São Paulo) | sa-east-1 | Not physically located in an AWS region | 
| Seoul 1 | Seoul, South Korea | Asia Pacific (Seoul) | ap-northeast-2 |  | 
| Singapore 1 | Singapore | Asia Pacific (Singapore) | ap-southeast-1 |  | 
| Stockholm 1 | Stockholm, Sweden | Europe (Stockholm) | eu-north-1 |  | 

## AWS Ground Station supported AWS regions
<a name="aws-ground-station-service-regions"></a>

 You can deliver data and configure your **Contacts** via the AWS SDK or the AWS Ground Station console from supported AWS Regions. You can view the supported regions and their associated endpoints at the [AWS Ground Station endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/gs.html). 

## Digital twin availability
<a name="aws-ground-station-digital-twin-service-regions"></a>

 [Use the AWS Ground Station digital twin feature](digital-twin.md) is available in all [AWS Regions](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/) where AWS Ground Station is available. Digital twin ground stations are exact copies of production ground stations with a modifying prefix to Ground Station Name of “Digital Twin ”. For example, "Digital Twin Ohio 1" is a digital twin ground station that is an exact copy of the "Ohio 1" production ground station. 

## Dedicated Antennas
<a name="aws-ground-station-dedicated-antenna"></a>

 In addition to the publicly available ground station locations listed above, AWS Ground Station offers Dedicated Antennas. A Dedicated Antenna is a custom-built antenna system that AWS manages on your behalf. A Dedicated Antenna is not restricted to existing AWS Ground Station ground station locations and can be built with capabilities beyond those of public ground stations as described in [AWS Ground Station Site Capabilities](locations.capabilities.md). The locations and capabilities of Dedicated Antennas are not publicly disclosed. 

 For more information about Dedicated Antennas, see [AWS Ground Station Dedicated Antennas](dedicated-antennas.md). To learn more or to get started with Dedicated Antennas, contact AWS Support through the [AWS Support Center Console](https://console.aws.amazon.com/support). 

## Viewing antennas at a ground station
<a name="aws-ground-station-antennas"></a>

 Each ground station location has one or more antennas. You can view the antennas at a ground station by using the [ListAntennas](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListAntennas.html) API. This API returns the antennas at a specified ground station, including each antenna's name. 

 Antenna information is useful when combined with the [ListGroundStationReservations](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListGroundStationReservations.html) API to understand capacity and availability at a ground station. For more information about viewing reservations, see [View ground station reservations](locations.reservations.md). 

 To call `ListAntennas`, you must have a satellite onboarded to the ground station or have azimuth elevation ephemeris permissions for the ground station. For more information, see [Provide azimuth elevation ephemeris data](providing-azimuth-elevation-ephemeris-data.md). 

### Example: List antennas at a ground station
<a name="aws-ground-station-antennas.example"></a>

 The following example lists all antennas at a ground station using the AWS SDK for Python (Boto3). 

```
import boto3

# Create AWS Ground Station client
ground_station_client = boto3.client("groundstation")

# The ground station ID to list antennas for.
# Use the ListGroundStations API to find available ground station IDs.
ground_station_id = "Ohio 1"

# List all antennas at a ground station.
# This is useful for understanding the capacity of a ground station
# and for planning multi-antenna operations.
print(f"Listing antennas for ground station '{ground_station_id}'...")

paginator = ground_station_client.get_paginator("list_antennas")
page_iterator = paginator.paginate(
    groundStationId=ground_station_id,
    PaginationConfig={
        "MaxItems": 100,
        "PageSize": 20,
    },
)

for page in page_iterator:
    for antenna in page["antennaList"]:
        print(f"  Antenna: {antenna['antennaName']}")
        print(f"    Ground Station: {antenna['groundStationName']}")
        print(f"    Region: {antenna['region']}")
        print()
```

# View ground station reservations
<a name="locations.reservations"></a>

 You can view reservations across antennas at a ground station by using the [ListGroundStationReservations](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListGroundStationReservations.html) API. Reservations represent time blocks on antennas, including your scheduled contacts. [AWS Ground Station Dedicated Antennas](dedicated-antennas.md) customers also see maintenance windows. 

 This information helps you understand antenna availability when planning contact schedules and provides visibility into what is happening on the antennas at a ground station. 

## Listing reservations
<a name="locations.reservations.listing"></a>

 To list reservations, call [ListGroundStationReservations](https://docs.aws.amazon.com/ground-station/latest/APIReference/API_ListGroundStationReservations.html) with a ground station identifier and a time range. The API returns reservations across all antennas at the ground station within the specified time window. 

 The reservations you see depend on your access level: 
+  **Public AWS Ground Station customers** — You can see only your own contact reservations. Maintenance windows and contacts owned by other accounts are not included. 
+  **AWS Ground Station Dedicated Antennas customers** — You can see all reservations on your Dedicated Antennas, including maintenance windows and contacts scheduled by other accounts. Contact identifiers are only included for contacts that you own. For more information, see [AWS Ground Station Dedicated Antennas](dedicated-antennas.md). 

## Reservation types
<a name="locations.reservations.types"></a>

Each reservation has a type that indicates what the antenna time is being used for:
+  **Contact** — A contact reservation represents antenna time reserved for satellite communication. The reservation start and end times reflect the full antenna reservation, including pre-pass and post-pass time, not just the satellite pass window. 
+  **Maintenance** — A maintenance reservation represents a time period when the antenna is unavailable due to maintenance. Maintenance reservations include a `maintenanceType` that indicates whether the maintenance was planned or unplanned. 

## Code example
<a name="locations.reservations.examples"></a>

 The following example lists reservations at a ground station for the next 7 days using the AWS SDK for Python (Boto3), including filtering by reservation type. 

```
import boto3
from datetime import datetime, timezone, timedelta

# Create AWS Ground Station client
ground_station_client = boto3.client("groundstation")

# The ground station ID to list reservations for
ground_station_id = "Ohio 1"

# Define the time range to query. Reservations include both your
# scheduled contacts and maintenance windows at the ground station.
start_time = datetime.now(timezone.utc)
end_time = start_time + timedelta(days=7)

# List all reservations at a ground station for the next 7 days.
# You can filter by reservation type to see only contacts or
# only maintenance windows.
print(f"Listing reservations for ground station '{ground_station_id}'...")
print(f"Time range: {start_time} to {end_time}")

paginator = ground_station_client.get_paginator("list_ground_station_reservations")
page_iterator = paginator.paginate(
    groundStationId=ground_station_id,
    startTime=start_time,
    endTime=end_time,
    PaginationConfig={
        "MaxItems": 100,
        "PageSize": 20,
    },
)

for page in page_iterator:
    for reservation in page["reservationList"]:
        reservation_type = reservation["reservationType"]
        antenna_name = reservation["antennaName"]
        res_start = reservation["startTime"]
        res_end = reservation["endTime"]

        print(f"  Type: {reservation_type}")
        print(f"    Antenna: {antenna_name}")
        print(f"    Start: {res_start}")
        print(f"    End: {res_end}")

        details = reservation["reservationDetails"]
        if "contact" in details:
            contact_id = details["contact"].get("contactId", "N/A")
            print(f"    Contact ID: {contact_id}")
        elif "maintenance" in details:
            maintenance_type = details["maintenance"]["maintenanceType"]
            print(f"    Maintenance Type: {maintenance_type}")

        print()

# For Dedicated Antenna customers, you can also filter to show only maintenance windows
print("Listing only maintenance reservations...")

page_iterator = paginator.paginate(
    groundStationId=ground_station_id,
    startTime=start_time,
    endTime=end_time,
    reservationTypes=["MAINTENANCE"],
    PaginationConfig={
        "MaxItems": 100,
        "PageSize": 20,
    },
)

for page in page_iterator:
    for reservation in page["reservationList"]:
        maintenance_type = reservation["reservationDetails"]["maintenance"][
            "maintenanceType"
        ]
        print(
            f"  {maintenance_type} maintenance on {reservation['antennaName']}: "
            f"{reservation['startTime']} to {reservation['endTime']}"
        )
```

# AWS Ground Station site masks
<a name="locations.site-masks"></a>

 Each AWS Ground Station [antenna location](aws-ground-station-antenna-locations.md) has associated site masks. These masks block antennas at that location from transmitting or receiving when pointing in some directions, typically close to the horizon. The masks may take into account: 
+ **Features of the geographic terrain surrounding the antenna** – For example, this includes things like mountains or buildings, that would block a radio frequency (RF) signal or prevent transmitting.
+ **Radio Frequency Interference (RFI)** – This affects both the ability to receive (external RFI sources impacting a downlink signal into AWS Ground Station antennas) and transmit (the RF signal transmitted by AWS Ground Station antennas adversely impacting external receivers).
+ **Legal authorizations** – Local site authorizations to operate AWS Ground Station in each region may include specific restrictions, such as a minimum elevation angle for transmitting.

 These site masks may change over time. For example, new buildings could be constructed near an antenna location, RFI sources may change, or legal authorization may be renewed with different restrictions. The AWS Ground Station site masks are available to you under a non-disclosure agreement (NDA). 

## Customer-specific masks
<a name="w2aac24c19b9"></a>

In addition to the AWS Ground Station site masks at each site, you may have additional masks due to restrictions on your own legal authorization to communicate with your satellites in a given region. Such masks can be configured in AWS Ground Station on a case-by-case basis to ensure compliance when using AWS Ground Station to communicate with these satellites. Contact the AWS Ground Station team for details.

## Impact of site masks on available contact times
<a name="w2aac24c19c11"></a>

 There are two kinds of site masks: uplink (transmit) site masks, and downlink (receive) site masks. 

 When listing available contact times using the ListContacts operation, AWS Ground Station will return visibility times based on when your satellite will rise above and set below the downlink mask. Available contact times are based on this downlink mask visibility window. This ensures that you do not reserve time when your satellite is below the downlink mask. 

 Uplink site masks are *not* applied to the available contact times, even if the Mission Profile includes an [Antenna Uplink Config](how-it-works.config.md#how-it-works.config-antenna-uplink) in a dataflow edge. This allows you to use all available contact time for downlink, even if uplink may not be available for portions of that time due to the uplink site mask. However, the uplink signal may not be transmitted for some or all of the time reserved for a satellite contact. You are responsible for accounting for the provided uplink mask when scheduling uplink transmissions. 

 The portion of a contact that is unavailable for uplink varies depending on the satellite trajectory during the contact, relative to the uplink site mask at the antenna location. In regions where the uplink and downlink site masks are similar, this duration will typically be short. In other regions, where the uplink mask may be considerably higher than the downlink site mask, this could result in significant portions, or even all, of the contact duration being unavailable for uplink. The full contact time is billed to you, even if portions of the reserved time are unavailable for uplink. 

# AWS Ground Station Site Capabilities
<a name="locations.capabilities"></a>

 To simplify your experience, AWS Ground Station determines a common set of capabilities for an antenna type and then deploys multiple antenna to a ground station location. Part of the onboarding steps ensures your satellite is compatible with the antenna types at a specific location. When you reserve a contact, you indirectly determine the antenna type used. This ensures your experience at a particular ground station location remains the same over time regardless of which antennas are being used. The specific performance of your contact will vary due to a wide variety of environmental concerns such as weather at the site. 

Currently, all sites support the following capabilities:

**Note**  
 Each row in the following table indicates an independent communication path, unless otherwise indicated. Duplicate rows exist to reflect our multi-channel capabilities that allow multiple communication paths to be used concurrently. 


| Capability Type | Frequency Range | Bandwidth Range | Polarization | Common Name | Notes | 
| --- |--- |--- |--- |--- |--- |
|  antenna-downlink  |  7750 - 8500 MHz  |  50 - 400 MHz  |  RHCP  |  X-band wideband downlink  |   This capability requires the use of the [AWS Ground Station Agent](https://docs.aws.amazon.com/ground-station/latest/gs-agent-ug).   This capability is not supported in Alaska 1 or Punta Arenas 1.   The aggregate bandwidth must not exceed 400MHz per polarization at each location.   All utilized frequency ranges must be non-overlapping.   | 
|  antenna-downlink  |  7750 - 8500 MHz  |  50 - 400 MHz  |  RHCP  | 
|  antenna-downlink  |  7750 - 8500 MHz  |  50 - 400 MHz  |  RHCP  | 
|  antenna-downlink  |  7750 - 8500 MHz  |  50 - 400 MHz  |  RHCP  | 
|  antenna-downlink  |  7750 - 8500 MHz  |  50 - 400 MHz  |  RHCP  | 
|  antenna-downlink  |  7750 - 8500 MHz  |  50 - 400 MHz  |  LHCP  | 
|  antenna-downlink  |  7750 - 8500 MHz  |  50 - 400 MHz  |  LHCP  | 
|  antenna-downlink  |  7750 - 8500 MHz  |  50 - 400 MHz  |  LHCP  | 
|  antenna-downlink  |  7750 - 8500 MHz  |  50 - 400 MHz  |  LHCP  | 
|  antenna-downlink  |  7750 - 8500 MHz  |  50 - 400 MHz  |  LHCP  | 
|  antenna-downlink  |  2200 - 2290 MHz  |  Up to 40 MHz  |  RHCP  |  S-band downlink  |  Only one polarization can be used at a time  | 
|  antenna-downlink  |  2200 - 2290 MHz  |  Up to 40 MHz  |  LHCP  | 
|  antenna-downlink  |  7750 - 8500 MHz  |  Up to 40 MHz  |  RHCP  |  X-band narrowband downlink  |  Only one polarization can be used at a time  | 
|  antenna-downlink  |  7750 - 8500 MHz  |  Up to 40 MHz  |  LHCP  | 
|  antenna-uplink  |  2025 - 2110 MHz  |  Up to 40 MHz  |  RHCP  |  S-band uplink  |  Only one polarization can be used at a time EIRP 20-50 dBW  | 
|  antenna-uplink  |  2025 - 2110 MHz  |  Up to 40 MHz  |  LHCP  | 
|  antenna-uplink-echo  |  2025 - 2110 MHz  |  2 MHz  |  RHCP  |  Uplink echo  |  Matches antenna-uplink restrictions  | 
|  antenna-uplink-echo  |  2025 - 2110 MHz  |  2 MHz  |  LHCP  | 
|  antenna-downlink-demod-decode  |  7750 - 8500 MHz  |  Up to 500 MHz  |  RHCP  |  X-band demodulated and decoded downlink  |  | 
|  antenna-downlink-demod-decode  |  7750 - 8500 MHz  |  Up to 500 MHz  |  LHCP  |  | 
|  tracking  | N/A | N/A | N/A | N/A |  Support for auto-tracking and program tracking  | 

\$1 RHCP = right-handed circular polarization, and LHCP = left-handed circular polarization. For more information on polarization, see [Circular polarization](https://en.wikipedia.org/wiki/Circular_polarization).