General Purpose Satellite Data Processor
Toggle Light/Dark
[Internal link]SatDump Home [Internal link]What is SatDump? [Internal link]Download SatDump [Internal link]Getting Started [Internal link]Documentation [Internal link]Articles / Blog [Internal link]Satellite List [Internal link]Contributors [Internal link]Matrix Chat [Internal link]Live Satellite Data [Internal link]GGAK Live Data

SatDump Basic Usage


SatDump Basic Usage

We've noticed that the UI after the rework (even though we think is pretty clean) can be quite confusing to many people. That's why I've have decided to write this post in which I explain some basic features of SatDump and how to use them efficiently!

UI

First Start

When you launch satdump-ui you are greeted with a GUI window. The main way of navigating in it is the Tab Bar on the top [1]. Using that you can switch between the different tools SatDump has to offer. The UI of each tool is loaded into the main screen [2].

Offline Decoding

This tool (as the name suggests) lets you process data from a file. It can be any level (meaning you can process a baseband as well as a cadu file). the UI can be divided into 3 main sections:

Pipeline Selection

This widgets lets you select which pipeline to use. Each pipeline is specific to one downlink, so for NOAA you have several: DSB, HRPT and GAC.

File Selection

Here you select the input file, output directory as well as input level. While the last may sound complex, it's really simple. It just specifies what the input file is. Usually baseband is selected when you want to process a recorded signal and cadu or frames (depending on the downlink) is used when processing data coming from live decoding.

Pipeline Options

This table has all the options specific to a pipeline, such as samplerate and baseband format (only valid when you are using baseband as input, otherwise irrelevant).

Once everything is set to the correct values you can start the decoding using the 'Start' button [4].

Recorder (Live Processing)

This is new! In this menu, you can find everything that's related to using an SDR in SatDump. Here you can view, record as well as process data from a radio. Here is the breakdown of the UI:

Source Controls

This menu lets you select what source to use (SDR or a file) and has all the options regarding the selected source. Here you set the frequency, samplerate, gain, etc. The menu changes depending on the source. You can refresh the source list by pressing the 'arrow' button on the right of the combobox.

FFT Options

Here you can control the FFT and waterfall displays. Using the sliders you can change the displayed range. The sliders change the lower and upper cutoff (so the difference between these is the displayed range). You may also notice the 'Avg Rate' slider. This controls the level of averaging applied to the FFT. Lower values give a smoother FFT.

Processing

In this menu you can initiate live decoding. It is simillar in a way to the Offline Decoding section. You can find a pipeline selector and pipeline options in both of them. You may start the processing with the 'Start' button. Some new widgets will appear. The output will be saved in a directory specified in the Settings!

Recording

This is a menu where you can Record a baseband file. You have to select a baseband format. available formats are s8 (8 bit), s16 (16 bit), f32 (32bit float), wav16 (wav compatible with other software like SDR++) and ZIQ (custom format using ZSTD compression. Can be added with a CMAKE flag on compilation). Status of the recording is indicated by the colored text.

FFT and Waterfall

This is self explanatory, it's the FFT and waterfall of the current signal. However it is worth nothing that the waterfall is somewhat intensive! If your PC/Device appears to be struggling/dropping, this may help quite a bit!

The Viewer

This is probably the biggest new feature in SatDump after the rewrite. This menu lets you view, tune and project your data. There are two main tools you can change between using the tabs: Products and Projections. There is too many options to fit into one screenshot so I will have to divide them into several.

Products (Viewer)

Here you can edit and view your decoded images. There are a few menus that house different settings:

General

In this menu are the most basic functions. There is a tree view of opened datasets and products and options for laoding new datasets and products. (products are automatically loaded after decoding) When you open the viewer with no products loaded you will be greeted with only this tab and loading options. Note: the product and dataset names are highlighted yellow when they are added to the projection list, more on that later. You can close datasets and products using an x buttonon the right of the name (it can be hidden if the panel is small).

Image

Here you can choose what channel (or composite) to use. You can also apply options such as equalization, white balance, etc. The 'Save' button saves the displayed image.

RGB Composites

This section gives you controll over the RGB composites. You can select from available presets, but also manually create composites of your liking. To do that, simply enter the formula into the textbox. Satdump will understand basic mathematical and logic (ternary) operators, so you can create more elaborate composites, such as the VIS/IR blend:

ch1 < 0.065 ? (ch4 - 0.7) * 2.66 : ch2 * 2.2 - 0.15, ch1 < 0.065 ? (ch4 - 0.7) * 2.66 : ch2 * 2.2 - 0.15, ch1 < 0.065 ? (ch4 - 0.7) * 2.66 : ch1 * 2.2 - 0.15

Products

This Tab will contain information about calibration and other higher level products we introduce. So far very few instruments are calibrated.

Map Overlay

This is where you can choose to overlay your image with a map and/or add city labels. You can change the colors as well as the size of the labels.

Projection

This menu lets you add the data to a projection list. If the data is added it will be indicated with a yellow highlight in the tree view. The 'Old Algorithm" checkbox lets you select a second projection algorithm for this data. It can be better for projecting bad quality data. It is selected by default on systems that do not support OpenCL (for speed reasons. OpenCL = Graphics Card Computing for short).

