GeoscienceAustralia / ga_sar_workflow

InSAR processing workflow used by Geoscience Australia
Apache License 2.0
3 stars 1 forks source link

Port/redesign FLAT() for the python workflow #101

Closed truth-quark closed 4 years ago

truth-quark commented 4 years ago

This large step needs to be broken up into smaller parts and reimplemented in Python: https://github.com/GeoscienceAustralia/gamma_insar/blob/develop/process_ifg.bash#L170-L364

@tfuhrmann & @adeane-ga are going to add some comments for the new design.

truth-quark commented 4 years ago

From Chandrakanta Ojha on slack: This is an important function in the processing and consists of several imp steps. But this could be decomposed into smaller parts logically. I am not sure how much convincing theses but here are few suggestion that may help understanding the flow of the function used on the code. We may consider to make it 3 separate sub-processing steps and the steps could start from (1) initial baseline calculation, initial phase simulation from DEM then initial flattened of interferogram (2) refining the baseline model and second flattened interferogram using iterative method (3) Refine of baseline using ground control point, coherence file generation, phase unwrapping of interferograms, and again phase simulation using DEM, and final flattening of the unwrapped interferometric phase.

tfuhrmann commented 4 years ago

You can skip the iterative baseline refinement part which comes after the if-statement "if [ $ifg_base_iter_flag == yes ]; then". This was only used for InSAR data with large spatial baselines (i.e. ALOS and Envisat data) for test purposes and is not required for the Sentinel-1 workflow. Based on that it might not be necessary at all to split into smaller parts. If so you can split into two parts as suggested by Chandra (i.e. (1) and (3) in Chandra's list): (1) initial flattened interferogram: everything between 'base_orbit' and the second call of 'SLC_diff_intf' including the clean up of files after 'if [ $clean_up == yes ]; then' (2) final flattened interferogram from refined baseline model using ground control points: everything between 'if [ $sensor = CSK ] && [ $sensor_mode = SP ]; then' and 'base_perp'.

truth-quark commented 4 years ago

If so you can split into two parts as suggested by Chandra (i.e. (1) and (3) in Chandra's list):

Ok, I'll work with parts 1 & 3 for now.

(1) initial flattened interferogram: everything between 'base_orbit' and the second call of 'SLC_diff_intf' including the clean up of files after 'if [ $clean_up == yes ]; then' (2) final flattened interferogram from refined baseline model using ground control points: everything between 'if [ $sensor = CSK ] && [ $sensor_mode = SP ]; then' and 'base_perp'.

I'd like to give the Py functions some nice descriptive names, but lack the InSAR context to know what is being done. Would generate initial flattened interferogram and generate final flattened interferogram suffice?

tfuhrmann commented 4 years ago

If so you can split into two parts as suggested by Chandra (i.e. (1) and (3) in Chandra's list):

Ok, I'll work with parts 1 & 3 for now.

(1) initial flattened interferogram: everything between 'base_orbit' and the second call of 'SLC_diff_intf' including the clean up of files after 'if [ $clean_up == yes ]; then' (2) final flattened interferogram from refined baseline model using ground control points: everything between 'if [ $sensor = CSK ] && [ $sensor_mode = SP ]; then' and 'base_perp'.

I'd like to give the Py functions some nice descriptive names, but lack the InSAR context to know what is being done. Would generate initial flattened interferogram and generate final flattened interferogram suffice?

yes, fine with me.