Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Merge Requirements:
The following requirements must be met for your pull request to be considered for review & merging. Until these requirements are met please mark the pull request as a draft.
Purpose
This PR adds the
Stackclass, which is used to create stacks ofPairobjects. This is a foundational class, which will be used by a near-futureSBASNetworkclass to automate the creation of connected, multi-annual seasonal SBAS stacks of interferograms. Stack is generalized and includes nothing related to SBAS baselines or assumptions tying scenes to specific dates.Pairs created for any purpose can be applied to aStack.Description
A
Stackobject contains 4+ lists ofPairobjects. EachPaircontains a pair ofasf_search.ASFProductobjects.Stackmember variables holding lists of Pairs:Stack.full_stack: Every possible pair based on the provided geo_reference sceneand
ASFSearchOptions. This forms a complete network of all representedasf_search.ASFProducts.Stack.remove_list: The list ofPairs to remove fromStack.full_stack, used to createStack.subset_stack.Stack.subset_stack: The resulting list after removingStack.Remove_listfromStack.full_stack. This creates a possibly disconnected network ofasf_search.ASFProducts.Stack.connected_substacks: A list of lists ofPairscontaining each disconnected component of aStack.subset_stack'sasf_search.ASFProductnetwork. A length of 1 indicates thatStack.subset_stackis a connected network ofasf_search.ASFProducts.Public Stack methods:
Stack.remove_pairs(): AddsPairs toStack.remove_listand removes them fromStack.subset_stack.Stack.add_pairs(): AddsPairs toStack.subset_stack. This either removes them fromStack.remove_list, or if not yet present in theStack, adds them toStack.full_stack.Stack.get_scene_ids(): A convenience method that returns a given list ofPairs as a list of tuples ofasf_search.ASFProductproduct IDs, which is useful when ordering on-demand processing via ASF's HyP3 or HyP3+ services.Snippet
See
examples/Stack.ipynbError/Warning/Regression Free
This code runs without any unhandled errors, warnings, or regressions.
Unit Tests
See
tests/Stack/test_Stack.pyTarget Merge Branch
Your pull request targets the
masterbranchChecklist