8.28. Umbra SAR

Here we describe processing Synthetic Aperture Radar (SAR) images for Earth produced by Umbra. A SAR example for the Moon is in Section 8.11.4.

8.28.1. Overview

Umbra images are acquired in Spotlight mode.

SAR image appearance can vary drastically depending on the perspective. It is important to choose images that are acquired close in time and have similar viewing angles. The latter is measured by the provided incidence and azimuth angles. Another measure is the squint angle.

If the stereo convergence angle (Section 8.1) is too small, the produced terrain model may not be accurate. For the example below, this angle is 5.8 degrees (as printed by both parallel_stereo and bundle_adjust). This angle correlates well with the larger of the discrepancy in azimuth and incidence angles between the images. We obtained acceptable results even with convergence angles as low as 2.5 degrees.

Umbra provides GEC images that are corrected to be relative to an ellipsoid. More raw products are available, including SICD, that have complex-valued pixels.

GEC images come with RPC (Section 8.18) camera models embedded in the images, that we employ. ASP does not support the more rigorous SAR sensor models.

8.28.2. Example

../_images/umbra_sar.png

Fig. 8.33 From left to right: hillshaded-terrain model, mapprojected (Section 16.42) SAR image, and triangulation error image (Section 14.6.1). The units in the colorbar on the right are in meters.

We downloaded the image pair:

2024-02-01-03-28-13_UMBRA-06_GEC.tif
2024-04-03-14-53-17_UMBRA-04_GEC.tif

showing a portion of the Panama Canal. Many other Umbra datasets are available.

To make the notation shorter, we call these left.tif and right.tif.

It was helpful to run bundle adjustment first (Section 16.5), to make the images more self-consistent and reduce the triangulation error (Section 14.6.1).

It is suggested to run bundle adjustment based on mapprojected images (Section 16.70.13). Mapprojection should be done at the effective ground sample distance (GSD), not nominal GSD, which can be so fine that the images may be noisy at that level. How to find the effective resolution may require some inspection and/or reading vendor’s documentation.

The mapprojection step is as follows:

proj="+proj=utm +zone=17 +ellps=WGS84 +units=m +no_defs"
mapproject        \
  --tr 0.5        \
  --t_srs "$proj" \
  ref.tif         \
  left.tif        \
  left_proj.tif

and the same for the right image.

How to find a DEM for mapprojection and how to adjust it to be relative to the ellipsoid is descried in Section 6.1.7.1 and Section 6.1.7.2. We call that DEM ref.tif.

Then bundle_adjust was run:

bundle_adjust -t rpc                       \
  left.tif right.tif                       \
  --remove-outliers-params                 \
    "75.0 3.0 50 50"                       \
  --mapprojected-data                      \
    "left_proj.tif right_proj.tif ref.tif" \
  -o ba/run

The cameras are embedded in the images, so they are not specified separately.

Alternatively, one can try the SIFT feature detection method (--ip-detect-method 1) rather the the default (method 0). One may also search for more interest point matches with an option such as --ip-per-tile. SAR images can be noisy and features hard to find. More features may not always result in more matches if they are inaccurate.

How to create new RPC cameras that incorporate the adjustments is discussed in Section 8.18.3. The default solution is to create external .adjust files that are passed to parallel_stereo via --bundle-adjust-prefix, as below.

More details on the bundle_adjust options are in Section 16.5.13.

Next, parallel_stereo (Section 16.52) was run. Mapprojecting the images first, at the effective GSD, not the finer nominal one, as before, is recommended (Section 6.1.7).

parallel_stereo -t rpc          \
  --bundle-adjust-prefix ba/run \
  --stereo-algorithm asp_mgm    \
  --nodes-list machines.txt     \
  left_proj.tif right_proj.tif  \
  stereo/run                    \
  ref.tif

The asp_mgm algorithm worked much better than the default asp_bm (Section 6.1.1).

A terrain model was produced with point2dem (Section 16.57), in a local UTM projection (Section 16.57.1):

point2dem            \
  --auto-proj-center \
  --t_srs "$proj"    \
  --errorimage       \
  --tr 2.0           \
  stereo/run-PC.tif

It is suggested to compare the resulting terrain with the prior reference terrain in ref.tif.

The ASP-created DEM was aligned to the reference DEM with pc_align (Section 16.54):

pc_align                                  \
  --max-displacement 300                  \
  --save-inv-transformed-reference-points \
  stereo/run-DEM.tif ref.tif              \
  -o align/run

A good value for the --max-displacement option is perhaps 1.5 times the mean elevation difference between the two input DEMs, that can be found with geodiff (Section 16.26) and gdalinfo -stats.

The transformed cloud can be gridded back to a DEM as:

point2dem --tr 2.0 \
  --t_srs "$proj"  \
  align/run-trans_reference.tif

Here, the projection string in $proj can be the same as for the DEM created earlier (the gdalinfo -proj4 command invoked on that DEM can print it).

The geodiff program can take the difference of the now-aligned DEMs. Other inspections can be done as discussed in Section 6.2.