Offset-Tracking (calculation ice velocities)

Dear Snap users, I need to calculate ice velocities for two run-out glaciers of different expositions. Both are in the same small island in Arctic. Will it be right do not make offset-tracking for each glacier separately but to run offset-tracking for the total area covering both glaciers at once?

If there are both on the same small island, I don’t see any problem at all. Did you encountered a problem in the process?

No, there were no problems in the process. I have just read that the algorithm is used only in case of “translational movement” in a given direction, which is calculated. Movement directions are different in run-out glaciers of different exposition. I’m afraid that calculation results will be incorrect.


I wonder if it will be possible (using SNAP functions) to calculate offsets along Azimuth and Range ? It seems that they are being calculated by the Offset tracking procedure however the only accessible data is the final velocity map. I wonder if we can produce displacements across azimuth and Range in separate files?

1 Like

Not directly. Hidden in the codes, there is a “debug” function that can be enabled to produce velocity maps in range and in azimuth. However, you will have to build SNAP on your own, and rewriting the codes.


Note that the information is also contained inside the vector file created by SNAP (without any modification). It consists in a tabular text file containing the required information about range and azimuth shifts


Thank you very much for your reply and the information. The vector file that you mentioned contains interesting information. However I believe it contains the offset/velocity information per grid cell (The final grid on top of which one can visualize the velocity vectors). What I am looking for is to have maps (per pixel) of displacement values along azimuth and range. It will be supper valuable if they somehow become available through the interface.

I understand and I would have liked it was the default option.

Note however that the raster file is nothing more than the vector file resampled at image resolution. In a GIS software, you may be able to import it and create a raster from it.

1 Like

I should try that for now.
Thank again

1 Like

If you find a way to do it using open-source GIS, please add a comment on the procedure. I am sure many people can be interested. Thanks in advance

Hello, I find the code line at github. How can I build a modfied SNAP and install it.

You need a Java IDE (I personnaly use IntelliJIDE). To build SNAP from sources, you need to follow the steps developed here :

Note that I am not a developer and cannot guide you further ? I personally followed the steps without really knowing what I was doing. Hope it helps

Thanks for your reply. I have test build based on the instruction.
my paprameter

But the results show /usr/lib/jvm/java-8-oracle/bin/java -Dsun.java2d.noddraw=true -Dsun.awt.nopixfmt=true -Dsun.java2d.dpiaware=false -Dorg.netbeans.level=INFO -Dsnap.debug=true -Xmx4G -javaagent:/opt/intellij-idea-community/lib/idea_rt.jar=44293:/opt/intellij-idea-community/bin -Dfile.encoding=UTF-8 -classpath /usr/lib/jvm/java-8-oracle/jre/lib/charsets.jar:/usr/lib/jvm/java-8-oracle/jre/lib/deploy.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/cldrdata.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/dnsns.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/jaccess.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/jfxrt.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/localedata.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/nashorn.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunec.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunjce_provider.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunpkcs11.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/zipfs.jar:/usr/lib/jvm/java-8-oracle/jre/lib/javaws.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jce.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jfr.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jfxswt.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jsse.jar:/usr/lib/jvm/java-8-oracle/jre/lib/management-agent.jar:/usr/lib/jvm/java-8-oracle/jre/lib/plugin.jar:/usr/lib/jvm/java-8-oracle/jre/lib/resources.jar:/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar:/home/lidaan/Downloads/Project/SNAP/snap-desktop/snap-main/target/classes:/home/lidaan/Downloads/Project/SNAP/snap-desktop/nbexec/target/classes org.esa.snap.nbexec.Launcher --clusters /home/lidaan/Downloads/Project/SNAP/s1tbx/s1tbx-kit/target/netbeans_clusters/s1tbx;/home/lidaan/Downloads/Project/SNAP/s1tbx/s1tbx-kit/target/netbeans_clusters/rstb --patches /home/lidaan/Downloads/Project/SNAP/snap-engine//target/classes;/home/lidaan/Downloads/Project/SNAP/s1tbx//target/classes;/home/lidaan/Downloads/Project/SNAP/s1tbx/rstb//target/classes Exception in thread "main" java.lang.IllegalArgumentException: patch pattern must contain a single wildcard '’: /home/lidaan/Downloads/Project/SNAP/snap-engine//target/classes;/home/lidaan/Downloads/Project/SNAP/s1tbx//target/classes;/home/lidaan/Downloads/Project/SNAP/s1tbx/rstb/$/target/classes
at org.esa.snap.nbexec.Launcher$Patch.parse(
at org.esa.snap.nbexec.Launcher.parseClusterPatches(
at org.esa.snap.nbexec.Launcher.main(

What caused it failed from source compile.