Remove the ionospheric phase mask from the wrapped interferogram#277
Merged
Conversation
added 30 commits
September 19, 2023 20:40
Contributor
Author
|
@oberonia78 and @seongsujeong can you take a look of this PR? I have tested, it looks good. Thanks |
seongsujeong
approved these changes
May 28, 2026
Contributor
seongsujeong
left a comment
There was a problem hiding this comment.
LGTM. Just few nit picks. Please make sure to address them before meeting.
| mask_description_suffix = ( | ||
| mask_description_no_iono | ||
| if ds_group_name == pixeloffsets_group_name | ||
| if ds_group_name in [wrapped_group_name,pixeloffsets_group_name] |
Contributor
There was a problem hiding this comment.
Suggested change
| if ds_group_name in [wrapped_group_name,pixeloffsets_group_name] | |
| if ds_group_name in [wrapped_group_name, pixeloffsets_group_name] |
| self.add_interferogramformation_to_algo_group() | ||
|
|
||
| def add_interferogram_to_swaths_group(self): | ||
| def add_interferogram_to_swaths_group(self,is_unwrapped=False): |
Contributor
There was a problem hiding this comment.
Suggested change
| def add_interferogram_to_swaths_group(self,is_unwrapped=False): | |
| def add_interferogram_to_swaths_group(self, is_unwrapped=False): |
| self.add_ionosphere_to_procinfo_params_group() | ||
|
|
||
| def add_interferogram_to_swaths_group(self): | ||
| def add_interferogram_to_swaths_group(self,is_unwrapped=False): |
Contributor
There was a problem hiding this comment.
Suggested change
| def add_interferogram_to_swaths_group(self,is_unwrapped=False): | |
| def add_interferogram_to_swaths_group(self, is_unwrapped=False): |
Tyler-g-hudson
pushed a commit
that referenced
this pull request
May 28, 2026
* sm r3.4 * change the SM commit id for R4.0.2 * remove the mask description for the wrapped ifgram * remove the tmp folder * fix minors --------- Co-authored-by: Xiaodong Huang <xhuang@nisar-adt-dev-3.jpl.nasa.gov>
Tyler-g-hudson
added a commit
that referenced
this pull request
Jun 2, 2026
commit 83d28dc1d9d4c39fd073d610058c996cbe5d807c
Author: SamNemo <11642807+nemo794@users.noreply.github.com>
Date: Tue Jun 2 14:03:00 2026 -0700
Typo: Make InSAR schema QA groups not required (#281)
Co-authored-by: Samantha C. Niemoeller <samantha.c.niemoeller@jpl.nasa.gov>
commit 9215ab6ed0d367a95cc8b6c4ee216d7c9b96ec9f
Author: xhuang-jpl <118782850+xhuang-jpl@users.noreply.github.com>
Date: Mon Jun 1 18:33:57 2026 -0700
Update the Soil Moisture SAS version to v0.4.2 (#283)
* sm r3.4
* change the SM commit id for R4.0.2
* publish sm sas 0.4.2
---------
Co-authored-by: Xiaodong Huang <xhuang@nisar-adt-dev-3.jpl.nasa.gov>
commit a000a4ff82eb07620de97f7794560691f5b6b3a8
Author: Seongsu Jeong <27862199+seongsujeong@users.noreply.github.com>
Date: Thu May 28 15:24:13 2026 -0700
Reprojecting polar stereographic watermask to radargrid (#271)
* fix a bug in projecing water to cryosphere region
* fix issue in unitttest
* extend the input raster's EPSG beyond 4326
* Apply suggestion from code review
* Apply suggestion from PR review
* apply suggestion from PR review
---------
Co-authored-by: Jungkyo Jung <56169931+oberonia78@users.noreply.github.com>
Co-authored-by: Jungkyo Jung <jungkyoj@nisar-adt-dev-5.jpl.nasa.gov>
commit bb7cfdaff765b1217361be964fd63eed2cb43463
Author: SamNemo <11642807+nemo794@users.noreply.github.com>
Date: Thu May 28 12:13:51 2026 -0700
Update `nisarqa` to v17.0.0 (#279)
* update nisarqa 16.0.1 -> 17.0.0
* update runconfigs for nisarqa 17.0.0
---------
Co-authored-by: Samantha C. Niemoeller <samantha.c.niemoeller@jpl.nasa.gov>
commit fbc49b0cba725766b02c8cf499dd017925e7da44
Author: SamNemo <11642807+nemo794@users.noreply.github.com>
Date: Thu May 28 11:20:53 2026 -0700
Update to PIX 1.5.0 product specification (#278)
* Update to PIX 1.5.0 product specification
* Update GSLC, GCOV, STATIC XMLs with spec version 1.5.0
---------
Co-authored-by: Samantha C. Niemoeller <samantha.c.niemoeller@jpl.nasa.gov>
commit 08d915b1ada9d3b94498f7313b95cbcf619cbce4
Author: xhuang-jpl <118782850+xhuang-jpl@users.noreply.github.com>
Date: Thu May 28 10:35:53 2026 -0700
Remove the ionospheric phase mask from the wrapped interferogram (#277)
* sm r3.4
* change the SM commit id for R4.0.2
* remove the mask description for the wrapped ifgram
* remove the tmp folder
* fix minors
---------
Co-authored-by: Xiaodong Huang <xhuang@nisar-adt-dev-3.jpl.nasa.gov>
commit 3fb1aa2e70d6ffe160f1a097a37fc4a7fbfad1f1
Author: Jungkyo Jung <56169931+oberonia78@users.noreply.github.com>
Date: Wed May 27 11:26:34 2026 -0700
add ionosphere mask to InSAR mask (#273)
* add ionosphere mask to mask
* update description
* fix bug
* update description
* remove mask description for offset
---------
Co-authored-by: Jungkyo Jung <jungkyoj@nisar-adt-dev-5.jpl.nasa.gov>
commit 4956242963135a5528b4de97185c653ff3e86302
Author: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
Date: Wed May 27 11:25:28 2026 -0500
Don't mutate RX weights on every call to form_pattern. (#274)
commit 2919e1c976922cbac82ab19093cabf8d71698e8e
Author: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
Date: Wed May 20 11:21:57 2026 -0500
Scale mixed-mode filter by bandwidth. (#269)
commit 3db3963144b2c708dd89e35f2d299554db35f17c
Author: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
Date: Wed May 20 10:05:27 2026 -0500
Fix recently-introduced mixed-mode bug (#268)
commit df9af9a7ebfcef5ab39a6c66f01310ba3d5b2bde
Author: Gustavo H. X. Shiroma <52007211+gshiroma@users.noreply.github.com>
Date: Wed May 13 13:06:55 2026 -0700
Expose sensing start/end times and starting/ending ranges in the STATIC runconfig (#205)
* disable polarimetric symmetrization by default
* revert changes to `symmetrize_cross_pol_channels`
* Update GCOV and GSLC specification XMLs
* Revert changes to the GCOV and GSLC specification XMLs
* Make the radar grid azimuth and range spacing parameters configurable in the static layers runconfig
* Make the radar grid azimuth and range spacing parameters configurable in the static layers runconfig (2)
* Make the radar grid azimuth and range spacing parameters configurable in the static layers runconfig
* Expose sensing start/end times and starting/ending ranges in the STATIC workflow
* Expose sensing start/end times and starting/ending ranges in the STATIC workflow
* rename some radar grid parameters to match focus
* rename some radar grid parameters to match focus (2)
* add margin to user-specified radar-grid extents, if provided
* enable fractional precision for radargrid start and end times
* convert start & end date-time string to isce3.core.DateTime before adding TimeDelta
* revert import changes
* remove unnecessary imports
* Revert changes
* Revert changes to the docstrings
* Update share/nisar/schemas/static.yaml
* Update share/nisar/defaults/static.yaml
* Update python/packages/nisar/workflows/static.py
* Update python/packages/nisar/workflows/static.py
commit 9552d682a8a70a46c543d58f195aa56701c2b163
Author: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
Date: Thu May 7 19:12:28 2026 -0500
Alternative frequency domain RFI filter (tone-rank) (#257)
* Implement a crude frequency-domain RFI filter.
* implement tone-rank as an option in RSLC workflow
* modify algorithm name check
* fix import error, fix issue with all-zero data
* Replace nulls with lerp or noise instead of zero.
* Fix phase corruption and RFI propagation bugs in fill_missing().
* Add configurable RFI replacement options for tone-rank algorithm
The tone-rank RFI mitigation algorithm now supports two new user-facing
configuration parameters that control how detected RFI samples are replaced:
1. interpolate (bool): Whether to attempt linear/nearest-neighbor
interpolation for RFI samples. If False, RFI samples are replaced
directly with fill_value.
2. fill_value (enum): Fallback value when interpolation fails or is disabled.
Options are "noise" (random Gaussian) or "zero".
This enables three useful workflows:
- interpolate=False, fill_value="zero": Skip interpolation, fill with zeros
- interpolate=True, fill_value="zero": Use lerp/nn, fallback to zero
- interpolate=True, fill_value="noise": Default (unchanged behavior)
The default values (interpolate=True, fill_value="noise") preserve the
existing behavior of attempting linear interpolation, falling back to
nearest-neighbor, and ultimately filling with random noise matched to the
estimated signal level.
Changes:
- Updated fill_missing() to accept and use interpolate and fill_value params
- Updated remove_loud_tones() to accept and forward these parameters
- Added schema validation in focus.yaml
- Added defaults in focus.yaml
- Comprehensive docstrings added
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Add docstring for exp_from_quantile
* Add docstring to get_spectral_mask function
Documents the RFI detection algorithm using lifted exponential model,
including parameters, returns, and statistical methodology.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Add means return value to remove_loud_tones and complete docstring
The remove_loud_tones function now returns estimated mean signal power
per block as its first return value. The means array contains 1/λ where
λ is the rate parameter from the lifted exponential model fit.
Added comprehensive docstring documenting all parameters (including
previously undocumented z, block_dims, reference_quantile, bandwidth,
detect_only, zout) and all return values (means, isr, f, hits).
Updated call site in focus.py to receive the new means return value.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Use max instead of sum
* Add data axes.
* Normalize hit count by pulse count.
* Fix hit count data type
* Avoid divide by zero
* Write tone-rank metadata to RSLC file.
* Add docstring for write_tone_rank_results and fix attribute descriptions
- Added comprehensive docstring documenting all parameters for the
write_tone_rank_results function that writes RFI detection results to HDF5
- Fixed swapped dataset attribute descriptions: ds_hits now correctly
describes 'Fraction of pulses with detected RFI' and ds_isr now correctly
describes 'Interference-to-signal ratio'
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Update unit test to match API changes.
* Update unit test to match updated normalization of hit count.
* Parameterize tone-rank test to exercise single-row block edge case
The test now runs with m=513 (creating a final block with only 1 row)
and m=521 (the original case). This ensures the fill_missing method
handles blocks with insufficient rows for interpolation.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Make cpi_slice_gen public.
* Use some rows twice for consistent block size.
* Document double-clean behavior for new slicing approach when modifying data in-place.
* Fix fill_missing even though we now avoid the m==1 condition.
* Don't use a time-domain mask in the frequency domain!
* Add max_gap_fraction parameter to tone-rank configuration
Adds max_gap_fraction parameter to control how TX gaps affect
tone-rank RFI detection. Value controls the maximum portion of a row
that can be masked by a TX gap before its spectrum is considered
invalid (0.0: any gap invalidates row, 1.0: ignore gap mask).
Default value is 0.5 with validation range [0.0, 1.0].
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Fix a typo.
* Document the narrow band assumption.
* Include arithmetic correction for ISR.
* Clarify docstring for exp_from_quantile
* Use single precision for all metadata.
* Generate a static pool of noise and just scale/offset per block to avoid magic numbers.
* Remove a now-unnecessary statement.
* Fix units in unit test.
* Add Monte Carlo validation of exp_from_quantile to unit tests.
* Document tone-rank RFI algorithm parameters in YAML files
Add descriptions for the tone-rank algorithm and its three main parameters
(block_dims, nominal_false_positive_rate, reference_quantile) in both the
default config and schema files.
* Change default fallback fill value to zero.
---------
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
commit c5da5ce70d1e978d3622fef8073027dd38faec25
Author: Hirad Ghaemi <92554775+rad-eng-59@users.noreply.github.com>
Date: Thu May 7 11:17:02 2026 -0700
Modify QP Logic in Parsing CalType and ChirpCorrelator (#262)
* Change quad-pol logic in "chirpcorrelator_caltype_from_raw" of Raw
* Change quad-pol logic in NEB of focus.py
* Change quad-pol logic in noise estimator from L0B
* Handle lack of any sniffer pulses in noise_estimation_from_raw.py
* Add some comments for QP in Raw.py
* Add some notes to docstring of chirp correlator and caltype parser
commit 89dcc849c82b404f8f4f251d36c4aa1ccffe1977
Author: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
Date: Thu May 7 11:29:59 2026 -0500
Fix RSLC mask in mixed mode cases (#263)
* Use one-past final pulse for raw bounding box.
* Don't guess--just force azimuth continuity.
* Increase default threshold and improve logging.
* Fix schema
* Revert "Use one-past final pulse for raw bounding box."
This reverts commit 000ccafcb5f6ec1e5b0b81c29d2a150eebab09e9.
* Don't assume files are sorted by user. Log negative PRI if it happens.
* Only warn if time step is actually negative. Update comment.
* Don't spam log with 10s DWP updates (dt==0)
* Prefer latest time stamp if they're inconsistent.
Co-authored-by: Hirad Ghaemi <92554775+rad-eng-59@users.noreply.github.com>
---------
Co-authored-by: Hirad Ghaemi <92554775+rad-eng-59@users.noreply.github.com>
commit 991aff97183681a7388e337d2a60becc267fa4ea
Author: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
Date: Thu May 7 10:36:14 2026 -0500
Pin an older micromamba version due to solver hanging in 2.x (#264)
commit 60614821b235b9a703279ec43fcf17e991bcad6f
Author: Gustavo H. X. Shiroma <52007211+gshiroma@users.noreply.github.com>
Date: Tue May 5 11:19:12 2026 -0700
Fix GCOV grid path for SSAR instrument (#236)
* disable polarimetric symmetrization by default
* revert changes to `symmetrize_cross_pol_channels`
* Update GCOV and GSLC specification XMLs
* Revert changes to the GCOV and GSLC specification XMLs
* fix GCOV metadata path for SSAR instrument
* fix GCOV metadata path for SSAR instrument
commit bfe0c1a99acc498ad661a46956b749460b5e7c26
Author: Gustavo H. X. Shiroma <52007211+gshiroma@users.noreply.github.com>
Date: Thu Apr 23 14:10:44 2026 -0700
Enable selection of range spacing or azimuth time interval in the STATIC runconfig (#178)
* disable polarimetric symmetrization by default
* revert changes to `symmetrize_cross_pol_channels`
* Update GCOV and GSLC specification XMLs
* Revert changes to the GCOV and GSLC specification XMLs
* Make the radar grid azimuth and range spacing parameters configurable in the static layers runconfig
* Make the radar grid azimuth and range spacing parameters configurable in the static layers runconfig (2)
* Make the radar grid azimuth and range spacing parameters configurable in the static layers runconfig
* improve messages to the user
* Update share/nisar/defaults/static.yaml
Co-authored-by: Heresh Fattahi <hersh.fattahi@gmail.com>
* Validate runconfig az/rg spacing
---------
Co-authored-by: Heresh Fattahi <hersh.fattahi@gmail.com>
commit 89a69a851452355cba4fd19e8ed9cba4e2178a5d
Author: Gustavo H. X. Shiroma <52007211+gshiroma@users.noreply.github.com>
Date: Thu Apr 23 09:46:55 2026 -0700
Update the STATIC workflow to load the DEM only where needed (#206)
* disable polarimetric symmetrization by default
* revert changes to `symmetrize_cross_pol_channels`
* Update GCOV and GSLC specification XMLs
* Revert changes to the GCOV and GSLC specification XMLs
* Make the radar grid azimuth and range spacing parameters configurable in the static layers runconfig
* Update the STATIC workflow to load the DEM only where needed.
* revert changes related to radar grid parameters
* Update python/packages/nisar/workflows/static.py
Co-authored-by: Tyler G. Hudson <tyler.g.hudson@gmail.com>
---------
Co-authored-by: Tyler G. Hudson <tyler.g.hudson@gmail.com>
commit 77dbcb59f4d59452fab510bb2065236ff6a149ad
Author: Gustavo H. X. Shiroma <52007211+gshiroma@users.noreply.github.com>
Date: Wed Apr 22 17:34:09 2026 -0700
Update postings in STATIC layers granule ID to decimeters (#215)
* disable polarimetric symmetrization by default
* revert changes to `symmetrize_cross_pol_channels`
* Update GCOV and GSLC specification XMLs
* Revert changes to the GCOV and GSLC specification XMLs
* Update postings in STATIC layers granule ID to decimeters
* Update postings in STATIC layers granule ID to decimeters
* Update postings in STATIC layers granule ID to decimeters; fix unit tests
* Update postings in STATIC layers granule ID to decimeters; fix unit tests
* Update postings in STATIC layers granule ID to decimeters; fix unit tests
* Update postings in STATIC layers granule ID to decimeters only for products in projected cordinates
* Update postings in STATIC layers granule ID to decimeters only for products in projected cordinates
commit d14412910a88df0207d7a9711ce270113463357f
Author: xhuang-jpl <118782850+xhuang-jpl@users.noreply.github.com>
Date: Wed Apr 22 14:15:17 2026 -0700
Add an optional azimuth offset filter after the outlier detection for the rubbersheeting (#256)
* sm r3.4
* change the SM commit id for R4.0.2
* remove redundant imports
* add the idw
* update the schema
* add the connected components function
* update the default value
* run isort
* fix bugs
* update the crossmul main
* add subswath mask
* add the subswath mask to the runconfig
* remove unused functions
* Apply suggestions from code review
Co-authored-by: xhuang-jpl <118782850+xhuang-jpl@users.noreply.github.com>
* update all comments
* add the aggresive filter for the azimuth offsets
* remve the tmp folder
* Optimize apply_filter memory usage and add even window size support
- Replace reshape() with axis=(2,3) in apply_filter to eliminate memory copy
- Fixes MemoryError on large arrays (89.5 GB allocation avoided)
- 1.4x performance improvement
- Numerically identical results
- Add support for even window sizes (4, 6, 8, etc.) via asymmetric padding
- Remove warning suppression to surface potential data quality issues
- Update schema documentation for kernel_size parameter
* Update apply_filter default axis and improve documentation
- Change default axis parameter from 'azimuth' to 'both' for more intuitive behavior
- Remove outdated "Must be odd" constraint from docstring (even sizes now supported)
- Enhance schema documentation with clearer description of azimuth_offset_filter purpose
* Replace unsafe stride_tricks with generic_filter in apply_filter
Replace np.lib.stride_tricks.as_strided with scipy.ndimage.generic_filter
for safer and more memory-efficient filtering. The previous implementation
used manual stride manipulation which could cause memory issues with large
windows (e.g., 31x31 on large arrays).
Changes:
- Use scipy.ndimage.generic_filter instead of as_strided
- Directly use np.nanmean and np.nanmedian as filter functions
- Simplify implementation from ~80 lines to ~10 lines
- Maintain 2x memory overhead regardless of window size
Performance characteristics (1000x1000 array, 31x31 window):
- Memory: 15.3 MB (2.0x base array, constant across window sizes)
- Runtime: 10.6s (mean), 37.7s (median)
- Correctness: All 76 tests pass with exact matches
The new implementation trades some speed for safety, simplicity, and
predictable memory usage, which is appropriate for production code.
---------
Co-authored-by: Xiaodong Huang <xhuang@nisar-adt-dev-3.jpl.nasa.gov>
commit af7db5b6dbae1789c7283f82c892b251d520db0b
Author: hb6688 <158103984+hb6688@users.noreply.github.com>
Date: Tue Apr 21 18:10:08 2026 -0700
RFI Detection and Mitigation for Dithered PRF mode (#235)
* Updates for Dithered PRF mode RFI detection and mitigation
* restore previous updates e7f69a524b8b4a9715aa08cb26bebe3881f8a378 from development branch.
* Vectorized the sample covariance matrix computation.
* Number of usable Eigenvalues check is extended to both modes of operation.
* Updated CPI rank mechanism by normalizing against maximum Eigenvalue.
* Updated computation to verify the validity of a threshold block based on consensus.
* Updated RSLC configuration files and schema
* Updated focus.py with new RFI configuration parameters.
* Corrected misc errors in schema and focus.py
* compute_evd function now deals with both fixed and dithered PRF mode.
* Removed unused import statements.
* docstring update on default off-diag_valid_ratio and diag_valid_ratio
* Changed rx_dynamic_range to positive.
* Updated subswath mask reading based on PR comment.
* Updated min_valid_ev_ratio to normalized_min_rank_ratio
* Updated configuration files and unit test.
* docstring and schema updates
* changed normalized_min_rank_ratio to min_rank_frac
* Removed prf_dither_mode
* Changed some of rfi_detect function input arguments to keyword-only
* docstring update
* docstring update of focus.yaml file
* Remove mask flags and compute mask in blocks.
* fix typo
* Updated docstring
* Updated docstring and unit test.
* Cleaned up after rebase conflict resolution
---------
Co-authored-by: Bo Huang <bohuang@nisar-adt-dev-5.jpl.nasa.gov>
Co-authored-by: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
commit e20be6274d7eef60769f6c6714fc58f7536d109a
Author: Jungkyo Jung <56169931+oberonia78@users.noreply.github.com>
Date: Tue Apr 21 14:14:41 2026 -0700
Add guide and configurable outlier removal to low-pass filtering (#252)
* filter image before filling
* update filter
* fix unit test
* fix bug
* expose one parameer to config
* add comments
---------
Co-authored-by: Jungkyo Jung <jungkyoj@nisar-adt-dev-5.jpl.nasa.gov>
commit be4e64e45ca63e20d055e4ba97def514e56e9f25
Author: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
Date: Mon Apr 20 17:44:15 2026 -0500
Add qFSP boundary mask to RSLC (#246)
* Add hasInputDataException to product reader
* Propagate hasInputDataException from L0B to RSLC.
* Add function to determine EL intervals affected by qFSP slip.
* Add function for computing low-res reskew LUTs
* Add method for creating mask dataset.
* Add junk to nisar.cal namespace
* Calculate qFSP slip mask and resample to full-size zero-Doppler grid.
* Use write_direct method if available
* fix loop bug
* Add LUT2d::eval vectorized over both x and y
* Use vectorized LUT2d.eval for reskew
* Use backward-compatible type annotation
* Apply suggestions from code review
Co-authored-by: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
Co-authored-by: Hirad Ghaemi <92554775+rad-eng-59@users.noreply.github.com>
* Fix f-string compatibility issue.
* Fix typo and some formatting
---------
Co-authored-by: Hirad Ghaemi <92554775+rad-eng-59@users.noreply.github.com>
commit 555bb0385c08f0423b4f6693693ff689e22fbff4
Author: xhuang-jpl <118782850+xhuang-jpl@users.noreply.github.com>
Date: Wed Apr 15 23:13:26 2026 -0700
Add IDW interpolation to rubbersheeting algorithm (#239)
* sm r3.4
* change the SM commit id for R4.0.2
* remove redundant imports
* add the idw
* update the schema
* add the connected components function
* update the default value
* run isort
* fix bugs
* update the crossmul main
* add subswath mask
* add the subswath mask to the runconfig
* remove unused functions
* Apply suggestions from code review
Co-authored-by: xhuang-jpl <118782850+xhuang-jpl@users.noreply.github.com>
* update all comments
---------
Co-authored-by: Xiaodong Huang <xhuang@nisar-adt-dev-3.jpl.nasa.gov>
commit 2b078f460f614907ab66151eb967a82fc968ceab
Author: xhuang-jpl <118782850+xhuang-jpl@users.noreply.github.com>
Date: Wed Apr 15 09:44:02 2026 -0700
Incorporate the qFSP mask into InSAR mask (#247)
* sm r3.4
* change the SM commit id for R4.0.2
* update the mask dataset in the HDF5 file
* add the hasinputdataexception to identification group
* update the water mask
* update the subswath mask interpolation
* update the geocode_insar invalid values
* check if the inputdataexcpetion exits or not
* fix bugs
* use 255 as the fill value
* update the fillvalue
* update the lines and samples
* update the minors
* fix minors
---------
Co-authored-by: Xiaodong Huang <xhuang@nisar-adt-dev-3.jpl.nasa.gov>
commit 5b48971cc072b6b48b9cbeadb7a1142c1d00a34e
Author: xhuang-jpl <118782850+xhuang-jpl@users.noreply.github.com>
Date: Tue Apr 14 09:08:43 2026 -0700
Fix solid earth tides computation fail when frequencyA is missing (#243)
* sm r3.4
* change the SM commit id for R4.0.2
* fix the frequency bug
* fix typos
* add the comments
---------
Co-authored-by: Xiaodong Huang <xhuang@nisar-adt-dev-3.jpl.nasa.gov>
commit ff0bddb9235d47e7ae3533f0558dfbd9ab00027b
Author: piyushrpt <piyushrpt@users.noreply.github.com>
Date: Mon Apr 13 15:52:48 2026 -0700
Make isce3 work with numpy 2.x (#226)
* Fixes for tests with numpy 2.4.2
* Just dtype attribute is insufficient for np.dtype
* Removing test based on discussion in #226
* Reverting changes to dtype determination
commit 530f0c6eefc8cbfecf35817d3a7f278d5b2e462c
Author: Gustavo H. X. Shiroma <52007211+gshiroma@users.noreply.github.com>
Date: Mon Apr 13 09:53:26 2026 -0700
Add qFSP boundary mask to GCOV and GSLC products (#250)
* disable polarimetric symmetrization by default
* revert changes to `symmetrize_cross_pol_channels`
* Update GCOV and GSLC specification XMLs
* Revert changes to the GCOV and GSLC specification XMLs
* add qFSP-H1 sample slip indicator to GCOV and GSLC products
* add qFSP-H1 sample slip indicator to GCOV and GSLC products
* add qFSP-H1 sample slip indicator to GCOV and GSLC products
* add qFSP-H1 sample slip indicator to GCOV and GSLC products
* add qFSP-H1 sample slip indicator to GCOV and GSLC products
* add qFSP-H1 sample slip indicator to GCOV and GSLC products
* add qFSP-H1 sample slip indicator to GCOV and GSLC products
* add qFSP-H1 sample slip indicator to GCOV and GSLC products
* add qFSP-H1 sample slip indicator to GCOV and GSLC products
commit 1654419a349592171160262c26ae4f23d984c73f
Author: jshimada47 <93166262+jshimada47@users.noreply.github.com>
Date: Wed Mar 25 10:14:36 2026 -0700
Update base Docker image to the 2026-03-01 patch release and update pysolid to v0.3.4 (#241)
commit 3d718e325a796647c0d618630a8699d5b3bbef04
Author: xhuang-jpl <118782850+xhuang-jpl@users.noreply.github.com>
Date: Tue Mar 24 15:51:52 2026 -0700
Update SM SAS Version to v0.4.1 for R05.01.3 (#240)
* update
* update the version
---------
Co-authored-by: Xiaodong Huang <xhuang@nisar-adt-dev-3.jpl.nasa.gov>
commit ff501dbda92e60c7f10a1faca0f69261696ea41d
Author: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
Date: Tue Mar 24 12:05:52 2026 -0500
Fix a frequency ID bookkeeping issue (#244)
commit 0837a2d16d425701e3b556536d2fd39147b69689
Author: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
Date: Mon Mar 23 18:56:23 2026 -0500
Fix broadcasting of subswath assignment in constant-PRF case. (#242)
commit 6959fc85f4f12c1dd2bddbd6e8ac257235b148db
Author: Jungkyo Jung <56169931+oberonia78@users.noreply.github.com>
Date: Thu Mar 19 15:41:19 2026 -0700
Fix unwrapping error in differential interferogram between A and B (#234)
* fix unwrapping error in differential interferogram between A and B
* add comments and remove an unnecessary line
---------
Co-authored-by: Jungkyo Jung <jungkyoj@nisar-adt-dev-5.jpl.nasa.gov>
commit f3034e4dab90c11a38f00cfb51a720b624c3989e
Author: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
Date: Thu Mar 19 13:09:08 2026 -0500
Fix RSLC valid data annotations (#221)
* Correctly annotate DWP changes in RSLC validSamplesSubswath vectors.
* Refactor to simplify testing
* Add unit test for dithered subswaths with DWP changes.
* Rewrite using RD, WD, WL. Fix some bugs associated with the refactor.
* Duplicate chirp for each bbox.
* Delete unused code
* Make segment length configurable, with a smaller default
* Warn if change user input to handle trivially small images
* emit a warning in an edge case
* make num_ignore configurable with default 25
* move warning to else clause
commit 9b7800c028b17b71d0e19ac11bff0fa1c9403f52
Author: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
Date: Tue Mar 17 11:25:59 2026 -0500
Fix macOS Debug CI builds (#233)
* Fix macOS Debug CI builds
* Try suggestion from @ scottstanie
commit 1ee718ff460f01325d1c07ad2e80b29b998a8665
Author: Hirad Ghaemi <92554775+rad-eng-59@users.noreply.github.com>
Date: Tue Mar 10 10:35:33 2026 -0700
Fix Chirp Correlator and Cal Type in Raw, NET, RSLC EAP and NEB (#231)
* Add a new mod to nisar.antenna to compute RX imbalances from Raw/L0B
* Modify pattern.py to compute and apply RX imbalances per freq band
* Update beamformer to allow single scalar for RX channel adjustment
* Pass frequency band to EAP block in focus.py
* Add a function to compute pulsewidth delay in sequential TX
* Modify pattern.py to adjustment RD for the second band in RX DBF
* Fix the log in pattern.py
* Correct the sign for RD correction of band B in RX DBF pattern
* Use slant range diff between A and B in place of pulsewidth delay
* Parse caltone frequency from DRT in L0B
* Add onboard DBF delay offset of 2.1474 us to RD in pattern.py
* Warn if array size in rx channel imbalance class is not 12
* Augment Raw w/ QP-support chirp correlator and caltype functions
* Fix noise estimator module to support full QP noise products
* Fix TxTRM of TX pattern formaton in pattern.py in case of QP
* Fix full NESZ estimation in focus.py for QP
* Add support for QP in computing RX channel imbalance
* Get caltone freq from runconfig rather than DRT in focus.py for now
* Fix handling of CPI update in MEE noise estimator
* Handle special case when caltone and chirp freq is the same
* Add optional arg `delay_ofs_dbf` to ant pattern ctor in focus.py
* Issue warning for too small value of caltone frequency in drt
commit 6918644b04248f1fb24040c551add7756fa86328
Author: Jungkyo Jung <56169931+oberonia78@users.noreply.github.com>
Date: Mon Mar 9 14:04:46 2026 -0700
Fix bugs in Ionosphere Phase Uncertainty & connected components mask (#220)
* fix uncertainty values
* simplify unwrap error
* fix bug in reading connected components
* update unitest for unwrapping error
* revert the changes
* add log instead of print
* revert changes for unittest
* cleaning unittest
---------
Co-authored-by: Jungkyo Jung <jungkyoj@nisar-adt-dev-5.jpl.nasa.gov>
commit 2ddb82fc3f2660bed2ae54a32cfddad33d1748ad
Author: Gustavo H. X. Shiroma <52007211+gshiroma@users.noreply.github.com>
Date: Mon Mar 9 10:12:43 2026 -0700
Add an extra margin to the RSLC LUT extents (#183)
* disable polarimetric symmetrization by default
* revert changes to `symmetrize_cross_pol_channels`
* Update GCOV and GSLC specification XMLs
* Revert changes to the GCOV and GSLC specification XMLs
* ensure that LUT horizontal extents completely cover RSLC images
* add an extra margin to the horizontal extents of RSLC LUTs
* add an extra margin to the horizontal extents of RSLC LUTs
* add an extra margin to the horizontal extents of RSLC LUTs
* add an extra margin to the horizontal extents of RSLC LUTs
* move the azimuth cropping outside of make_doppler_lut_from_attitude()
* expose downsampling factors and margins in the focus.yaml runconfig
* expose downsampling factors and margins in the focus.yaml runconfig
* expose downsampling factors and margins in the focus.yaml runconfig
* Update python/packages/nisar/workflows/focus.py
Co-authored-by: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
---------
Co-authored-by: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
commit 0df58be4739cfcc9c966bc2acb77c359499896b9
Author: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
Date: Mon Mar 9 12:11:55 2026 -0500
Support new corner reflector CSV format (#176)
* wip support square trihedrals and new format
* Move CR model into a separate function for easier testing
* Remove "triangular" from names in isce3
* Remove "LSAR" from flags for easier refactor and support "Shape" column in CSV.
* check peak RCS value in unit test
* Add RCS continuity check
* Add new format CSV unit test. Fix capitalization.
* Generalize abscal workflow to square trihedrals
* Generalize PTA to square trihedrals
* Update some comments
* Add a note about the new .csv test file.
commit 575ef9354896c42e2178233f22dfc8c8f3c434c4
Author: Gustavo H. X. Shiroma <52007211+gshiroma@users.noreply.github.com>
Date: Thu Mar 5 14:22:55 2026 -0800
Small updates to `applyRtc()` (#82)
* disable polarimetric symmetrization by default
* revert changes to `symmetrize_cross_pol_channels`
* Update GCOV and GSLC specification XMLs
* Revert changes to the GCOV and GSLC specification XMLs
* consider valid the pixels with zero values
* pass `rtc_min_value` instead of `rtc_min_value_db` to `_applyRtc()`
commit bf6f02c493260ffff8088dba3e113ce1b9c410af
Author: Scott Staniewicz <scott.stanie@gmail.com>
Date: Thu Mar 5 16:14:42 2026 -0500
Update README fixed installation details (#182)
- Removed old broken installation links.
- Removed broken "getting started links" (to be added back once more introductory/workflow examples are added)
commit 2eff1b25881437affa28d5dcf942b010cbf58781
Author: Scott Staniewicz <scott.stanie@gmail.com>
Date: Thu Mar 5 16:11:08 2026 -0500
LUT2d: Fix python crash on out of bounds array `.eval()` (#188)
* LUT2d: Fix python crash on out of bounds array `.eval()`
Calling `LUT2d.eval()` on out‐of‐bounds coordinates behaves inconsistently depending on whether you pass Python floats or NumPy arrays:
- With two floats, the call prints a journal warning and raises a catchable `RuntimeError`.
- With a float + NumPy array (or two arrays), you see the journal warning, but Python aborts with an uncaught `pyre::journal::application_error`.
* Add test for OOB evaluation
* retrigger CI
* Catch both types of journal errors
commit 60bbe2f2b2b0a8d99cf9bf647de6eda68e999966
Author: xhuang-jpl <118782850+xhuang-jpl@users.noreply.github.com>
Date: Wed Mar 4 21:17:09 2026 -0800
Update ampcor search radius in the InSAR schema (#232)
* sm r3.4
* change the SM commit id for R4.0.2
* update the search radius
---------
Co-authored-by: Xiaodong Huang <xhuang@nisar-adt-dev-3.jpl.nasa.gov>
commit fb110024451235e43edf6a8ff8d0c92d6ddb7d95
Author: Gustavo H. X. Shiroma <52007211+gshiroma@users.noreply.github.com>
Date: Wed Mar 4 15:28:18 2026 -0800
Ensure that `_FillValue` and statistical attributes have the same data type as the correspondind layer (#213)
* disable polarimetric symmetrization by default
* revert changes to `symmetrize_cross_pol_channels`
* Update GCOV and GSLC specification XMLs
* Revert changes to the GCOV and GSLC specification XMLs
* ensure that `_FillValue` and statistical attributes have the same data type as the correspondind layer
commit 60ce5e0bb5d262e99c80f699134fa26811692ca2
Author: Lijun Zhu <38738201+lijun99@users.noreply.github.com>
Date: Wed Mar 4 15:02:06 2026 -0800
pycuampcor deramp improvement (#194)
* Use consistent X and Y indexing.
* Ditto in CPU version.
* update golden data
* deramp improvement
1) fix the pixelIdx error (thanks to @bhawkins)
2) use double precision for phase correction
3) add derampAxis parameter for options to deramp along certain
direction
4) move cuDeramp from oversampler to chunk processor; making the code more readable
* update the runconfig
* add the complex_no_deramp option
* Apply suggestions from code review
from @bhawkins :
- commenting and value checks on deramp_method and deramp_axis
- use explicit sincos for potential performance boost
Co-authored-by: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
* use explicit sincos for ampcor cpu module as well
* add comments on deramp_method in runconfig
* add math.h for sincos
* update ampcor test golden data and adjust the tolerance for correlation peak
* fix sincos for macOS
* revert sincos in the cpu module to separate calls (optimize by -ffast-math)
---------
Co-authored-by: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
Co-authored-by: Lijun Zhu <ljzhu@gps.caltech.edu>
Co-authored-by: Xiaodong Huang <xhuang@nisar-adt-dev-3.jpl.nasa.gov>
Co-authored-by: Xiaodong Huang <xhuang@nisar-adt-dev-5.jpl.nasa.gov>
commit 1202cf9e903c09c7da5462a31a94778900c36599
Author: xhuang-jpl <118782850+xhuang-jpl@users.noreply.github.com>
Date: Wed Mar 4 14:45:54 2026 -0800
Update rubbersheeting upsampling method (#212)
* sm r3.4
* change the SM commit id for R4.0.2
* update the upsample method for rubbersheeting
---------
Co-authored-by: Xiaodong Huang <xhuang@nisar-adt-dev-3.jpl.nasa.gov>
commit 7bb4eb82de7f06e112d36b6346cdf4f8a02d2fab
Author: Jungkyo Jung <56169931+oberonia78@users.noreply.github.com>
Date: Thu Jan 15 15:24:39 2026 -0800
Add bridge algorithm to unwrap (#164)
* add bridge algorithm to unwrap
* fix bug in reading mask
* move function to utils
* fix the bug
---------
Co-authored-by: Jungkyo Jung <jungkyoj@nisar-adt-dev-5.jpl.nasa.gov>
commit 67a6042564797b22f6ef97a6c7aa906ad369d2c7
Author: Jungkyo Jung <56169931+oberonia78@users.noreply.github.com>
Date: Thu Jan 15 13:51:58 2026 -0800
Add subswath mask for ionosphere (#122)
* add one missing line
* subswath mask
---------
Co-authored-by: Jungkyo Jung <jungkyoj@nisar-adt-dev-5.jpl.nasa.gov>
commit 6aaccbc2365bc53981723f345272e36a1f003ce6
Author: SamNemo <11642807+nemo794@users.noreply.github.com>
Date: Thu Jan 15 13:39:04 2026 -0800
Update InSAR descriptions (#201)
* GUNW, GOFF metadata tweaks
* RIFG, RUNW, GUNW metadata tweaks
* remove hyphen from least-significant
---------
Co-authored-by: Samantha C. Niemoeller <samantha.c.niemoeller@jpl.nasa.gov>
commit 2d5fc37730fc6a7f991c5e5e810bc876daee14d5
Author: SamNemo <11642807+nemo794@users.noreply.github.com>
Date: Wed Jan 14 13:21:10 2026 -0800
Update RSLC metadata descriptions to match XML (#198)
* update zeroDopplerTime LUT description to match XML
* update geolocationGrid unit vector LUT descriptions to match XML
* update dataset descriptions to match XML
---------
Co-authored-by: Samantha C. Niemoeller <samantha.c.niemoeller@jpl.nasa.gov>
commit 18147eadbd23da86151f249467e557ee9a8b8637
Author: Geoffrey Gunter <12984092+gmgunter@users.noreply.github.com>
Date: Tue Jan 13 14:31:51 2026 -0800
Add script to automate updating conda environments in Docker (#148)
* Add script to automate updating conda environments in Docker
---------
Co-authored-by: Tyler G. Hudson <tyler.g.hudson@gmail.com>
commit ecf10267c618958f530f6e9947ddb5fe0619265a
Author: xhuang-jpl <118782850+xhuang-jpl@users.noreply.github.com>
Date: Tue Jan 13 11:28:14 2026 -0800
Remove the InSAR workflow intermediate files (#65)
* sm r3.4
* change the SM commit id for R4.0.2
* remove files in scratch folder
* add the flag to the insar runconfig
* update the runtime of the prepare insar hdf5
* add the runtime of the prepare insar hdf5
* fix bugs
* formats
* fix minor bugs
---------
Co-authored-by: Xiaodong Huang <xhuang@nisar-adt-dev-3.jpl.nasa.gov>
commit 435e835a03837942a96560fa6c84a69cb6a79921
Author: xhuang-jpl <118782850+xhuang-jpl@users.noreply.github.com>
Date: Tue Jan 13 10:56:39 2026 -0800
Fix the ionosphere runconfig that will change the original runconfig (#195)
* sm r3.4
* change the SM commit id for R4.0.2
* update the copy
* update the iono looks
* add deepcopy function
---------
Co-authored-by: Xiaodong Huang <xhuang@nisar-adt-dev-3.jpl.nasa.gov>
commit fa46d2af09f680ac7cee599dc293ac85601bce62
Author: Scott Staniewicz <scott.stanie@gmail.com>
Date: Fri Jan 9 19:24:02 2026 -0500
`IH5Dataset`: Fix API changes to `Get/SetGeoTransform` methods in GDAL 3.12 (#196)
* `IH5Dataset`: Fix changes to `GeoTransform` methods in GDAL 3.12
GDAL 3.12 introduced a breaking API change:
`GetGeoTransform()` and `SetGeoTransform()` methods now use a
`GDALGeoTransform` class instead of raw double* arrays.
This patch adds conditional compilation to support both the new GDAL 3.12+ API and older versions.
See https://gdal.org/en/stable/user/migration_guide.html
* Relax thresholds for geocodeCov checkStatsReal
commit 5b2d6f6057a706d3ff5cfe7342ced8a7933fb302
Author: Michael Aivazis <michael.aivazis@para-sim.com>
Date: Fri Nov 21 13:06:33 2025 -0800
Modify the RSLC processing information to record the L0B granule id (#190)
* mm: removed {mpi} as an explicit dependence
* nisar.workflows: {focus} now populates the {l0bGranule} dataset with the L0B garnule id
* nisar.workflows: fixed a typo
* nisar.workflows: it appears that {cfg.input_file_group.input_file_path} is a container of filenames; adjusted the stripping of the name to form the granule id accordingly
commit 4f48a8a9830acec7a581a7ef5e833b4fffc3907e
Author: xhuang-jpl <118782850+xhuang-jpl@users.noreply.github.com>
Date: Fri Nov 21 11:54:29 2025 -0800
Add Polyfitting to compute the range and azimuth offsets for the fine resampling (#173)
* sm r3.4
* change the SM commit id for R4.0.2
* remove files in scratch folder
* add the flag to the insar runconfig
* update the runtime of the prepare insar hdf5
* add the runtime of the prepare insar hdf5
* add the polyfit function
* polyfit
* update the output datatype
* interpolate the culled offsets
* formats
* clean up
* clean up
* remove the lines_per_block
* update default to be 0.1
* update the ionosphere deleting
* add docstrings
* remove the coherence threshold
* update the docstring
* remove dots
* update the string
* add unit test
* address Tyler's comments
* adress Brian's comments
* update the default number of samples
* remove the code for the intermidate files removal
* remove the unused packages in insar.py
* update the default number of samples
* merge the develop branch
* fix minor docstring
---------
Co-authored-by: Xiaodong Huang <xhuang@nisar-adt-dev-3.jpl.nasa.gov>
commit 6f54f080b46c0ad4d73782d385ce61d06f76b9d7
Author: SamNemo <11642807+nemo794@users.noreply.github.com>
Date: Wed Nov 19 16:23:10 2025 -0800
Bugfix: Update RSLC schema parameter from `block_size` to `wavelet_size` (#189)
Co-authored-by: Samantha C. Niemoeller <samantha.c.niemoeller@jpl.nasa.gov>
commit f3ba581c0a7388199dec98e7fd68113949e33b62
Author: SamNemo <11642807+nemo794@users.noreply.github.com>
Date: Wed Nov 19 09:27:13 2025 -0800
Bugfix: QA schemas should not require a set of subgroups (#185)
Co-authored-by: Samantha C. Niemoeller <samantha.c.niemoeller@jpl.nasa.gov>
commit d93d94ce5edc4835af88129b2a193470a2abba8a
Author: Ryan Burns <rtburns@jpl.nasa.gov>
Date: Thu Nov 13 17:50:11 2025 -0800
Add documentation builder github action (#157)
* Fix missing re import
* Update sphinx conf for building from installed isce3 packages
* Add __all__ for pybind exts for pdoc documentation
* Add documentation build step to CI
* Temporarily disable some failing tests
* Fix rm command
* Add documentation publish step
* Fix sphinx html output directory
* Fix build step name
* Only push docs when they are built
* Create subdirs for doxygen
* Try running doxygen before sphinx?
* Remove references to polyfill.io in pdoc output
* Manually create doxygen dir
* Clarify ISCE -> ISCE3 in documentation
* Enable docs build on this branch
* Build mkdocs pages
* Fix C++ API directory
* Build docs on separate matrix builder with CUDA extensions
* Fix syntax
* Add guards for cufft error codes removed in CUDA 13
* Fix support for CUDA 13+ compute mode attribute
* Always exclude cuda tests
* Don't run ctests on documentation builder with cuda
Even excluding "cuda" tests (since the docs builder is on a CPU-only
instance), there are still the following failures:
146 - test.python.pkg.isce3.core.gpu_check (Failed)
161 - test.python.pkg.isce3.matchtemplate.test_ampcor (Failed)
167 - test.python.pkg.isce3.solid_earth_tides.solid_earth_tides (Failed)
197 - test.python.pkg.nisar.workflows.geocode_insar (Failed)
211 - test.python.pkg.nisar.workflows.resample_slc (Failed)
220 - test.python.pkg.nisar.workflows.dense_offsets (Failed)
221 - test.python.pkg.nisar.workflows.rubbersheet (Failed)
so let's just skip the unit tests for now
* Don't remove cuda package for docs build
* Remove polyfill fixup
* Populate isce3.cuda.core __all__ attributes
* Publish docs only on push to develop
* Drop __all__ workarounds for python API docs
* Drop ALL_EXCLUDE changes for docs action
docs action doesn't run ctests
* Disable testing branch for docs action
* Fix python API docs url
* Link to toplevel module page for Python API docs
---------
Co-authored-by: Tyler G. Hudson <tyler.g.hudson@gmail.com>
commit f2e50de7e6b063f7fde108d05c532ccd78daa0b2
Author: Jungkyo Jung <56169931+oberonia78@users.noreply.github.com>
Date: Thu Nov 13 16:25:46 2025 -0800
Fix the decimating offset for frequency B interferogram (#177)
* refine the decimating offset
* restyling
* replace concatenate with pad
---------
Co-authored-by: Jungkyo Jung <jungkyoj@nisar-adt-dev-5.jpl.nasa.gov>
commit 68783ec8c4f352b3e32f8b93194a441761edb0e4
Author: Jungkyo Jung <56169931+oberonia78@users.noreply.github.com>
Date: Wed Nov 12 14:15:28 2025 -0800
fix issue in split spectrum (#180)
Co-authored-by: Jungkyo Jung <jungkyoj@nisar-adt-dev-5.jpl.nasa.gov>
commit 9895af8e41464f6f4b3ac9d56bfe27af2c240ac0
Author: Jungkyo Jung <56169931+oberonia78@users.noreply.github.com>
Date: Thu Oct 30 19:47:50 2025 -0700
Allow downloading Water Mask with polar stereo coordinates (#129)
* update stage_watermask
* Update python/packages/nisar/workflows/stage_watermask.py
Co-authored-by: Gustavo H. X. Shiroma <52007211+gshiroma@users.noreply.github.com>
* nit
---------
Co-authored-by: Jungkyo Jung <jungkyoj@nisar-adt-dev-5.jpl.nasa.gov>
Co-authored-by: Gustavo H. X. Shiroma <52007211+gshiroma@users.noreply.github.com>
commit be69f0035ce25d7a965a27f1e1004310297f5b54
Author: Hirad Ghaemi <92554775+rad-eng-59@users.noreply.github.com>
Date: Thu Oct 30 16:38:01 2025 -0700
Make a Robust Check for RCID in Noise Est (#134)
* Change logic for noise-only RCID per comment
* Fix a bug in noise product generation when no raw file in focus.py
* Extract RCID from granule ID in place of DRT RCIDs for noise est
commit f506995f6f7e49096f7f3ecf09efc916ea2ff7b7
Author: SamNemo <11642807+nemo794@users.noreply.github.com>
Date: Thu Oct 30 10:46:14 2025 -0700
Update QA v16.0.0 -> v16.0.1 (#175)
Co-authored-by: Samantha C. Niemoeller <samantha.c.niemoeller@jpl.nasa.gov>
commit 99e6bf3088d52cd2d3f224edef372e2b030f7cc4
Author: hb6688 <158103984+hb6688@users.noreply.github.com>
Date: Thu Oct 30 10:07:03 2025 -0700
ST-EVD Replacement of Number of Range Blocks with Number of Range Samples (#136)
* Replaced num_rng_blks with num_samples_rng_blk mechanism for data blocking in range direction.
* Updated ST-EVD function call in focus.py
* Updated schema
* Made correction in focus.py ST-EVD configuration initialization as well as changes in test RSLC YAML files
* Made num_samples_rng_blk a common parameter for both ST-EVD and FDNF.
* Need to add use_entire_pulse to ensure all range samples can be used for detection.
* Removed wavelet caltone removal configuration items from YAML files
* Updated docstring and added error checking.
* docstring updates and removed output_individual_pngs from focus.yaml.
* Removed output_individual_pngs from schema.
---------
Co-authored-by: Bo Huang <bohuang@nisar-adt-dev-5.jpl.nasa.gov>
commit 2d6a8247d5b55c07a77320b3f5792874a636c0cd
Author: Jungkyo Jung <56169931+oberonia78@users.noreply.github.com>
Date: Thu Oct 30 01:38:43 2025 -0700
Fix interferometry baseline (#172)
* fix the baseline
* replace npzero to npfull
* remove duplications
* improve along track components
* flaten the for loop and add the info
* remove float
---------
Co-authored-by: Jungkyo Jung <jungkyoj@nisar-adt-dev-5.jpl.nasa.gov>
commit 9317c8d38e01da9eaf8abafa4c35f835f4970f3f
Author: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
Date: Thu Oct 30 00:29:59 2025 -0700
Fix dithered data processing for long observations (#159)
* Fix broken assumption that presum grid start time equals first pulse time.
* Subset swaths dataset in a consistent way.
* Add frequency and polarization to debug layer file names.
commit 56228e4273fdc9cec365ee9eaa0b5b9b8ed182f7
Author: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
Date: Wed Oct 29 23:14:42 2025 -0700
Remove caltone with 2D variation (#146)
* Add constant overlap add (COLA) windows.
* Add class for removing a time-varying tone.
* Add wavelet caltone removal option to focus.py
* Apply suggestions from code review
Co-authored-by: Geoffrey Gunter <12984092+gmgunter@users.noreply.github.com>
* Update default caltone frequency to value in mode table v51
* Update schema to make caltone group optional
* Implement "auto" option
* Improve code docs
* fix typo
Co-authored-by: Heresh Fattahi <hersh.fattahi@gmail.com>
---------
Co-authored-by: Geoffrey Gunter <12984092+gmgunter@users.noreply.github.com>
Co-authored-by: Heresh Fattahi <hersh.fattahi@gmail.com>
commit 83f85f45a1bff8546fe2a95349739f1ed0250fe1
Author: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
Date: Wed Oct 29 22:30:46 2025 -0700
Slightly relax CR azimuth tolerance and allow Doppler extrapolation (#162)
* Slightly relax CR azimuth tolerance and allow Doppler extrapolation
* fix typo
Co-authored-by: SamNemo <11642807+nemo794@users.noreply.github.com>
---------
Co-authored-by: SamNemo <11642807+nemo794@users.noreply.github.com>
commit 742dffa43f5081e8d9a6edb6d4e68ba6d96123f0
Author: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
Date: Wed Oct 29 22:27:42 2025 -0700
Include beta0 area normalization in focusing (#132)
commit 53719baf0661a0e23262cde8419159ab21b0e445
Author: xhuang-jpl <118782850+xhuang-jpl@users.noreply.github.com>
Date: Wed Oct 29 15:15:35 2025 -0700
Fix the same number of looks values in the GUNW metadata (#149)
* update the number of looks
* fix minors
---------
Co-authored-by: Xiaodong Huang <xhuang@nisar-adt-dev-5.jpl.nasa.gov>
commit 544f0a41d82ae64f26879332bf5e485d690abd10
Author: Gustavo H. X. Shiroma <52007211+gshiroma@users.noreply.github.com>
Date: Wed Oct 29 13:15:42 2025 -0700
Fix GCOV polarimetric symmetrization metadata (#167)
* disable polarimetric symmetrization by default
* revert changes to `symmetrize_cross_pol_channels`
* Update GCOV and GSLC specification XMLs
* Revert changes to the GCOV and GSLC specification XMLs
* fix polarimetric symmetrization metadata
* Update python/packages/nisar/products/writers/GcovWriter.py
Co-authored-by: Tyler G. Hudson <tyler.g.hudson@gmail.com>
---------
Co-authored-by: Tyler G. Hudson <tyler.g.hudson@gmail.com>
commit d7883f1e93aaadd1d8ff9825ee7c2cdaa3d470fc
Author: Gustavo H. X. Shiroma <52007211+gshiroma@users.noreply.github.com>
Date: Wed Oct 29 11:20:16 2025 -0700
Increase the DEM margin for RTC in the Y direction (#109)
* disable polarimetric symmetrization by default
* revert changes to `symmetrize_cross_pol_channels`
* Update GCOV and GSLC specification XMLs
* Revert changes to the GCOV and GSLC specification XMLs
* increase the margin in the Y-direction when loading the DEM
commit d4ad732710539b9425c1171c266db3cd02f67577
Author: Hirad Ghaemi <92554775+rad-eng-59@users.noreply.github.com>
Date: Wed Oct 29 10:10:52 2025 -0700
AZ Blocked DC Removal in Doppler Est Workflow (#135)
* Remove DC in AZ in Doppler DNC module within an AZ block
* Add new optional duration for AZ DC removal in Doppler Est module
* Update test suite for Doppler module to exercise block AZ DC removal
* Add arg "--duration-dc-remove-az" to Doppler workflow
* Add "--duration-dc-remove-az" to test suite of Doppler workflow
* Force DC-removal dur to be an integer fraction of Doppler dur in AZ
* New default values for Doppler block and interval suitable for NISAR
* Add a white space in help of an arg in Doppler workflow
* Zero fill TX gap regions in Doppler estimator
commit 3e06d2f23d3ee2fcd3b87a0c16a36027b2d5db14
Author: Geoffrey Gunter <12984092+gmgunter@users.noreply.github.com>
Date: Wed Oct 29 10:02:40 2025 -0700
Add maintainer-facing docs (#154)
commit 28fe4d87bba20d5a6a6d1364657fcf63244696a2
Author: Gustavo H. X. Shiroma <52007211+gshiroma@users.noreply.github.com>
Date: Wed Oct 29 09:42:16 2025 -0700
Update runconfig parser module to sort the list of polarizations of the input product (#163)
* disable polarimetric symmetrization by default
* revert changes to `symmetrize_cross_pol_channels`
* Update GCOV and GSLC specification XMLs
* Revert changes to the GCOV and GSLC specification XMLs
* sort RSLC list of polarizations
* sort RSLC list of polarizations (2)
commit 0260adc8e9c79b4117f863a7f9fafe7b3ec50168
Author: Jungkyo Jung <56169931+oberonia78@users.noreply.github.com>
Date: Tue Oct 28 22:55:51 2025 -0700
move radar_grid into for loop (#161)
Co-authored-by: Jungkyo Jung <jungkyoj@nisar-adt-dev-5.jpl.nasa.gov>
commit ba6f0d6a77e00ffaa5571b0fa533635710245e14
Author: hb6688 <158103984+hb6688@users.noreply.github.com>
Date: Sun Oct 5 12:18:14 2025 -0700
Set RFI algorithm in RSLC output HDF5 file based on the settings in configuration YAML file. (#141)
Co-authored-by: Bo Huang <bohuang@nisar-adt-dev-5.jpl.nasa.gov>
commit eaa2efaa76915c97fb4e807832f1ede17f20b3f5
Author: Geoffrey Gunter <12984092+gmgunter@users.noreply.github.com>
Date: Thu Oct 2 14:42:44 2025 -0700
Add Static Layers workflow (MCR #90132) (#144)
* Add Static Layers workflow
* Fix `get_product_spec()` docstring
* Fix context managers to correctly clean up when an exception is raised
* Improve comments
* Don't make compression options conditional on whether chunking was enabled
* Ensure chunk dimensions do not exceed dataset dimensions
* Improve documentation of datetimes in runconfig
* Fix docstring description of `geo2rdr_params`
* Consistently use quotes instead of backticks for HDF5 groups & datasets
* Fix unit tests for `build_hdf5_dataset_creation_kwds_dict()`
The changes in d8da9c0ba2d0440c9e5909510b4fc739d4c76521 and
48aaad8cc631b4571e804ee8fcd5739df5fd0733 caused some tests to break.
* Document that `posting` should be positive in `get_output_geo_grid()`
* Make geo grid parameters required if grid EPSG != DEM EPSG
* Fix error message
* Require ouput grid bounding box to be non-empty
`xmax` must be strictly > `xmin` and `ymax` must be stricly > `ymin`
* Update comment to reference a relevant issue
* Re-project the water distance before converting to binary
Change the default resampling method from "mode" to "near"
* Remove unnecessary TODO comment
* Use float32 geocode object instead of complex
This should improve performance slightly. The RTC ANF layers of interest
don't depend on the datatype of the input SLC, so it shouldn't affect
the results.
* Improve runconfig description of 'OD' processing type
* Fix default value descriptions
* Remove schema path from product spec XML
* Update default `memory_mode` and `compression_level`
* Update docstring description
* Remove unnecessary runconfig warning
* Improve runconfig description clarity
* Clarify descripton of geocode `output_mode` and `interp_method`
* Improve description of input YAML and output HDF5 files
* Clarify behavior of `processing_center` in forming granule ID
commit 8cc6581525e608cc95fdcd883dac87e08f83e7d0
Author: Ryan Burns <rtburns@jpl.nasa.gov>
Date: Thu Sep 25 16:59:01 2025 -0700
Fix compilation with CUDA 13 (#152)
* Add guards for cufft error codes removed in CUDA 13
* Fix support for CUDA 13+ compute mode attribute
commit 99375729fb2c474dea5fdf9f85396eb3870a9f3b
Author: SamNemo <11642807+nemo794@users.noreply.github.com>
Date: Thu Sep 25 14:07:57 2025 -0700
Update QA v15.0.1 -> v16.0.0 (#151)
Co-authored-by: Samantha C. Niemoeller <samantha.c.niemoeller@jpl.nasa.gov>
commit d67e0bcdd9e5f820ac2403700a6057f9285d52ad
Author: xhuang-jpl <118782850+xhuang-jpl@users.noreply.github.com>
Date: Wed Sep 24 09:00:52 2025 -0700
Update SM SAS Release from v0.3.1 to v0.3.2 to fix the PMI Segmentation Fault (#147)
* update SM release
* add the dsg data to workflowdata.py
* update the sm release
---------
Co-authored-by: Xiaodong Huang <xhuang@nisar-adt-dev-5.jpl.nasa.gov>
commit cc907132639af6a3fd57e92963be5c92b3dc886a
Author: SamNemo <11642807+nemo794@users.noreply.github.com>
Date: Tue Sep 9 13:14:05 2025 -0700
Update QA version from 15.0.0 to 15.0.1 (#138)
Co-authored-by: Samantha C. Niemoeller <samantha.c.niemoeller@jpl.nasa.gov>
commit ed73d7c48c8614e5a9ac836df95b999a535fb5d2
Author: SamNemo <11642807+nemo794@users.noreply.github.com>
Date: Mon Sep 8 18:15:04 2025 -0700
Update QA to v15.0.0 (#137)
* update QA version from 14.0.1 to 15.0.0
* update QA runconfig defaults to permit all-NaN ionospherePhaseScreen layers
* Update share/nisar/defaults/insar.yaml
Co-authored-by: Geoffrey Gunter <12984092+gmgunter@users.noreply.github.com>
---------
Co-authored-by: Samantha C. Niemoeller <samantha.c.niemoeller@jpl.nasa.gov>
Co-authored-by: Geoffrey Gunter <12984092+gmgunter@users.noreply.github.com>
commit 5bf2c69019aef9703cb2f871e68a9430f2486dee
Author: Jungkyo Jung <56169931+oberonia78@users.noreply.github.com>
Date: Mon Sep 8 16:55:04 2025 -0700
Fix issue in ionosphere method (main_diff_ms_band) (#133)
* read freq A RUNW instead of freq A RIFG
* simplify line
* add zeros for uncovered areas
* Revert "add zeros for uncovered areas"
This reverts commit fad8a5203c5ac2aea5229cf0ca147a50f9905779.
---------
Co-authored-by: Jungkyo Jung <jungkyoj@nisar-adt-dev-5.jpl.nasa.gov>
commit e52f02c2581142d89ae4613b943993668e67ea8d
Author: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
Date: Thu Sep 4 15:36:42 2025 -0700
Nullify azimuth mean to remove caltone (#110)
Co-authored-by: bhawkins <bhawkins@github.com>
commit 35ab5ae7b4560d6cecce37fb0206169498bc08f6
Author: Brian Hawkins <1729052+bhawkins@users.noreply.github.com>
Date: Thu Sep 4 14:42:54 2025 -0700
Use time-dependent transmit antenna pattern (#114)
* Use time-dependent transmit antenna pattern
* Use all pulse times for TX pattern, not the most recent constant-range-timing subset.
commit 822697a4f48ac878fcfebcf832130865f95696f7
Author: Ryan Burns <rtburns@jpl.nasa.gov>
Date: Wed Sep 3 16:58:53 2025 -0700
Add minimum python version build to CI matrix (#92)
* Add minimum python version build to CI matrix
* Use defaults for ctest_exclude, runner, env-file, etc in build matrix
commit 89f94c90b2b5e5df4c10c84835aba9f397898150
Author: Geoffrey M Gunter <geoffrey.m.gunter@jpl.nasa.gov>
Date: Sat Aug 30 01:08:23 2025 +0000
Bump minor version
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR is to remove the ionospheric phase mask from the wrapped interferogram.