Projections (Viewer)

Here you will find yet another new menu. It controls the projection tool, which lets you apply projections to your data. You can also load backgrounds such as the tile map or images in equirectangular projection. You may find 4 main parts here:

Projection Menu

This is the heart of this whole tool. It houses all the projection settings. In the first line you can select the output image size. Under that you select the target projection. You can use any of the ones listed! Available projections are Equirectangular, Stereographic, Mercator and TPERS. Note: do not use 90 degree latitude in TPERS, it will break! (use something like 89.999) Every projection has its own settings which are displayed under the selection. On the bottom of the menu are two buttons, which you can use to render and save the projected image.

Layers Menu

This is the part I am (personally) most excited about. We have implemented a layer system for the projections. This means you can combine multiple passes into one image easily! On the very top is a mode selector. You can choose between blend and overlay. I tihnk these are self explanatory!

Under that the layer list is located. There is an Add Layer button on the left. This will bring you to a separate window where you can laod custom layers such as Tile Maps, equirectangular images and gesotationary satellite images. You can load basically any image if you provide it with an appropriate configuration file (more on that in another post, TODO). As proof that you can load anything here is an Obama Sphere.

Lastly there is the star of the show: the layer list! Each layer has a thumbnail, an enable checkbox, a close button, an opacity slider and a progress bar. You can reorder layers by dragging and dropping them. They will be drawn in a backward order, which means that the layer on top of the selector will be drawn last, on top of the previous ones.

Map Overlay Menu

Lastly, there is a map overlay menu. It is exactly the same as the one found in the products viewer. You can select the colors, enable/disable and change label size.

Settings

This is where you can edit the most basic SatDump settings. This section is worth checking out as it contains all the paths and properties!

CLI (this part was made by Aang23)

The Command-Line Interface (CLI) was also entirely reworked, and some major new features were added... That also clearly did cause some confusion so I thought it was also better to cover it here!
First advice : forget how it used to work!

So, first of all now everything is handled through the main satdump command, which comprises 3 modes.

Offline Processing

Just like in the UI, this mode assumes you already have a file to process. The general usage is :

satdump pipeline_name input_level input_file.xxx path/to/output_directory [options / parameters]

And for a few real-world examples :

Baseband Recording

While before baseband recording was in a separate tool, that is not the case anymore. Instead :
satdump record output_baseband_name --source src_name --samplerate device_samplerate --frequency device_frequency --baseband_format format [others parameters]

For parameters, you will at least need the following :

Additionally, you will need to specify parameters for your specific SDR Device. A list can be found here on GitHub.

Live Processing

Normal Use

Live processing is not done through the ingestor as it used to be done. Instead it is done in a very similar way to the recorder and offline processing.

satdump live pipeline_name path/to/output_directory --source src_name --samplerate device_samplerate --frequency device_frequency [options / parameters]

As you may see, no input level has to be set, as it will always be baseband. See above for a detailled description of every option. The timeout feature is also available.

Additionally, live-processing in CLI mode can provide current status over HTTP. To do so, you need to set --http_server 0.0.0.0:port (eg, --http_server 0.0.0.0:8080). Once started, you will be able to access a http server providing the live state of the demodulator and decoder(s). That can useful for 24/7 setups where contant monitoring may be required.

For example, on GOES-R HRIT :

satdump live goes_hrit output_test_wtf --source rtlsdr --samplerate 2.4e6 --frequency 1694.1e6 --gain 40 --http_server 0.0.0.0:8080

Running curl https://0.0.0.0:8080 will show the following, which can be fed into Grafana or other similar tools for monitoring.

{
    "ccsds_conv_r2_concat_decoder": {
        "deframer_lock": false,
        "rs_avg": 0,
        "viterbi_ber": 0.169677734375,
        "viterbi_lock": 1
    },
    "psk_demod": {
        "freq": 1096.974853515625,
        "peak_snr": 2.214721202850342,
        "snr": 0.1323898881673813
    }
}

Server/Client - Network streaming

Another pretty requested features was the ability to only perform some of the steps locally, and forward to another SatDump instance(s) over the network. Perhaps to have a computer near your antenna decoding down to frames (CADUs for example) and another inside processing imagery. This is mostly intended for 24/7 Geo setups (LRIT, HRIT, GRB, HimawariCast, etc).
The "server" is what would run on the side demodulating from an SDR, and the client what receives the data and finishes processing.

Do note that NOT all pipelines are currently supported in this mode. If you wish for one to be added, please open an issue on Github and it will be added.

Otherwise, starting the server-side is done in the same way as live processing and all flags still apply, except you will need to add the following flags :

Example for GOES-R GRB (with the http status server as well) :

satdump live goes_grb goes_grb_live_test --source bladerf --frequency 1686.6e6 --general_gain 28 --dc_block --samplerate 14e6 --server_address 0.0.0.0 --server_port 5004 --http_server 0.0.0.0:8081

The client will also be started in a very similar way, except of course all SDR-related parameters can be omitted. The client flag has to be passed alongside the server_address (with the IP address of the machine running the server) and server_port. Multiple clients can be connecting to the same server at the same time.

Example :

./satdump live goes_grb goes_grb_live_test_client --server_address 192.168.1.54 --server_port 5004 --client