AWS Public Sector Blog

Earth observation using AWS Ground Station: A how to guide

This post was updated in January 2024 to reflect NASA ending development of Direct Readout Laboratory (DRL) software (IPOPP, SPAs, and others) in July 2023. This post now provides a high-level overview of implementing AWS Ground Station and links to our GitHub repo where more technical information and implementation examples can be found.

We live in an information society where access to data helps drive our decisions and behaviors. For example, recent satellite images from NASA showing the melting of the ice cap on Eagle Island in Antarctica and its impact on wildlife is powerful. It highlights the need to protect endangered species.

Over the past decade, a crop of new companies focused on Earth observation (EO) have made valuable EO data more accessible to a broad audience. As a result, we are seeing a dramatic increase in EO science.

The value of EO data is the ability to monitor change. Recently, new instrumentation aboard satellites, such as radar, now allows us to “see” through clouds, allowing observation of any part of the Earth. The reliable, repeatable, and accurate data now flowing from satellites is opening up the reality of operational services powered by satellite imagery.

As the space race to launch a fleet of small low earth orbit (LEO) satellites heats up, technological developments such as smaller satellites and the reuse of launch vehicles have driven down the cost of building and launching satellites. If you are within a satellite footprint and need to lease transponder capacity on a one-time basis or do not want to invest in costly satellite ground segment infrastructure, consider AWS Ground Station.

AWS Ground Station is a fully managed, pay-per-use service that lets you communicate with satellites without having to buy, lease, build, or maintain your own satellite ground stations. If you are considering using EO data for a startup idea or scientific endeavor, this post provides an overview of how to use AWS Ground Station to receive and process data from Earth observation satellites. With the solution proposed in this post, you will have usable data in your Amazon Simple Storage Service (Amazon S3) bucket within a few minutes of successful satellite contact.

Global change monitoring is a reality, and AWS Ground Station increases the speed of data access while reducing the cost of data connection. Data received using AWS Ground Station can be further processed using AWS global infrastructure, including low-cost storage and web publishing with Amazon S3, real-time streaming using Amazon Kinesis, or machine learning (ML) with Amazon SageMaker.

In order to use AWS Ground Station, you work with the AWS Ground Station team to onboard your satellite into your target account. Once your satellite is onboarded, it is available to you in your account, allowing you to schedule contacts. Each contact consists of a selected satellite, start and end time, and ground location. For the example process in this post, we have onboarded NASA’s AQUA satellite. AQUA launched in 2002 and is part of NASA’s Earth Science Data Systems (ESDS) program. It orbits the Earth in a Sun-synchronous near-polar orbit at an altitude of 705 km, which makes it a LEO satellite. AQUA has five active sensing instruments. The ESDS program plays a vital role in the development of validated, global, and interactive Earth system models that are able to predict global change accurately.

AWS Ground Station currently supports LEO and medium earth orbit (MEO) satellites. Because of their orbital periods, these satellites are visible from the ground only for a few minutes during each pass, and communication is only possible when they are within line of sight of a ground station. AWS Ground Station establishes contact with the satellites and then receives, demodulates, and decodes its radiofrequency signals. It then pushes the decoded data to the receiver Amazon Elastic Compute Cloud (Amazon EC2) instances as a VITA 49 stream.

A data capture application running on the receiver EC2 instance ingests the incoming VITA 49 stream. The payload from within each VITA 49 packet is extracted and combined into a raw data file. The raw data file is held locally and also pushed to Amazon S3 to be reprocessed as needed at a later date.

AQUA broadcasts Consultative Committee for Space Data (CCSDS)-compliant Channel Access Data Unit (CADU) data frames. CADUs are processed into a Level 0 data product using NASA’s Real-Time Telemetry Processing System (RT-STPS). Level 0 data is then pushed to Amazon S3. In previous examples, International Planetary Observation Processing Package (IPOPP), which was previously maintained by NASA, is used to process Level 0 data into higher-level products such as Level 1 HDF files, Level 2 HDF files, and TIFF images. IPOPP is installed and configured on the processor EC2 instance, which then pushes the Level 1 and Level 2 data products to Amazon S3. Once in Amazon S3, data products can be published to data subscribers or retrieved by other AWS services, such as Amazon SageMaker, for near real-time processing.

Read a detailed description of the data processing levels as defined by NASA.

Solution overview

Figure 1. The high-level architecture for the solution to implement an automated AWS Ground Station EO pipeline.

The solution operates as follows:

1. A contact reservation is made using the AWS Ground Station console. A contact reservation allows you to enter satellite data, identify antenna locations and communication, and schedule antenna time. The service displays a list of possible contact times and ground station Regions for you to choose from, as shown in the following screenshot.

During a successful contact, AWS Ground Station receives the communication from the satellite and demodulates and decodes the signal into a VITA 49 stream.

2. AWS Ground Station triggers an Amazon CloudWatch event during a PREPASS transition a few minutes before satellite contact.

