Skip to content

Commit 575bd97

Browse files
authored
Merge pull request #207011 from srajtiwari/patch-2
Use a single VM for end-to-end processing
2 parents b50933f + 152f3bc commit 575bd97

File tree

1 file changed

+49
-52
lines changed

1 file changed

+49
-52
lines changed

articles/orbital/satellite-imagery-with-orbital-ground-station.md

Lines changed: 49 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
2-
title: Collect and process Aqua satellite payload - Azure Orbital
3-
description: An end-to-end walk-through of using the Azure Orbital Ground Station (AOGS) to capture and process satellite imagery.
2+
title: Collect and process Aqua satellite data - Azure Orbital
3+
description: An end-to-end walk-through of using the Azure Orbital Ground Station (AOGS) to capture and process Aqua satellite imagery.
44
ms.service: orbital
55
author: EliotSeattle
66
ms.author: eliotgra
@@ -9,39 +9,40 @@ ms.date: 07/13/2022
99
ms.custom: template-overview
1010
---
1111

12-
# Tutorial: Collect and process Aqua satellite payload using Azure Orbital Ground Station (AOGS)
12+
# Tutorial: Collect and process Aqua satellite data using Azure Orbital Ground Station (AOGS)
1313

1414
This article is a comprehensive walk-through showing how to use the [Azure Orbital Ground Station (AOGS)](https://azure.microsoft.com/services/orbital/) to capture and process satellite imagery. It introduces the AOGS and its core concepts and shows how to schedule contacts. The article also steps through an example in which we collect and process NASA Aqua satellite data in an Azure virtual machine (VM) using NASA-provided tools.
1515

16-
Aqua is a polar-orbiting spacecraft launched by NASA in 2002. Data from all science instruments aboard Aqua is downlinked to the Earth using direct broadcast over the X-band in near real-time. More information about Aqua can be found on the [Aqua Project Science](https://aqua.nasa.gov/) website. With AOGS, we can capture the Aqua broadcast when the satellite is within line of sight of a ground station.
16+
Aqua is a polar-orbiting spacecraft launched by NASA in 2002. Data from all science instruments aboard Aqua is downlinked to the Earth using direct broadcast over the X-band in near real-time. More information about Aqua can be found on the [Aqua Project Science](https://aqua.nasa.gov/) website.
1717

18-
A *contact* is time reserved at an orbital ground station to communicate with a satellite. During the contact, the ground station orients its antenna towards Aqua and captures the broadcast payload. The captured data is sent to an Azure VM as a data stream that is processed using the [RT-STPS](http://directreadout.sci.gsfc.nasa.gov/index.cfm?section=technology&page=NISGS&subpage=NISFES&sub2page=RT-STPS&sub3Page=overview) (Real-Time Software Telemetry Processing System) provided by [Direct Readout Laboratory](http://directreadout.sci.gsfc.nasa.gov/) at NASA to generate a level 0 product. Further processing of level 0 data is done using IPOPP (International Planetary Observation Processing Package) tool, also provided by DRL.
18+
Using AOGS, we capture the Aqua broadcast when the satellite is within line of sight of a ground station by scheduling a *contact*. A *contact* is time reserved at a ground station to communicate with a satellite. During the contact, the ground station orients its antenna towards Aqua and captures the direct broadcast data. The captured data is sent to an Azure VM as a data stream and processed using the [Real-Time Software Telemetry Processing System](http://directreadout.sci.gsfc.nasa.gov/index.cfm?section=technology&page=NISGS&subpage=NISFES&sub2page=RT-STPS&sub3Page=overview)(RT-STPS) tool provided by the [Direct Readout Laboratory](http://directreadout.sci.gsfc.nasa.gov/)(DRL) which generates a Level-0 product. This Level-0 product is processed further using DRL's [International Planetary Observation Processing Package](https://directreadout.sci.gsfc.nasa.gov/?id=dspContent&cid=68)(IPOPP) tool to produce higher level products.
1919

20-
In this tutorial, you'll follow these steps to process the Aqua data stream:
20+
In this tutorial, we will follow these steps to collect and process Aqua data:
2121

2222
> [!div class="checklist"]
23-
> * [Prerequisites](#step-1-prerequisites).
24-
> * [Process RAW data using RT-STPS](#step-2-process-raw-data-using-rt-stps).
25-
> * [Prepare a virtual machine (processor-vm) to process higher level products](#step-3-prepare-a-virtual-machine-processor-vm-to-create-higher-level-products).
26-
> * [Create higher level products using IPOPP](#step-4-create-higher-level-products-using-ipopp).
23+
> * [Schedule a contact and collect Aqua direct broadcast data using AOGS](#step-1-schedule-a-contact-and-collect-aqua-direct-broadcast-data-using-aogs).
24+
> * [Process Aqua direct broadcast data using RT-STPS](#step-2-process-aqua-direct-broadcast-data-using-rt-stps).
25+
> * [Create higher level products using IPOPP](#step-3-create-higher-level-products-using-ipopp).
2726
2827
Optional setup steps for capturing the ground station telemetry are included in the [Appendix](#appendix).
2928

30-
## Step 1: Prerequisites
29+
## Step 1: Schedule a contact and collect Aqua direct broadcast data using AOGS
3130

32-
You must first follow the steps listed in [Tutorial: Downlink data from NASA's AQUA public satellite](downlink-aqua.md).
31+
Follow the steps listed in [Tutorial: Downlink data from NASA's AQUA public satellite](downlink-aqua.md) to schedule a contact with Aqua using AOGS and collect the direct broadcast data on an Azure VM for further processing.
3332

3433
> [!NOTE]
3534
> In the section [Prepare a virtual machine (VM) to receive the downlinked AQUA data](downlink-aqua.md#prepare-your-virtual-machine-vm-and-network-to-receive-aqua-data), use the following values:
3635
>
3736
> - **Name:** receiver-vm
3837
> - **Operating System:** Linux (CentOS Linux 7 or higher)
39-
> - **Size:** Standard_D8_v5 or higher
38+
> - **Size:** Standard_D8s_v5 or higher
4039
> - **IP Address:** Ensure that the VM has at least one standard public IP address
4140
42-
## Step 2: Process RAW data using RT-STPS
41+
At the end of this step, you should have the raw direct broadcast saved as ```.bin``` files under the ```~/aquadata``` folder on the receiver-vm.
4342

44-
The [Real-time Software Telemetry Processing System (RT-STPS)](https://directreadout.sci.gsfc.nasa.gov/?id=dspContent&cid=69) is NASA-provided software for processing the raw Aqua payload. The steps below cover installation of RT-STPS on the receiver-vm, and production of level-0 PDS files for the Aqua payload captured in the previous step.
43+
## Step 2: Process Aqua direct broadcast data using RT-STPS
44+
45+
The [Real-time Software Telemetry Processing System](https://directreadout.sci.gsfc.nasa.gov/?id=dspContent&cid=69)(RT-STPS) is a NASA-provided software for processing Aqua direct broadcast data. The steps below cover installation of RT-STPS Verson 6.0 on the receiver-vm, and production of Level-0 Production Data Set(PDS) files from the data collected in the previous step.
4546

4647
Register with the [NASA DRL](https://directreadout.sci.gsfc.nasa.gov/) to download the RT-STPS installation package.
4748

@@ -87,49 +88,49 @@ rm ./data/*
8788
ls -la ./data
8889
```
8990

90-
### Process RAW Aqua data
91+
### Create Level-0 product
9192

92-
Run rt-stps in batch mode to process the previously captured Aqua data (.bin files).
93+
Run rt-stps in batch mode to process the ```.bin``` file collected in Step 1
9394

9495
```console
9596
cd ~/software/rt-stps
9697
./bin/batch.sh ./config/aqua.xml ~/aquadata/raw-2022-05-29T0957-0700.bin
9798
```
9899

99-
That command creates level-0 product (.PDS files) in the ```~/software/rt-stps/data``` directory.
100-
[AzCopy](../storage/common/storage-use-azcopy-v10.md) the level-0 files to a storage container:
101-
102-
```console
103-
azcopy sync ~/software/rt-stps/data/ "https://[account].blob.core.windows.net/[container]/[path/to/directory]?[SAS]"
104-
```
100+
This command produces Level-0 Production Data Set (```.pds```) files under the ```~/software/rt-stps/data``` directory.
105101

106-
Download the level-0 PDS files from this storage container for further processing in later steps.
107-
108-
## Step 3: Prepare a virtual machine (processor-vm) to create higher level products
102+
## Step 3: Create higher level products using IPOPP
109103

110104
[International Planetary Observation Processing Package (IPOPP)](https://directreadout.sci.gsfc.nasa.gov/?id=dspContent&cid=68) is another NASA-provided software to process Aqua Level-0 data into higher level products.
111-
In the steps below, you'll process the Aqua PDS files downloaded from the Azure Storage container in the previous step.
112-
Because IPOPP has higher system requirements than RT-STPS, it should be run on a bigger VM called the "processor-vm".
105+
In the steps below, you'll process the Level-0 data generated in the previous step using IPOPP.
106+
107+
> [!NOTE]
108+
> Due to potential resource contention, DRL recommends installing RT-STPS and IPOPP on separate machines. But for this tutorial, we install both on the our receiver-vm because we don't run them at the same time. For production workloads, please follow sizing and isolation recommendations in the user guides available on the DRL website.
113109
114-
[Create a virtual machine(VM)](../virtual-machines/linux/quick-create-portal.md) within the virtual network above. Ensure that this VM has the following specifications:
110+
### Attach a data disk to the receiver-vm
115111

116-
- **Name:** processor-vm
117-
- **Size:** Standard D16ds v5
118-
- **Operating System:** Linux (CentOS Linux 7 or higher)
119-
- **Disk:** 2 TB Premium SSD data disk
112+
IPOPP installation and subsequent generation of products requires more disk space and I/O throughput than what is available on the receiver-vm by default.
113+
To provide more disk space and throughput, attach a 1TB premium data disk to the receiver-vm by following steps in [Attach a data disk to a Linux VM](../virtual-machines/linux/attach-disk-portal.md)
120114

121-
Create a file system on the data disk:
115+
### Create a file system on the data disk
122116

123117
```console
124-
sudo fdisk /dev/sdc
125-
sudo mkfs -t ext4 /dev/sdc1
126-
sudo mount /dev/sdc1 /datadrive
118+
lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd"
119+
sudo parted /dev/sdb --script mklabel gpt mkpart xfspart xfs 0% 100%
120+
sudo mkfs.xfs /dev/sdb1
121+
sudo partprobe /dev/sdb1
122+
sudo mkdir /datadrive
123+
sudo mount /dev/sdb1 /datadrive
124+
sudo chown azureuser:azureuser /datadrive
127125
```
126+
> [!NOTE]
127+
> To ensure that the datadrive is mounted automatically after every reboot, please refer to [Attach a data disk to a Linux VM](../virtual-machines/linux/attach-disk-portal.md#mount-the-disk) for instructions on how to add an entry to ```/etc/fstab```
128128
129-
IPOPP installation requires using a browser to sign on to the DRL website to download the installation script. This script must be run from the same host that it was downloaded to. IPOPP configuration also requires a GUI. Therefore, we install a full desktop and a vnc server to enable running GUI applications.
130129

131130
### Install Desktop and VNC Server
132131

132+
IPOPP installation requires using a browser to sign on to the DRL website to download the installation script. This script must be run from the same host that it was downloaded to. The subsequent IPOPP configuration also requires a GUI. Therefore, we install a full desktop and a vnc server to enable running GUI applications on the receiver-vm.
133+
133134
```console
134135
sudo yum install tigervnc-server
135136
sudo yum groups install "GNOME Desktop"
@@ -145,7 +146,7 @@ Enter a password when prompted.
145146
Port forward the vncserver port (5901) over ssh:
146147

147148
```console
148-
ssh -L 5901:localhost:5901 azureuser@processor-vm
149+
ssh -L 5901:localhost:5901 azureuser@receiver-vm
149150
```
150151

151152
Download the [TightVNC](https://www.tightvnc.com/download.php) viewer and connect to ```localhost:5901``` and enter the vncserver password entered in the previous step. You should see the GNOME desktop running on the VM.
@@ -170,6 +171,8 @@ cd $INSTALL_DIR
170171

171172
This script will download \~35G and will take 1 hour or more.
172173

174+
Alternatively, you can upload your installation binaries to a container in Azure Storage and download them to the receiver-vm using [AzCopy](../storage/common/storage-use-azcopy-v10.md)
175+
173176
### Install IPOPP
174177

175178
```console
@@ -178,7 +181,7 @@ chmod -R 755 $INSTALL_DIR/IPOPP
178181
$INSTALL_DIR/IPOPP/install_ipopp.sh -installdir $INSTALL_DIR/drl -datadir $INSTALL_DIR/data -ingestdir $INSTALL_DIR/data/ingest
179182
```
180183

181-
### Install patches
184+
### Install IPOPP patches
182185

183186
```console
184187
$INSTALL_DIR/drl/tools/install_patch.sh $PATCH_FILE_NAME
@@ -195,16 +198,12 @@ $INSTALL_DIR/drl/tools/services.sh status
195198
$INSTALL_DIR/drl/tools/spa_services.sh status
196199
```
197200

198-
## Step 4: Create higher level products using IPOPP
199-
200-
Before we can create level-1 and level-2 products from the PDS files, we need to configure IPOPP.
201-
202-
### Configure the IPOPP service using the dashboard
201+
### Configure IPOPP services using its dashboard
203202

204-
IPOPP must be configured with the dashboard GUI. To start the dashboard, first port forward the vncserver port (5901) over ssh:
203+
Before we can create Level-1 and Level-2 products from the Level-0 PDS files generated by rt-stps, we need to configure IPOPP. IPOPP must be configured with its dashboard GUI. To start the dashboard, first port forward the vncserver port (5901) over ssh:
205204

206205
```console
207-
ssh -L 5901:localhost:5901 azureuser@processor-vm
206+
ssh -L 5901:localhost:5901 azureuser@receiver-vm
208207
```
209208

210209
Using the TightVNC client, connect to localhost:5901 and enter the vncserver password. On the virtual machine desktop, open a new terminal and start the dashboard:
@@ -236,15 +235,13 @@ cd /datadrive/ipopp
236235

237236
## Ingest data for processing
238237

239-
Download the PDS files generated by the RT-STPS tool from your storage container to the IPOPP ingest directory configured during installation.
238+
Copy the Level-0 PDS files generated by RT-STPS to the IPOPP ingest directory for further processing.
240239

241240
```console
242-
azcopy cp
243-
"https://[account].blob.core.windows.net/[container]/[path/to/directory]?[SAS]"
244-
"/datadrive/ipopp/drl/data/dsm/ingest" --recursive=true
241+
cp ~/software/rt-stps/data/* /datadrive/ipopp/drl/data/dsm/ingest/.
245242
```
246243

247-
Run the IPOPP ingest to create the products configured in the dashboard. 
244+
Run IPOPP ingest to create the products configured in the dashboard. 
248245

249246
```
250247
/datadrive/ipopp/drl/tools/ingest_ipopp.sh

0 commit comments

Comments
 (0)