Skip to content

Reprojecting polar stereographic watermask to radargrid#271

Open
seongsujeong wants to merge 4 commits into
isce-framework:developfrom
seongsujeong:polarstereo_watermask
Open

Reprojecting polar stereographic watermask to radargrid#271
seongsujeong wants to merge 4 commits into
isce-framework:developfrom
seongsujeong:polarstereo_watermask

Conversation

@seongsujeong
Copy link
Copy Markdown
Contributor

This PR is built upon #253 by @oberonia78 that addresses several issues in watermask reprojection. One of the issues was the necessity to reproject the watermask in polar stereographic (or any projection except for WGS84) to the radargrid.

This PR addresses the issue by transforming the longitude / latitude loaded from x.rdr and y.rdr in scratch directory to polar stereographic.

Below is the input watermask in EPSG 3413 (top), and reprojected to radargrid (bottom). of the test data.

Screenshot 2026-05-21 at 03 36 04 Screenshot 2026-05-21 at 03 33 49

For the record, below is the granule names of reference and secondary
NISAR_L1_PR_RSLC_012_015_A_037_7700_SHNA_A_20260203T054101_20260203T054138_X05012_N_P_J_001
NISAR_L1_PR_RSLC_013_015_A_037_7700_SHNA_A_20260215T054102_20260215T054139_X05012_N_P_J_001

@hfattahi hfattahi added this to the R05.02.0 milestone May 21, 2026
@seongsujeong seongsujeong requested a review from xhuang-jpl May 21, 2026 16:53
Copy link
Copy Markdown
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.

We went half way reviewing. Few comments so far.

# north-up only, same practical assumption as most GeoTIFF use cases here
if gt[2] != 0 or gt[4] != 0:
raise NotImplementedError(
"_read_gdal_with_bbox currently supports only north-up rasters."
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
"_read_gdal_with_bbox currently supports only north-up rasters."
"_read_gdal_with_bbox currently does not support affine transformation."


xmin, ymin, xmax, ymax = map(float, bbox)

# target SRS = bbox_epsg
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

delete commented code

Comment on lines +299 to +300
xmin_src, xmax_src = min(xs), max(xs)
ymin_src, ymax_src = min(ys), max(ys)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

If raster_srs is in 4326 and dst_srs is in polar epsg, then xs and ys are lat/lon here. In that case let's make sure this logic works in anti meridian boundary.

Comment on lines +348 to +351
if not np.isfinite(est_dx) or est_dx <= 0:
est_dx = max((xmax - xmin) / 1000.0, 1e-6)
if not np.isfinite(est_dy) or est_dy <= 0:
est_dy = max((ymax - ymin) / 1000.0, 1e-6)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This part does not make sense. Where does 1000 come from?

Comment on lines +540 to +543
use_complex = np.iscomplexobj(first_data_block) or np.iscomplexobj(second_data_block)
if use_complex:
first_data_block = _to_complex_if_needed(first_data_block)
second_data_block = _to_complex_if_needed(second_data_block)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@oberonia78 @seongsujeong why do we need these changes to ionosphere.py in this PR?

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.

3 participants