-
Notifications
You must be signed in to change notification settings - Fork 256
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
integrate ionospheric correction into smallbaselineApp
#1172
Conversation
Hi @yuankailiu and @hfattahi, I finally got some time to integrate the ionospheric correction into I have tested this locally for a stack of alos2 interferograms with ionospheric corrections using the following template options, processed with alosStack, and everything looks fine to me. @yuankailiu could you test it with a stack from topsStack? mintpy.ionosphericDelay.method = split_spectrum
mintpy.ionosphericDelay.excludeDate12 = 190313-210728,190424-210728 |
+ utils.arg_utils: add `get_dest_option_str_dict()` to grab the projection relationship between option dest and option strings. + cli.ifgram_inversion.read_template2inps(): ensure the manually specified options in command line have higher priorities than the options in the template file
+ smallbaselineApp: add a new `correct_ionosphere` step with the following new template options, to support ionospheric correction using isce2 split spectrum results - mintpy.ionosphericDelay.method - mintpy.ionosphericDelay.excludeDate - mintpy.ionosphericDelay.excludeDate12 + add `cli/iono_split_spectrum.py` for the cmd interface interaction + add `iono_split_spectrum.py` for the actual workflow of estimating/correcting iono time-series by calling the following individual scripts: - modify_network - reference_point - ifgram_inversion - diff + add the new script to the entrypoint and sub parsers via changes in the following scripts: - pyproject.toml - src/mintpy/__main__.py + `defaults/template.py`: add `correct_ionosphere` to the STEP_LIST
smallbaselineApp
: add correct_ionosphere
step iono_split_spectrum
and integrate into smallbaselineApp
as the correct_ionosphere
step
iono_split_spectrum
and integrate into smallbaselineApp
as the correct_ionosphere
step smallbaselineApp
Great! All looks good to me. I've tested from my side with a stack of ionosphere pairs
where my config is here:
So the script dropped two pairs and run the inversion with no SBAS weights ( Also, as we chatted, theoretical corrections (external model-based) come before empirical corrections (data-driven). Thus you put iono correction at step after SET and troposphere steps, but before the estimation of ramps and topographic residuals. It looks like everything works as expected! @yunjunz , thank you for this long waited PR so that we don't need to manually run scripts one-by-one. |
A logistical discussion: For convenience, one thing in the future we can consider is to support importing ionosphere timeseries from stack processor outputs directly? I am not sure. This is just an idea. At least for topsStack, as what I know, Cunren's code produces a stack of ionosphere pairs and also inverts them in There is a clear repetative workflow here and there in different environments. Having the whole ionosphere stack imported to Mintpy gives us more flexibility with the whole dataset but the file size of this ionStack.h5 is big like 2GB. Getting the inspection and inversion done in There is also burstRamp phase estimate of the ionosphere as well. The current
Thus the final product are burstRamp timeseries, not burstRamp interferograms. We cannot take them as a burstRamp ifgramStack input into Mintpy consistent as ionStack. So right now I do plotting inspection & manual removal & SBAS inversion in isce2, getting both ionosphere phase and brustRamp timeseries from there, then import these timeseries into MintPy. Anyway, enough logistics... |
Thank you @yuankailiu for the testing and discussions. I agree with you. Here are the to-do list I could think of:
|
Description of proposed changes
This PR integrates the ionospheric correction into the routine workflow of
smallbaselineApp
via a new stepcorrect_ionosphere
. The detailed changes are as below:smallbaselineApp: add a new
correct_ionosphere
step with the following new template options, to support ionospheric correction using split spectrum results fromisce2
stack processingadd
cli/iono_split_spectrum.py
for the cmd interface interactionadd
iono_split_spectrum.py
for the actual workflow of estimating/correcting iono time-series by calling the following individual scripts:add the new script to the entrypoint and sub parsers via changes in the following scripts:
pyproject.toml
src/mintpy/__main__.py
defaults/template.py
: addcorrect_ionosphere
to theSTEP_LIST
Reminders