top of page

In this blog I will express my personal opinions, ideas and thoughts on topics related to Earth observation, remote sensing and space science in general. I will talk about current news and developments, and there may be more that is not yet known, even to me.

Music while reading?

Renaissance (Folk/Slow)
Hoedown (Country/Fast)
Shuffle (Acoustic/Medium)

EOMasters Toolbox v1.0 Released - An Introduction

Hello EO-Masters!

Recently I've released the EOMTBX - the EOMasters Toolbox and today I want to give you an introduction and show you the features which are included in the first version.

Because this Toolbox is intended to support you, I would like to hear your ideas and thoughts how the toolbox could evolve in the future. Write it in the comments and I would be happy if you raste this blog positively.

If you prefer you can also watch the video:

Band Maths Extensions

In this release several functions are provided to enhance the Band Maths.


This attribute returns true if the current pixel is valid. Valid means that the pixel value is not equal to the no-data value (if used) and the pixel matches the valid-pixel expression of the band. NaN values are considered as valid except the no-data value of the band is set to NaN. It is used as follows:

<band-name>.valid --> Oa10_radiance.valid

Map Coordinates

It is already possible to get the pixel (X, Y) and the geographic coordinates (LAT, LON) in a Band Maths Expression. With these two new symbols you can also access the map coordinates of the product scene. The returned coordinate represents the centre of the pixel. If the scene is not reprojected to a map, the geographic coordinates are returned. The X and Y map coordinates are returned by the symbols: MAPX and MAPY


AreValid Function

Similar to the valid attribute, this function returns true if all provided bands are valid. Only bands are allowed as arguments. It is used as follows:

areValid(<band_name>, <band_name>, ...)  --> areValid(B2, B3, B4, B8)

Min, Max and Mean of Multiple Inputs

These functions return the minimum, maximum and mean of the provided inputs. The functions exclude NaN, infinite and invalid values from the computation. It is used as follows:

<func>(<value>, <value>, ...)

minOf: Returns the minimum of the provided inputs values.

--> minOf(0.7, <B7>, <B8>, <B8A>)

maxOf: Returns the maximum of the provided inputs values.

--> maxOf(<B1>, <B2>, 0.2)

meanOf: Returns the mean value of the provided inputs values.

--> meanOf(<B1>, <B2>, <B3>, <B4>, <B5>)

Window Functions

The window is centered on the current pixel and the window size must be 3, 5 or 7. NaN and invalid values are ignored. If all values in the window are NaN or invalid, the result is NaN. The functions are used as follows:

wnd(<band_name>, <window_size>, "<function>") 

The following functions are available:

sum: Sum of all valid pixels in the window

--> wnd(B8A, 3, "sum")

min: Minimum of all valid pixels in the window

--> wnd(B2, 3, "min")

max: Maximum of all valid pixels in the window

--> wnd(B2, 7, "max")

mean: Mean of all valid pixels in the window

--> `wnd(B2, 7, "mean")

median: Median of all valid pixels in the window

--> wnd(B3, 5, "median")

Quick Menu

The quick menu can boost your daily work with SNAP. It allows you to find the actions you use the most more easily. The list is sorted by the number of usages of the actions. No need to fumble through the menu tree.

The quick menu is always at hand and centrally located in the menu. In the options you can set the number of actions listed between 5 and 10.

Wavelength Editor

The Wavelength Editor allows to edit the wavelength, bandwidth, and the spectral index for multiple bands at once. Before you had to open every single band separately and change the values. Now you can do it in in one step. And you can apply the changes to other products by simply selecting them. This should make wavelength editing a lot easier.

Loop GPT

When using GPT from the command line each gpt call is executed separately. The GPT engine is started and stopped for each call including the Java VM. This takes some time, especially when processing smaller areas or other short running tasks this can take up a reasonable percentage of the whole processing. Loop GPT avoids starting and stopping of the GPT engine and Java VM between GPT commands by looping over the GPT calls. This can speed-up your processing and facilitates batch processing of multiple products.

It is executed like this:

snap --loopgpt ~/commands.txt

And the content of the commands.txt might look like this:

# An initial comment line
# A GPT graph file call
D:\processing\S2_BandMaths.xml -t D:\EOData\S2\S2A_MSIL1C_20230627T105621.dim -q 6 D:\EOData\S2\

# A GPT operator call
Resample -PtargetWidth=1000 -PtargetHeight=1000 -t D:\EOData\S3\ -f NetCDF4-CF -SsourceProduct=D:\EOData\S3\OLCI\S3B_OL_1_EFR____20230717T104859_20230717T105159_20230717T232729_0180_081_379_2160_PS2_O_NT_003.SEN3

Close Products Without a View

This is a little addition to the context menu of the Product Explorer. It allows to close all products whose data is not shown in any scene view.

System Report

The System Report becomes helpful when there is a problem. It creates a report containing the current configuration. If you want to report an issue to me or in the SNAP Forum you can use it to provide necessary insights to the supporter.

Error Handler

The error handler is something I hope you will never see. It is similar to the system report, but it is automatically shown when an error occurs in the EOMTBX and it allows to send the report including the exception text to me via mail or post it in the EOMasters Forum.

And that's it for the first version. I hope you like it.

What would you like to see in one of the next versions in the EOMasters Toolbox? Let me know in the comments.

Ah, one more thing…  You can get it via the plugin manager in SNAP. Just select and install it.

Tschüss and Goodbye


85 views0 comments

Related Posts

See All


Mit 0 von 5 Sternen bewertet.
Noch keine Ratings

Rating hinzufügen
bottom of page