3. The CloudWatch event triggers an AWS Lambda function that starts up the receiving EC2 instance.

4. The Receiver EC2 instance captures the raw data from the AWS Ground Station service via RT Logic’s Data Defender

5. The data capture application running on the Receiver instance strips out and combines the payload data from the incoming VITA-49 data stream.

6. The data capture application starts up RT-STPS, which processes the raw data into Level 0 data

7. The data capture application pushes the data to Amazon S3, sends an Amazon Simple Notification Service (Amazon SNS) notification, and then shuts down

8. The Amazon SNS notification triggers a Lambda function, which starts up the Processor EC2 instance.

9. The Processor EC2 instance pulls the data from Amazon S3 and then processes it using IPOPP.

10. The Processor instance running NASA’s IPOPP application ingests the Level 0 data products from Amazon S3 and converts them to Level 1 products using IPOPP’s Science Processing Algorithm (SPA). These data products include:

    • MODIS/Aqua Level 1A Scans of raw radiances in counts
    • MODIS/Aqua Level 1B Calibrated Radiances – 1km
    • MODIS/Aqua Level 1B Calibrated Radiances – 250m
    • MODIS/Aqua Geolocation – 1km

Level 1 data products are calibrated and georeferenced and can be processed further into Level 2 or Level 3 data products using software such as Polar2Grid. You can also process this data further by enabling additional SPAs in IPOPP through the graphical user interface. Once the IPOPP processing completes, Level 1 and Level 2 data products are uploaded to Amazon S3.

11. The Processor EC2 instance pushes the Level 1A, Level 1B, and Level 2 data it produces to Amazon S3.

12. The Processor EC2 instance sends an Amazon SNS notification and then shuts down.

13. As a future possibility, the Amazon SNS notification can be used to trigger additional functionality in the pipeline such as launching Amazon SageMaker notebooks or Amazon Rekognition for computer vision or other types of analysis.

To review the sample code for this solution, visit the GitHub repository for the solution: Implementing an Automated Ground Station EOS pipeline.

Viewing the Level 2 data products

Level 2 data products produced by IPOPP are Hierarchical Data Format (HDF) and  TIFF files. HDF  are data-rich files that can be browsed using software such as HDFView. However, the most common use of HDF files is to process them programmatically because they contain the actual data rather than the visual representations you find in the TIFF files. If you plan to perform ML on the data, you’ll likely use HDF files. If you are looking for visual representations, use the TIFF images or process the Level 2 data further into Level 3 files, for example, KMZ files that can be imported into Google Earth.

The following image is a Cropped True Color Corrected Reflectance (CREFL) that shows the United Arab Emirates and Oman produced by IPOPP.

Cropped True Colour Corrected Reflectance (CREFL) image showing the United Arab Emirates and Oman, produced using IPOPP’s CREFL SPA. If you look carefully, you might see the Palm Jumeirah in the centre-left of the image, off the coast of Dubai.

Cropped True Colour Corrected Reflectance (CREFL) image showing the United Arab Emirates and Oman, produced using IPOPP’s CREFL SPA. If you look carefully, you might see the Palm Jumeirah in the centre-left of the image, off the coast of Dubai.

The following image is a Level 3 data product imported into Google Earth showing the Arab Peninsula as the AQUA Satellite passes over Bahrain.

Level 3 KMZ package created using the polar2grid software and imported into Google Earth.

Level 3 KMZ package created using the polar2grid software and imported into Google Earth.

The data for both images was captured when the AQUA satellite passed over the AWS Ground Station in Bahrain. These images are a snapshot of the actual data available from the AQUA satellite. Other data includes sea and land surface temperatures, aerosol levels in the atmosphere, chlorophyll concentrations in the sea (indicators of marine life), and more.

Getting started

If you are interested in evaluating AWS Ground Station to process and analyze satellite data, email to have AQUA added to AWS Ground Station on your AWS account. Include your AWS account number and reference AQUA and its NORAD ID (27424). Once the satellite is successfully onboarded to your AWS account, it is visible in the AWS Ground Station console or via the AWS CLI. Using the information and code in our GitHub repository, you can build out an example pipeline as described in this post.


With AWS Ground Station, you can capture data from satellites without having to buy, lease, build, or maintain your own ground station equipment. Get started with Earth observation data and AWS Ground Station.

Nicholas Ansell

Nicholas Ansell

Nicholas Ansell is a principal consultant with Amazon Web Services (AWS) Professional Services. He works closely with customers and partners globally across the space industry to help rapidly realize their goals using AWS services.

Alex Nelson

Alex Nelson

Alex is a senior solutions architect with AWS Professional Services (AWS ProServe). Leveraging his experience and expertise in various cloud technologies and practices, he collaborates with clients in the space domain to construct and migrate mission-critical workloads to the cloud.

Viktor Pankov

Viktor Pankov

Viktor Pankov is a consultant with Amazon Web Services (AWS) Professional Services. He works closely with customers to help rapidly realize their goals using AWS services.