Skip to content

Conversation

@rtburns-jpl
Copy link
Member

@rtburns-jpl rtburns-jpl commented Jul 24, 2025

Merging upstream changes from Lijun for PyCuAmpcor, and changes from @vbrancat to fix the runconfigs and parsers to support his newly-added parameters

See corresponding PR in isce2 (isce-framework/isce2#922):

PyCuAmpcor Version 2 introduces a new workflow inspired by GrIMP/SpeckleSource, in addition to the original ROIPAC/ampcor workflow. Below is an overview of the new workflow and additional improvements:

Key Features of the New GrIMP/SpeckleSource Workflow:

* Starts with an anti-aliasing oversampled secondary chip over the entire search range.

* Adds extra margins to facilitate correlation surface extraction.

* Offers optional double-precision computations (also extended to the ROIPAC/ampcor workflow for consistency).

The GrIMP/SpeckleSource workflow may be slower than ROIPAC/ampcor due to increased computational demands. However, it may improve accuracy in scenarios with low signal-to-noise ratio (SNR). More details on the workflows and how to choose can be found at contrib/PyCuAmpcor/README.md.

Other Improvements

* Introduced an option to fix the starting pixel location, which is ideal for comparing results from different window sizes.

* Added an example script for plotting the offset field, making it easier for users to visualize results.

* Included correlation peak values in the output, alongside SNR and covariance, providing additional accuracy measures.

* Resolved a memory deallocation issue that occurred when the run procedure was called repeatedly within a single script.

@hfattahi hfattahi requested a review from vbrancat July 29, 2025 07:00
@hfattahi
Copy link
Contributor

Thanks @rtburns-jpl . Would you please add the description from the parent PR in isce2 as well as all the changes that @vbrancat contributed.
Also would you or @vbrancat document some of the tests done for this PR.

@hfattahi
Copy link
Contributor

@lijun99 you may want to take a look at this PR.

@lijun99
Copy link

lijun99 commented Jul 29, 2025

Thanks @rtburns-jpl ! There is one more bug fix, fix the distance in variance estimate in one-pass workflow. Also, to make it easier for inclusions in both isce2 and isce3, I plan to move future developments of pycuampcor to the independent repo cuAmpcor. Please decide whether you prefer to copy the code over to isce, or use submodule like this.

@lijun99
Copy link

lijun99 commented Jul 29, 2025

Also, there are more spelling errors, which are corrected in this commit.

@rtburns-jpl
Copy link
Member Author

Thanks! Yeah, I agree consuming pycuampcor from a separate repo would make updating it much easier. I'd also like to contribute my CPU-only translation of pycuampcor to your repo, if you're interested.

@lijun99
Copy link

lijun99 commented Jul 29, 2025

Sounds great, @rtburns-jpl ! I just sent a collaborator request for cuAmpcor. Maybe we should use a new name like ampcor, under isce-framework or earthdef (Mark's group).

Copy link
Contributor

@vbrancat vbrancat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@hfattahi
Copy link
Contributor

hfattahi commented Aug 7, 2025

@lijun99 After our upcoming delivery we should discuss the modular approach where PyCuAmpcor will be an external module. That will definitely be a preferred approach over long run.

Copy link
Contributor

@hfattahi hfattahi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @lijun99 @rtburns-jpl and @vbrancat for this extensive PR, testing and verification. Took a long way to get it here. Based on the test results from @vbrancat LGTM.

@hfattahi
Copy link
Contributor

@rtburns-jpl Let's NOT merge this PR for now as the MCR is not approved.
@vbrancat let's please have an independent PR for increasing the memory buffer to allows large parameters for very fast ice.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants