cgi-estonia-space / ALUs

GPU accelerated earth observation data processors
https://twitter.com/spacest372
GNU General Public License v3.0
23 stars 3 forks source link

Polynomial fit for each burst in flat earth substraction for coherence (GEN-3) #10

Closed kautlenbachs closed 1 year ago

kautlenbachs commented 1 year ago

Image

pr2718 commented 1 year ago

New implementation comparison with snap, full coherence chain with SFEP and full swath processing:

alus_beirut_ds_burst_poly_improved

Same scene with current development branch: alus_beirut_ds_old_sfep

Another dataset, new implementation per burst polynomial alus_belgium_ds_burst_poly_improved

Same scene as above with current development branch. snap_belgium_ds_old_sfep

The improvements are due to improvements to subtract earth phase, other parts of the full coherence chain stay the same.

pr2718 commented 1 year ago

Coregistration and substract flat earth phase are quite sensitive to orbit interpolation accuracy.

These pictures show comparing snap results when changing the orbit interpolation degree parameter. Subtract flath earth phase, orbit degree 3 vs 4: snap_coh_sfep_orb3vs4 Coregistraion, apply orbit degree 3 vs 4: snap_coreg_orb3vs4

Snap uses jblas for polynomial interpolation of orbit state vectors in apply orbit file:

https://github.com/jblas-project/jblas/blob/ae22fac3bd19addf834b1b9c012b3025d874293a/src/main/java/org/jblas/Solve.java#L48

The mathematical solution isn't exact and different method have different accuracy - this explains a lot of the differences between ALUs and snap.

Purely changing the Ax=B solver method changes accuracy:

https://eigen.tuxfamily.org/dox/group__TutorialLinearAlgebra.html

FullPivHouseHolderQr: fullpiv_householder_qr

JacobiSVD: jacobisvd