AutoRIFT + Geogrid Issue with Sentinel-1 TOPS Mode Processing (posted on the AutoRIFT github channel too, looking for some advice)
Dear InSAR Community,
I have a question regarding the use of AutoRIFT with Geogrid.
I have processed Sentinel-1 TOPS-mode data (subswaths 2 and 3) with denseoffsets set to true in the input file to generate full SLCs which are inputs for AutoRIFT.
(Note: I previously generated dense offsets using AMPCOR, and I observed azimuth and range offsets. Now, I am trying to reproduce these offsets using AutoRIFT to compare the performance of both methods. I assume that the error I am encountering with AutoRIFT is due to my lack of knowledge of the tool.)
I would like to share the error message I am receiving and ask if anyone has encountered and resolved this issue. Any insights or suggestions would be greatly appreciated!
AutoRIFT When I run autoRIFT directly,here is what I get... autoRIFT starts and ends after a while but no files are being stored.
testautoRIFT_ISCE.py -m reference.slc.full -s secondary.slc.full
2025-03-13 22:23:12,352 - root - DEBUG - Creating readonly ISCE mmap with file = reference.slc.full bands = 1 width = 46747 length = 14049 scheme = BIP dtype = CFLOAT
2025-03-13 22:23:12,356 - root - DEBUG - Creating readonly ISCE mmap with file = secondary.slc.full bands = 1 width = 46747 length = 14049 scheme = BIP dtype = CFLOAT
Preprocessing filter width 5 Using preprocessing methods ['hps', 'hps'] Pre-process Start!!! Using Wallis Filter Width: 5 Pre-process Done!!! 4.201286554336548 Uniform Data Type Done!!! 13.169963836669922
AutoRIFT Start!!!
/home/hassan/miniconda3/envs/isce2/lib/python3.8/site-packages/isce/components/contrib/geo_autoRIFT/autoRIFT/autoRIFT.py:1468: RuntimeWarning: divide by zero encountered in true_divide
DxMadmin = np.ones(Dx.shape) / OverSampleRatio / SearchLimitX * 2;
/home/hassan/miniconda3/envs/isce2/lib/python3.8/site-packages/isce/components/contrib/geo_autoRIFT/autoRIFT/autoRIFT.py:1469: RuntimeWarning: divide by zero encountered in true_divide
DyMadmin = np.ones(Dy.shape) / OverSampleRatio / SearchLimitY * 2;
/home/hassan/miniconda3/envs/isce2/lib/python3.8/site-packages/numpy/lib/nanfunctions.py:1119: RuntimeWarning: All-NaN slice encountered
r, k = function_base._ureduce(a, func=_nanmedian, axis=axis, out=out,
/home/hassan/miniconda3/envs/isce2/lib/python3.8/site-packages/isce/components/contrib/geo_autoRIFT/autoRIFT/autoRIFT.py:1399: RuntimeWarning: Mean of empty slice
C = np.nanmean(B,axis=0)
AutoRIFT Done!!!
79.58786702156067
/home/hassan/miniconda3/envs/isce2/lib/python3.8/site-packages/isce/applications/testautoRIFT_ISCE.py:396: DeprecationWarning: np.bool is a deprecated alias for the builtin bool. To silence this warning, use bool by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use np.bool_ here.
Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
noDataMask = noDataMask.astype(np.bool)
What dos this output log mean
GeoGrid
I tried Geogrid command line code and specified reference secondary coregistered slcs that I transformed to acceptable format of Geogrid, and also a dem in xy cartesian coordinates (m) to do geogrid first but it fails with the error. (I tried before transformation to, still the same error)
testGeogrid_ISCE.py -m /home/hassan/ISCE2-Tops/insar/merged/reference_grd.tif -s /home/hassan/ISCE2-Tops/insar/merged/secondary_grd.tif -d /home/hassan/ISCE2-Tops/insar/merged/dem_nztm.tif
The error i get is as follows:
Traceback (most recent call last): File "/home/hassan/miniconda3/envs/isce2/lib/python3.8/site-packages/isce/applications/testGeogrid_ISCE.py", line 392, in main() File "/home/hassan/miniconda3/envs/isce2/lib/python3.8/site-packages/isce/applications/testGeogrid_ISCE.py", line 386, in main metadata_m = loadMetadata(inps.indir_m) File "/home/hassan/miniconda3/envs/isce2/lib/python3.8/site-packages/isce/applications/testGeogrid_ISCE.py", line 131, in loadMetadata info.sensingStart = min([x.sensingStart for x in frames]) ValueError: min() arg is an empty sequence
Looking ahead to advices and people working currently on autoRIFT or have done in past. Thanks a bunch.