Holoscan SAR¶
Authors: Dan Campbell (NVIDIA), Amanda Butler (NVIDIA)
Supported platforms: x86_64, aarch64
Last modified: March 18, 2025
Language: Python
Latest version: 0.1.0
Minimum Holoscan SDK version: 0.5.0
Tested Holoscan SDK versions: 0.5.0
Contribution metric: Level 4 - Experimental
Description¶
This application is a demonstration of using Holoscan to construct Synthetic Aperture Radar (SAR) imagery from a data collection. In current form, the data is assumed to be precollected and contained in a particular binary format. It has been tested with 2 versions of the publicly available GOTCHA volumetric SAR data collection. Python-based converters are included to manipulate the public datasets into the binary format expected by the application. The application implements Backprojection for image formation.
Requirements¶
- Holoscan (>=0.5)
- Python implementation:
- Python3
- CuPy or Numpy
- Pillow
- Scripts in
deploy/
will build and execute a docker environment that meets the requirements for systems using nvidia-docker
Obtain and Format GOTCHA Dataset¶
- Navigate to https://www.sdms.afrl.af.mil/index.php?collection=gotcha
- Click the DOWNLOAD link below the images
- Log in. You may need to create an account to do so
- Under "GOTCHA Volumetric SAR Data Set Challenge Problem" download "Disc 1 of 2".
- The data in "Disc 2 of 2" is compatible with this demo but not used
- Unpack the contents of "Disc 1 of 2" into the
data/
directory. This should create a subdirectry namedGOTCHA-CP_Disc1/
cd data
python3 cp-large_convert.py
- This should create a data file named
gotcha-cp-td-os.dat
that has a file size 2766987672 bytes, and a md5sum of 554b509c2d5c2c3de8e5643983a9748d
Build and Use Docker Container (Optional)¶
- This demonstration is distributed with tools to build a docker container that meets the demonstration's system requirements. This approach will only work properly with nvidia-docker
- From the demonstration root directory:
cd deploy
bash build_application_container.sh
- this will build the containerbash run_application_container.sh
- this will launch a container that meets the demonstration system requirements
Build and Execute¶
- Python:
python3 holosar.py
The application will create a window with the resolved SAR image, and update after each group of 100 pulses received. The image represents the strength of reflectivity at points on the ground within the imaging window. The text at the top of the window indicates the (X,Y) position of the collecting radar at the most recent pulse, along with the total count of pulses received. The red line points in the direction of the collection vehicle's location at the most recent pulse.
A screen grab is included below for reference: