isce2 icon indicating copy to clipboard operation
isce2 copied to clipboard

Additional interferogram network options for Sentinel Stack processor

Open falkamelung opened this issue 3 years ago • 4 comments

stackSentinel.py currently offers for network generation only the --num_connections option. For example, --num_connections 4 will create for each date 4 nearest-neighbor interferograms.

It would be good to have the ability to skip short-term interferograms and to add several interferograms with at least 1 year temporal baseline.

I'd suggest to change the --num_connections option as follows:

--num_connections #_of_connections  time_lag
--num_connections #_of_connections1  time_lag1   #_of_connections2  time_lag2

With this

--num_connections  4 40

would create 4 connections with 40 days temporal baseline and more (0-40, 0-52, 0- 64, 0-76_ day interferograms. The option

--num_connections  4 0  2 180 1 365

would create 4 short-temporal baseline interferograms, 2 180-days or longer interferograms, and 1 365-days or longer interferograms Obviously,

--num_connections  4 0

would be the same as --num_connections 4, i.e. we would have full backward compatibility.

We should should add options such as --delaunay with a scaling parameters.

Let me know your thoughts and about any other options that need to be implemented.

falkamelung avatar Mar 12 '22 05:03 falkamelung

Great idea. In general we could have a network selection function which we could use here. Looks like networkx has some nice functionalities. Also we have some select_pairs functions in mintpy that we could reuse here and build on.

hfattahi avatar Mar 12 '22 16:03 hfattahi

Thank you for the suggestion. NetworkX looks great, but the MintPy function is probably easier to implement. Assuming that we don't want a dependency of ISCE on MintPy we probably will copy the network.py from MintPy to ISCE and commit there. Let me know if you seen anything that could be of concern.

falkamelung avatar Mar 12 '22 18:03 falkamelung

I would love to see this functionality added, as it has been one of the main issues I've had with the stack processor. I implemented something along these lines for automating the pair creation with topsApp, where I could define a maximum time difference allowed for the formation of date pairs: https://github.com/mjacqu/ISCE/blob/master/tops.py make_pairs function (example here: https://github.com/mjacqu/ISCE/blob/master/topsrun.py) I think ideally one could define both the minimum and maximum temporal baselines, and all pairs matching that constraint would be run.

mjacqu avatar Apr 07 '22 13:04 mjacqu

In the GMTSAR, they have an script to select pairs according to the given threshold in time and baseline(select_pairs.sh). I think maybe it will help us. But in the first we need to calculate the baseline.

ThreeIcug avatar May 26 '22 14:05 ThreeIcug