The software makes use of Graphic Processing Unit (GPUs) to carry out Geometric coregistration, resampling, ESD and Coherence Estimation on Sentinel-1 TOPS data. Relevant algorithm details and speed test is reported in the paper: "GPU accelerated interferometric SAR processing for Sentinel-1 TOPS data" (2019), Computers and Geosciences, Doi: https://doi.org/10.1016/j.cageo.2019.04.010. There is also a speed test reported at here .
The code is developed under windows operating system .
For a Linux user, you may go to the project by Guido Lemoine to check the linux version of this code.
A GPU (with >=3.0 compute capability) is sufficient. Double precision computing capability is appreciated to improve the accuracy of coregistration.
process_dir= Current Working Directory
masterpath=The Path to the Master Image
slavepath=The Path to the Slave Image
preciseOrbitMaster=The Path to the Master Precise Orbit File
preciseOrbitSlave=The Path to the Slave Precise Orbit File
SpecificDemPath=The Path to DEM File (Tiff format only)
burst0=The Start Burst
burstN=The Stop Burst
firstsubswath=The Start Proccesing Subswath
lastsubswath=The End Proccesing Subswath
polarisation=Specific polarisation types
library dependency:
1.TinyXml2:
Please go to here.
2.GDAL.
Compilation using VS and cuda toolkit:
Create a new empty win console application project (without pre-compiled header).
add all the source code files and two additional files tinyxml2.cpp and tinyxml2.h (from library TinyXml2)
Link the CUDA toolkit to the project: right click the project-> build customization->click CUDA toolkit.
Specify all the .cu files as the CUDA C/C++ files, so these files can be included into the compilation.
Set the include directories (include TinyXml2 and GDAL libraries), and lib directories (include GDAL libs).
link to the GDAL libraries and also to CUDA libraries (cudart.lib; cusolver.lib; cublas.lib).
Project -> Properties -> Configuration Properties -> CUDA C/C++ -> Device -> Code Generation -> compute_35, sm_35 (higher than 35, and choose an appropriate option according to your card’s compute capability);
Note : "This function or variable may be unsafe. Consider using sprintf_s instead", please include these two lines in the Pre-processor Definitions : _CRT_SECURE_NO_WARNINGS , _CRT_NONSTDC_NO_DEPRECATE.
If you meet some specific problems, please contact me!
filippoyu0717@gmail.com or yanghai.yu@whu.edu.cn